Metodología y Tecnología de la Programación I Asesoría Virtual – Segundo Bimestre Ing. Danilo Jaramillo H [email_address] ...
Indicaciones <ul><li>Uso de sangrías. </li></ul><ul><li>Utilizar comentarios para la documentación. </li></ul><ul><li>Ente...
Introducción <ul><li>Mayor claridad para el desarrollo de algoritmos </li></ul><ul><li>Desarrollo de programas mas complej...
Plan de Contenidos SEGUNDO BIMESTRE Capítulos de Texto Base Páginas Horas Capítulo 6. Programación Modular 205 – 238 12 Ca...
Cáp. 5. Programación Modular <ul><li>Propósito </li></ul><ul><li>Conceptos Generales </li></ul>Propósito  .Facilitar la co...
Cáp. 5. Programación Modular <ul><li>Conceptos Generales </li></ul><ul><ul><li>Técnica divide y vencerás </li></ul></ul><u...
A B C D E F G
principal Procedimiento/función Procedimiento/función Procedimiento/función Llamada procedimiento Llamada procedimiento Ll...
Cáp. 5. Programación Modular <ul><li>Conceptos Generales </li></ul><ul><ul><li>Funciones </li></ul></ul><ul><ul><li>Proced...
Cáp.. 5. Programación Modular <ul><li>Cada lenguaje de programación tiene sus propias funciones  </li></ul><ul><li>Funcion...
<ul><li>Funciones </li></ul><ul><ul><li>Definición </li></ul></ul>Cáp.. 5. Programación Modular <ul><ul><li>Función nombre...
Cáp. 5. Programación Modular <ul><li>Procedimientos </li></ul><ul><ul><li>Pueden o no devolver valores </li></ul></ul><ul>...
<ul><li>procedimientos </li></ul><ul><ul><li>Definición </li></ul></ul>Cáp.. 5. Programación Modular  – hojas  <ul><ul><li...
Cáp. 5. Programación Modular <ul><li>Variables locales y globales </li></ul><ul><li>Locales </li></ul><ul><ul><li>Solo tie...
Cáp. 5. Programación Modular principal Procedimiento/función Procedimiento/función Procedimiento/función Llamada procedimi...
Cáp. 5. Programación Modular principal Procedimiento/función Procedimiento/función Llamada procedimiento Llamada procedimi...
Cáp. 5. Programación Modular <ul><li>Parámetros por valor y por referencia </li></ul><ul><li>Por valor </li></ul><ul><ul><...
Cáp. 5. Programación Modular Inicio Entero S S    0 Presentar suma(s) presentar s fin Leer numero1 Leer numero2 S    num...
Cáp. 5. Programación Modular Inicio Entero S S    0 Presentar suma(s) presentar s fin Leer numero1 Leer numero2 S    num...
Ejercicios Inicio entero res leer numero res    factorial (numero) fin Funcion factorial (entero numero) entero f    1 p...
Ejercicios Inicio entero bas entero exp leer bas leer exp res    potencia (bas,exp) fin Funcion potencia (entero bas,   e...
Ejercicios Inicio entero num leer num bin     binario(num) oct     octal(num) presentar “numero en binario es”, bin pres...
Ejercicios Inicio entero num leer num bin     transformar(num,2) oct     transformar(num,8) presentar “numero en binario...
<ul><li>Fácil comprensión del problema </li></ul><ul><li>Fácil comprensión de errores, pues si existe alguno solo se traba...
Cáp. 6. Introducción a las estructuras de datos <ul><li>Propósito </li></ul><ul><li>Conceptos Generales </li></ul>Propósit...
Cáp. 6. Introducción a las estructuras de datos <ul><li>Contenidos </li></ul><ul><ul><li>Arreglos o matrices </li></ul></u...
<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><li>Arreglos unidimensionales o vectores </li></ul>Cáp. 6. Introducción a las estructuras de datos Mat filas Mat[1] = ...
Definición: Inicio Arreglo Mat[10] ……… fin Lectura Arreglo Mat[10] … .. leer n_e // numero de elementos para (i    1 hast...
inicio Arreglo Mat[10] // ingresar numero de elementos presentar “ingrese numero de elementos” leer n_e // llenar la matri...
<ul><li>Arreglos multi-dimensionales </li></ul>Cáp.. 6. Introducción a las estructuras de datos MatRes filas y columnas Ma...
Definición: Inicio Arreglo MatRes[10,10] …… fin Lectura Arreglo Mat[10,10] … .. leer n_f // numero de filas leer n_c // nu...
inicio Arreglo Mat[10,10] // ingresar numero de elementos presentar “ingrese numero de filas” leer n_f presentar “ingrese ...
Ejercicios <ul><li>Ordenar un vector </li></ul><ul><li>Buscar elementos repetidos en un vector </li></ul><ul><li>Ordenar u...
<ul><li>Inicio  // ordenar una matriz </li></ul><ul><li>Arreglo Mat[10] </li></ul><ul><li>// ingresar numero de elementos ...
Cáp. 7. Recursividad <ul><li>Propósito </li></ul><ul><li>Conceptos Generales </li></ul>Propósito. Demostrar una manera alt...
<ul><li>Contenidos </li></ul><ul><ul><li>Recursividad </li></ul></ul><ul><ul><li>Recursividad directa e indirecta </li></u...
<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>C...
Cáp. 7. Recursividad <ul><li>Trabaja con estructuras selectivas </li></ul><ul><li>Se da a nivel de procedimientos o funcio...
Upcoming SlideShare
Loading in …5
×

Video Segundo Bimestre Metodologia Abierta

912 views

Published on

Video de la presentación de la Materia de Metodología y Tecnologia de la Programacion I

Published in: Business, Real Estate
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
912
On SlideShare
0
From Embeds
0
Number of Embeds
36
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Video Segundo Bimestre Metodologia Abierta

    1. 1. Metodología y Tecnología de la Programación I Asesoría Virtual – Segundo Bimestre Ing. Danilo Jaramillo H [email_address] 2570-275 ext. 2637
    2. 2. 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>
    3. 3. Introducción <ul><li>Mayor claridad para el desarrollo de algoritmos </li></ul><ul><li>Desarrollo de programas mas complejos </li></ul><ul><li>Utilización de herramientas adicionales </li></ul><ul><li>Nuevos enfoques … Programación orientada a objetos </li></ul>
    4. 4. 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
    5. 5. Cáp. 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.
    6. 6. Cáp. 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/procedimiento los pasos que están definidos se ejecutan y luego vuelven al módulo donde fue llamado. </li></ul></ul>
    7. 7. A B C D E F G
    8. 8. principal Procedimiento/función Procedimiento/función Procedimiento/función Llamada procedimiento Llamada procedimiento Llamada procedimiento Llamada procedimiento Llamada procedimiento
    9. 9. Cáp. 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>
    10. 10. Cáp.. 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 expresion </li></ul></ul></ul>
    11. 11. <ul><li>Funciones </li></ul><ul><ul><li>Definición </li></ul></ul>Cáp.. 5. Programación Modular <ul><ul><li>Función nombre (parámetros) tipodedato </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>
    12. 12. Cáp. 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>
    13. 13. <ul><li>procedimientos </li></ul><ul><ul><li>Definición </li></ul></ul>Cáp.. 5. Programación Modular – hojas <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>
    14. 14. Cáp. 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>
    15. 15. Cáp. 5. Programación Modular principal Procedimiento/función Procedimiento/función Procedimiento/función Llamada procedimiento Llamada procedimiento Llamada procedimiento Entero numero Presentar numero numero = 25 global
    16. 16. Cáp. 5. Programación Modular 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
    17. 17. Cáp. 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 mantendrá el valor con el que llego. </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 modifico. </li></ul></ul>
    18. 18. Cáp. 5. Programación Modular Inicio Entero S S  0 Presentar suma(s) presentar s fin Leer numero1 Leer numero2 S  numero1 + numero2 Devolver S finfunc principal función suma (entero s) entero parametro por valor ¿Qué valor se presenta en la llamada a la funcion? ¿Cuál es el valor de S ? numero1  5 numero2  8
    19. 19. Cáp. 5. Programación Modular Inicio Entero S S  0 Presentar suma(s) presentar s fin Leer numero1 Leer numero2 S  numero1 + numero2 Devolver S finfunc principal función suma (entero var s) entero parametro por referencia numero1  5 numero2  8 ¿Qué valor se presenta en la llamada a la función? ¿Cuál es el valor de S ?
    20. 20. Ejercicios Inicio entero res leer numero res  factorial (numero) fin Funcion factorial (entero numero) entero f  1 para (i  1 hasta numero) f  f * i finpara devolver f finfunc
    21. 21. Ejercicios Inicio entero bas entero exp leer bas leer exp res  potencia (bas,exp) fin Funcion potencia (entero bas, entero exp) entero p  1 para (i  1 hasta exp) p  p * bas finpara devolver f finfunc
    22. 22. Ejercicios 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>
    23. 23. Ejercicios 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>
    24. 24. <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>Cáp. 5. Programación Modular
    25. 25. Cáp. 6. Introducción a las estructuras de datos <ul><li>Propósito </li></ul><ul><li>Conceptos Generales </li></ul>Propósito .
    26. 26. Cáp. 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 </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
    27. 27. <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>Cáp. 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
    28. 28. <ul><li>Arreglos unidimensionales o vectores </li></ul>Cáp. 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
    29. 29. 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 … ..
    30. 30. 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
    31. 31. <ul><li>Arreglos multi-dimensionales </li></ul>Cáp.. 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
    32. 32. 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 … ..
    33. 33. 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
    34. 34. 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>
    35. 35. <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>
    36. 36. Cáp. 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
    37. 37. <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>Cáp. 7. Recursividad
    38. 38. <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 recursion </li></ul>Cáp. 7. Recursividad
    39. 39. Cáp. 7. Recursividad <ul><li>Trabaja con estructuras selectivas </li></ul><ul><li>Se da a nivel de procedimientos o funciones </li></ul>Funcion factorial(entero n) :entero Inicio if n = 1 retornar 1 sino retornar n * factorial(n-1) finfuncion

    ×