Sesion_13 Funciones y Procedimientos Pseudocódigo

33
Principios de Algoritmos

description

Procedimientos y Funciones. Pogramación Modular. La programación modular es una metodología de programación que consiste en organizar un programa en módulos. En la etapa de diseño de un programa se aplica laestrategia “Divide y vencerás”. En la etapa de implementación, cada uno de los subproblemas se implementa a través de un módulo. Los módulos más simples son los procedimientos y funciones.Procedimiento.- Son subprogramas que realizan una tarea determinada y generan 0 o más de un valor. Se utilizan para estructurar un programa y mejorar su claridad y generalidad. Sus parámetros pueden ser:-de ENTRADA: Sólo se utilizan para que los subprogramas que llaman al procedimiento le pasen datos. -de ENTRADA/SALIDA: Se utilizan por parte de los subprogramas que llaman, para pasarle datos al procedimiento, y por parte del procedimiento para pasar los resultados obtenidos al subprograma que lo ha llamado.

Transcript of Sesion_13 Funciones y Procedimientos Pseudocódigo

Principios de Algoritmos Logro esperado Comprende y analiza los problemas para elaborar un algoritmo aplicando modularidad, escribiendo el seudocdigo. Pablo Romero 2 Introduccin Pablo Romero 3 Agenda Introduccin Programacin Modular Subprograma Subprogramas y arreglos Ejemplo Actividad en aula Conclusiones Pablo Romero4 Programacin Modular La programacin modular es una metodologa de programacin que consiste en organizar un programa en mdulos. En la etapa de diseo de un programa se aplica laestrategia Divide y vencers. En la etapa de implementacin, cada uno de los subproblemas se implementa a travs de un mdulo.Los mdulos ms simples son los procedimientos y funciones. Pablo Romero 5 Abstraccin(Divide y vencers) Pablo Romero 6 Subprogramas Pablo Romero 7 Subprogramas: bloques de cdigo que llevan a cabo una tarea concreta (= resuelven un subproblema concreto) Tienen un propsito Permiten reutilizar cdigo de manera sencilla y segura Ayudan a que el cdigo del programa principal sea Legible:Ordenado: Subprogramas Pablo Romero 8 Subprogramas Pablo Romero 9 Subprogramas Procedimientos Funciones Procedimiento Son subprogramas que realizan una tarea determinada y generan 0 o ms de un valor. Se utilizan para estructurar un programa y mejorar su claridad y generalidad. Sus parmetros pueden ser: - de ENTRADA: Slo se utilizan para que los subprogramas que llaman al procedimiento le pasen datos. - de ENTRADA/SALIDA: Se utilizan por parte de los subprogramas que llaman, para pasarle datos al procedimiento, y por parte del procedimiento para pasar los resultados obtenidos al subprograma que lo ha llamado. Pablo Romero 10 11 Funcin Son subprogramas que realizan una determinada tarea y devuelven un nico resultado o valor. Se utilizan para crear operaciones nuevas no incluidas en el lenguaje. El resultado devuelto se indica mediante la palabra reservada retornar, y TODOS LOS PARMETROS son de ENTRADA. Pablo Romero mbito de variables El buen uso de la programacin modular requiere que los mdulos sean independientes. Esto se consigue intentando satisfacer dos condiciones: Cada mdulo se disea sin conocimiento del diseo de otros mdulos La ejecucin de un subprograma particular no tiene por que afectar a los valores de las variables de otros subprogramas. Dado que se permite el anidamiento en la llamada a subprogramas, es necesario evitar problemas con los identificadores definidos en varias partes del cdigo. 12 Pablo Romero mbito de variables: Variable Local Son aquellas que se declaran en el cuerpo de la funcin. Solo son "visibles" o "usables" dentro de la funcin donde se han declarado. Dos funciones diferentes, pueden utilizar los mismos nombres de variables sin "interferencias ya que se refieren a posiciones diferentes de memoria. 13 Pablo Romero Variables Locales Es aquella que se define fuera del cuerpo de cualquier funcin, normalmente al principio del programa y antes de cualquier funcin. El mbito de una variable global son todas las funciones que componen el programa, cualquier funcin puede acceder a dichas variables para leer y escribir en ellas. Es decir, se puede hacer referencia a su direccin de memoria en cualquier parte del programa. 14 mbito de variables: Variable Global Pablo Romero mbito de variables: Variable Global Al programar usando procedimientos y funciones, no utilizaremos en nuestras aplicaciones las variables globales, pues atentan contra la modularidad y el bajo acoplamiento que son lo que deseamos. Pablo Romero 15 Parmetros actuales o reales Son las variables de enlace definidas en el programa principal y que se usan como argumentos dentro de los parntesis que posee una llamada a un subprograma. 16 Pablo Romero Parmetros formales o ficticios Son las variables de enlace definidas en la entrada de un subprograma, que aceptan los valores de los parmetros actuales que se usan en la llamada al subprograma y se comportan como otras variables locales. 17 Pablo Romero Parmetros formales 18 Paso de parmetros: Por valor El paso de parmetros por valor consiste en copiar el contenido de la variable que queremos pasar en otra dentro del mbito local del subprograma. Se tendrn dos valores duplicados e independientes, con lo que la modificacin de uno no afecta al otro. Pablo Romero Paso de parmetros: Por valor Pablo Romero 19 Diferentes posiciones dememorian num El paso de parmetros por referencia consiste en proporcionar al subprograma al que se quiere pasar el argumento, la direccin de memoria del dato. En este caso se tiene un nico valor referenciado (o apuntado) desde dos puntos diferentes, el programa principal y subprograma al que sepasa el argumento, por lo que cualquier accin sobre el parmetro se realiza sobre el mismo dato en la memoria. 20 Paso de parmetros: Por Referencia Pablo Romero Paso de parmetros: Por Referencia Pablo Romero 21 La misma direccin dememoria r1r2 x1 x2 Modularidad. Ejemplo En un campeonato de ftbol se enfrentan 4 equipos, con 11 jugadores cada uno. Crear un arreglo de 11x4. Se pide: a) Guardar en el arreglo las edades de los 11 jugadores de cada uno de los 4 equipos. b) Hallar la suma total de las edades de los jugadores de cada equipo y guardar en vector totEdad. Pablo Romero 22 Pablo Romero 23 1234 1 2 3 4 5 6 7 8 9 10 11 1234 Proceso Principal Dimension edades[11,4] Definir edades Como Entero Dimension totEdad[4] Definir totEdad como Entero llenarMatriz(edades) guardarTotEdad(edades, totEdad) mostrarMatriz(edades) mostrarVector(totEdad) FinProceso Pablo Romero 24 Subproceso llenarMatriz(edades Por Referencia) Definir i, j como Entero Para i