METODOLOGIA Y TECNOLOGIA DE LA PROGRAMACION I

2,346 views

Published on

Mayor claridad para el desarrollo de algoritmos; desarrollo de programas mas complejos y nuevos enfoques .

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,346
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
102
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • utpl
  • METODOLOGIA Y TECNOLOGIA DE LA PROGRAMACION I

    1. 1. ESCUELA : Ciencias de la Computación NOMBRES METODOLOGIA Y TECNOLOGIA DE LA PROGRAMACION I FECHA : Ing. Danilo Jaramillo H OCTUBRE 2008 – MARZO 2009
    2. 2. INDICACIONES <ul><li>Ingreso a campus y contestar los foros, revisar ejercicios. </li></ul><ul><li>Importancia de realizar las evaluaciones a distancia </li></ul><ul><ul><li>Foros (EVA) 2 puntos </li></ul></ul><ul><ul><li>Parte objetiva 2 puntos </li></ul></ul><ul><ul><li>Parte de ensayo 2 puntos </li></ul></ul><ul><li>Evaluación Presencial </li></ul><ul><ul><li>parte objetiva 8 puntos </li></ul></ul><ul><ul><li>parte ensayo 6 puntos </li></ul></ul>
    3. 3. INDICACIONES <ul><li>Uso de sangrías. </li></ul><ul><li>Utilizar comentarios para la documentación. </li></ul><ul><li>Entender que es lo que se pide en los ejercicios de la evaluación presencial. </li></ul>
    4. 4. INTRODUCCION <ul><li>Mayor claridad para el desarrollo de algoritmos </li></ul><ul><li>Desarrollo de programas mas complejos </li></ul><ul><li>Nuevos enfoques … Programación orientada a objetos </li></ul>
    5. 5. PLAN DE CONTENIDOS SEGUNDO BIMESTRE Capítulos de Texto Base Páginas Horas Capítulo 6. Programación Modular 205 – 238 12 Capítulo 7. Una introducción a las estructuras de datos 247 - 269 10 Capítulo 8. Recursividad 537 - 567 8 Capítulo 9. Introducción a la Programación Orientada a Objetos 575 - 608 10 Total 40
    6. 6. CAP. 5 PROGRAMACIÓN MODULAR <ul><li>Propósito </li></ul><ul><li>Conceptos Generales </li></ul>Propósito .Facilitar la comprensión del diseño modular para lograr el desarrollo de programas complejos de manera sencilla permitiendo la reutilización de fragmentos de un programa.
    7. 7. Cap. 5 PROGRAMACIÓN MODULAR <ul><li>Conceptos Generales </li></ul><ul><ul><li>Técnica divide y vencerás </li></ul></ul><ul><ul><li>Dividirlo en subprogramas </li></ul></ul><ul><ul><li>Diseño descendente </li></ul></ul><ul><ul><li>Partes son independientes entre si </li></ul></ul><ul><ul><li>Programa principal  sub-programas </li></ul></ul><ul><ul><li>Cuando se invoca a una función O procedimiento los pasos que están definidos se ejecutan y luego vuelven al módulo donde fue llamado. </li></ul></ul>
    8. 8. A B C D E F G
    9. 9. principal Procedimiento/función Procedimiento/función Procedimiento/función Llamada procedimiento Llamada procedimiento Llamada procedimiento Llamada procedimiento Llamada procedimiento
    10. 10. Cap. 5 PROGRAMACIÓN MODULAR <ul><li>Conceptos Generales </li></ul><ul><ul><li>Funciones </li></ul></ul><ul><ul><li>Procedimientos </li></ul></ul><ul><ul><li>Variables locales y globales </li></ul></ul><ul><ul><li>Parámetros por valor y por referencia </li></ul></ul><ul><ul><li>Parámetros de entrada y salida </li></ul></ul>
    11. 11. Cap. 5 PROGRAMACIÓN MODULAR <ul><li>Cada lenguaje de programación tiene sus propias funciones </li></ul><ul><li>Funciones </li></ul><ul><ul><li>Funciones definidas por el programador </li></ul></ul><ul><ul><li>Devuelve un valor </li></ul></ul><ul><ul><li>Forma de Invocar a una función </li></ul></ul><ul><ul><ul><li>Z  name_funcion() </li></ul></ul></ul><ul><ul><ul><li>Si (name_funcion() == ?) </li></ul></ul></ul><ul><ul><ul><li>Parte de una expresión </li></ul></ul></ul>
    12. 12. <ul><li>Funciones </li></ul><ul><ul><li>Definición </li></ul></ul>Cap. 5 PROGRAMACIÓN MODULAR <ul><ul><li>Tipodedato Función nombre (parámetros) </li></ul></ul><ul><ul><li>sentencias </li></ul></ul><ul><ul><li>… .. </li></ul></ul><ul><ul><li>devolver </li></ul></ul><ul><ul><li>finfuncion </li></ul></ul>
    13. 13. Cap. 5 Programación Modular <ul><li>Procedimientos </li></ul><ul><ul><li>Pueden o no devolver valores </li></ul></ul><ul><ul><li>Ejecuta un proceso especifico </li></ul></ul><ul><ul><li>Forma de Invocar un procedimiento </li></ul></ul><ul><ul><ul><li>Nombre_procedimiento() </li></ul></ul></ul>
    14. 14. <ul><li>procedimientos </li></ul><ul><ul><li>Definición </li></ul></ul>Cap. 5 Programación Modular <ul><ul><li>procedimiento nombre (parámetros) </li></ul></ul><ul><ul><li>sentencias </li></ul></ul><ul><ul><li>…… </li></ul></ul><ul><ul><li>finfunc </li></ul></ul>
    15. 15. Cap. 5 PROGRAMACIÓN MODULAR <ul><li>Variables: locales y globales </li></ul><ul><li>Locales </li></ul><ul><ul><li>Solo tiene valides dentro del modulo donde son declaradas </li></ul></ul><ul><li>Globales </li></ul><ul><ul><li>Se las puede utilizad en cualquier parte del programa </li></ul></ul>
    16. 16. Cáp. 5 PROGRAMACIÓN MODULAR global
    17. 17. principal Procedimiento/función Procedimiento/función Llamada procedimiento Llamada procedimiento Llamada procedimiento Entero numero Presentar numero Procedimiento/función Numero = 25 Procedimiento/función numero = 25 Llamada procedimiento local
    18. 18. Cap. 5 PROGRAMACIÓN MODULAR <ul><li>Parámetros por valor y por referencia </li></ul><ul><li>Por valor </li></ul><ul><ul><li>Si un parámetro es modificado su contenido dentro del subprograma, al terminar el mismo mantiene el valor </li></ul></ul><ul><li>Por referencia </li></ul><ul><ul><li>Si un parámetro es modificado su contenido dentro del subprograma, al terminar el mismo mantendrá el valor con el que se modificó. </li></ul></ul>
    19. 19. Cap. 5 PROGRAMACIÓN MODULAR Algoritmo Sumatoria Inicio Entero S S  0 Presentar suma(s) presentar s fin entero función suma (entero s) Leer numero1 Leer numero2 S  numero1 + numero2 Devolver S finfunc Parámetro por valor ¿Qué valor se presenta en la llamada a la función? ¿Cuál es el valor de S ? numero1  5 numero2  8
    20. 20. Cap. 5 PROGRAMACIÓN MODULAR Algoritmo suma Inicio Entero S S  0 Presentar suma(s) presentar s fin función suma (entero var s) entero Leer numero1 Leer numero2 S  numero1 + numero2 Devolver S finfunc parámetro por referencia numero1  5 numero2  8 ¿Qué valor se presenta en la llamada a la función? ¿Cuál es el valor de S ?
    21. 21. Ejercicios Algoritmo Factorial Inicio entero res entero numero leer numero res  factorial (numero) imprimir res fin entero función factorial (entero numero) entero f f  1 para (i  1 hasta numero) f  f * i finpara devolver f finfunc Cap. 5 PROGRAMACIÓN MODULAR
    22. 22. Ejercicios Algoritmo potencia Inicio entero bas entero exp entero res leer bas leer exp res  potencia (bas,exp) imprimir res fin entero función potencia (entero bas, entero exp) entero p p  1 para (i  1 hasta exp) p  p * bas finpara devolver f finfunc Cap. 5. PROGRAMACIÓN MODULAR
    23. 23. Algoritmo transformacion Inicio entero num leer num bin  binario(num) oct  octal(num) presentar “numero en binario es”, bin presentar “numero en octal es”, oct fin <ul><li>Funcion binario (entero num) entero </li></ul><ul><li>j  1 </li></ul><ul><li>res  0 </li></ul><ul><li>mientras (num > 0) </li></ul><ul><li>d  residuo(num/2) </li></ul><ul><li>res  res + (d*j) </li></ul><ul><li>num  num / 2 </li></ul><ul><li>j  j*10 </li></ul><ul><li>finmientras </li></ul><ul><ul><li>devolver res </li></ul></ul><ul><li>finfunc </li></ul><ul><li>Funcion octal (entero num) entero </li></ul><ul><li>j  1 </li></ul><ul><li>res  0 </li></ul><ul><li>mientras (num > 0) </li></ul><ul><li>d  residuo(num/8) </li></ul><ul><li>res  res + (d*j) </li></ul><ul><li>num  num / 8 </li></ul><ul><li>j  j*10 </li></ul><ul><li>finmientras </li></ul><ul><ul><li>devolver res </li></ul></ul><ul><li>finfunc </li></ul>
    24. 24. Algoritmo Transformacion Inicio entero num leer num bin  transformar(num,2) oct  transformar(num,8) presentar “numero en binario es”, bin presentar “numero en octal es”, oct fin <ul><li>Funcion transformar (entero num, entero base) entero </li></ul><ul><li>j  1 </li></ul><ul><li>res  0 </li></ul><ul><li>mientras (num > 0) </li></ul><ul><li>d  residuo(num/base) </li></ul><ul><li>res  res + (d*j) </li></ul><ul><li>num  num / base </li></ul><ul><li>j  j*10 </li></ul><ul><li>finmientras </li></ul><ul><ul><li>devolver res </li></ul></ul><ul><li>finfunc </li></ul>
    25. 25. <ul><li>Fácil comprensión del problema </li></ul><ul><li>Fácil comprensión de errores, pues si existe alguno solo se trabajara en el modulo donde este se presente </li></ul><ul><li>Reutilización de código, para procesos similares se pueden utilizar procedimientos que ya están realizados </li></ul>Cap. 5 PROGRAMACIÓN MODULAR
    26. 26. Cap. 6 INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS <ul><li>Propósito </li></ul><ul><li>Conceptos Generales </li></ul>Propósito .
    27. 27. Cap. 6 INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS <ul><li>Contenidos </li></ul><ul><ul><li>Arreglos o matrices </li></ul></ul><ul><ul><li>Arreglos de una dimensión (vector) </li></ul></ul><ul><ul><li>Arreglos multidimensionales </li></ul></ul>2 3 4 5 6 7 2 3 4 5 6 7 8 9 3 5 7 4 6 7 1 1 4 3
    28. 28. <ul><li>Arreglos </li></ul><ul><ul><li>Colección de datos del mismo tipo </li></ul></ul><ul><ul><li>Un nombre único </li></ul></ul><ul><ul><li>Indicador de posición que los diferencia </li></ul></ul>Cap. 6 INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS Mat MatRes filas filas y columnas 2 9 4 15 6 27 31 32 33 34 35 36 2 13 4 45 6 7 8 9 53 5 37 4 26 7 100 11 4 3 1 2 3 4 5 6
    29. 29. <ul><li>Arreglos unidimensionales o vectores </li></ul>Cap. 6 INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS Mat filas Mat[1] = 2 Mat[2] = 9 Mat[3] = 14 Mat[4] = 15 Mat[5] = 6 Mat[6] = 25 2 9 4 15 6 27 1 2 3 4 5 6
    30. 30. Definición: Inicio Arreglo Mat[10] ……… fin Lectura Arreglo Mat[10] … .. leer n_e // numero de elementos para (i  1 hasta n_e) leer Mat[i] finpara Presentar Arreglo Mat[10] … .. para (i  1 hasta n_e) presentar Mat[i] finpara Recorrer Arreglo Mat[10] … .. para (i  1 hasta n_e) Mat[i]  mat[i]*2 finpara … ..
    31. 31. inicio Arreglo Mat[10] // ingresar numero de elementos presentar “ingrese numero de elementos” leer n_e // llenar la matriz para (i  1 hasta n_e) leer Mat[i] finpara // proceso para (i  1 hasta n_e) si residuo(mat[i]/2) = 0 presentar “el numero”,mat[i], es par finsi finpara // presentar la matriz para (i  1 hasta n_e) presentar Mat[i] finpara fin
    32. 32. <ul><li>Arreglos multi-dimensionales </li></ul>Cap. 6 INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS MatRes filas y columnas MatRes[1,1] = 2 MatRes[2,4] = 5 MatRes[3,2] = 7 MatRes[1,6] = 7 MatRes[2,1] = 8 MatRes[3,5] = 4 31 32 33 34 35 36 2 13 4 45 6 7 8 9 53 5 37 4 26 7 100 11 4 3
    33. 33. Definición: Inicio Arreglo MatRes[10,10] …… fin Lectura Arreglo Mat[10,10] … .. leer n_f // numero de filas leer n_c // numero de columnas para (i  1 hasta n_f) para (j  1 hasta n_c leer Mat[i,j] finpara finpara Presentar Arreglo Mat[10,10] … .. para (i  1 hasta n_f) para (j  1 hasta n_c presentar Mat[i,j] finpara finpara Recorrer Arreglo Mat[10,10] … .. para (i  1 hasta n_f) para (j  1 hasta n_c Mat[i,j]  0 finpara finpara … ..
    34. 34. inicio Arreglo Mat[10,10] // ingresar numero de elementos presentar “ingrese numero de filas” leer n_f presentar “ingrese numero de filas” leer n_c // llenar la matriz para (i  1 hasta n_f) para (j  1 hasta n_c leer Mat[i,j] finpara finpara // proceso para (i  1 hasta n_f) para (j  1 hasta n_c si primo(Mat[i,j]) presentar “numero es primo” finsi finpara finpara // presentar la matriz para (i  1 hasta n_f) para (j  1 hasta n_c leer Mat[i,j] finpara finpara inicio Funcion primo(entero num) logica d  2 lim  num / 2 p  verdadero mientras (d < num) si residuo(num/d) = 0 p  falso d  lim finsi d  d + 1 finmientras devolver p finfunc
    35. 35. EJERCICIOS <ul><li>Ordenar un vector </li></ul><ul><li>Buscar elementos repetidos en un vector </li></ul><ul><li>Ordenar una matriz de dos dimensiones </li></ul><ul><li>Buscar elementos repetidos en una matriz dos dimensiones </li></ul><ul><li>Multiplica dos matrices </li></ul>
    36. 36. <ul><li>Inicio // ordenar una matriz </li></ul><ul><li>Arreglo Mat[10] </li></ul><ul><li>// ingresar numero de elementos </li></ul><ul><li>presentar “ingrese numero de elementos” </li></ul><ul><li>leer n_e </li></ul><ul><li>// llenar la matriz </li></ul><ul><li>para (i  1 hasta n_e) </li></ul><ul><li>leer Mat[i] </li></ul><ul><li>finpara </li></ul><ul><li> // proceso de ordenacion </li></ul><ul><li>para (i  1 hasta n_e) </li></ul><ul><li>para (j  1 hasta n_e) </li></ul><ul><ul><ul><li>si mat[i] < mat[j] </li></ul></ul></ul><ul><ul><ul><li> aux  mat[i] </li></ul></ul></ul><ul><ul><ul><li> mat[i]  mat [j] </li></ul></ul></ul><ul><ul><ul><li> mat[j]  aux </li></ul></ul></ul><ul><ul><ul><li>finsi </li></ul></ul></ul><ul><li>finpara </li></ul><ul><li>finpara </li></ul><ul><li> // presentar la matriz </li></ul><ul><li>para (i  1 hasta n_e) </li></ul><ul><li>presentar Mat[i] </li></ul><ul><li>finpara </li></ul><ul><li>fin </li></ul>
    37. 37. Cap. 7 RECURSIVIDAD <ul><li>Propósito </li></ul><ul><li>Conceptos Generales </li></ul>Propósito. Demostrar una manera alternativa de solución de problemas
    38. 38. <ul><li>Contenidos </li></ul><ul><ul><li>Recursividad </li></ul></ul><ul><ul><li>Recursividad directa e indirecta </li></ul></ul><ul><ul><li>Recursividad infinita </li></ul></ul>Cap. 7 RECURSIVIDAD
    39. 39. <ul><li>Directa </li></ul><ul><li>Cuando una función se llama a si misma. </li></ul><ul><li>Indirecta </li></ul><ul><li>Cuando una función inicial (A) llama a una segunda función (B) y esta función (B) llama a la función inicial (A) </li></ul><ul><li>Infinita </li></ul><ul><li>cuando no se logra que termine la recursividad </li></ul>Cap. 7 RECURSIVIDAD
    40. 40. Cap. 8 PROGRAMACIÓN ORIENTADA A OBJETOS <ul><li>Propósito </li></ul><ul><li>Conceptos Generales </li></ul>Propósito. Introducir en el estudiante los conceptos de una nueva manera de realizar la programación, basado en la metodología de orientación a objetos
    41. 41. <ul><li>Contenidos </li></ul><ul><ul><li>Objetos. </li></ul></ul><ul><ul><li>Clases. </li></ul></ul><ul><ul><li>Atributos y métodos. </li></ul></ul><ul><ul><li>Herencia, polimorfismo, encapsulamiento. </li></ul></ul>Cap. 8 PROGRAMACIÓN ORIENTADA A OBJETOS

    ×