Programacin Modular Pseudocdigo Facultad de Ciencia de la

  • Slides: 19
Download presentation
Programación Modular (Pseudocódigo) Facultad de Ciencia de la Computación Programación Profr. Miguel Rodríguez Hdez.

Programación Modular (Pseudocódigo) Facultad de Ciencia de la Computación Programación Profr. Miguel Rodríguez Hdez.

Programación Modular Contenido w w w w Introducción Definición de Módulo ¿Cuándo utilizar modularización?

Programación Modular Contenido w w w w Introducción Definición de Módulo ¿Cuándo utilizar modularización? Esquema de la Programación Modular Formas de utilizar el enfoque de diseño descendente Características deseable en en los módulos Formato de los módulos Variables locales, globales, argumentos y parámetros w Ejemplos y ejercicios 206_C 5 2

Programación Modular w Es una técnica que permite diseñar la solución de un problema

Programación Modular w Es una técnica que permite diseñar la solución de un problema con base en la modularización o segmentación, dado un enfoque de arriba hacia abajo (Top-Down). Esta solución se divide en módulos que se estructuran jerárquicamente, como si fuera el organigrama de una empresa. Ejemplo: Algoritmo Principal Módulo Uno Módulo Dos 206_C 5 Módulo Tres 3

Programación Modular w Cada uno de los módulos ejecuta una tarea especifica. En su

Programación Modular w Cada uno de los módulos ejecuta una tarea especifica. En su momento, el módulo principal, invocará o llamará a los módulos subordinados, es decir, dirigirá su funcionamiento. 206_C 5 4

Definición de Módulo w Un módulo es una rutina, subalgoritmo, procedimiento o función (en

Definición de Módulo w Un módulo es una rutina, subalgoritmo, procedimiento o función (en C) que puede definirse dentro de un algoritmo con el fin de ejecutar una tarea específica y puede ser llamado o invocado desde el algoritmo principal cuando sea necesario. 206_C 5 5

¿Cuándo utilizar modularización? w Este enfoque es útil en dos casos: 1. Cuando existe

¿Cuándo utilizar modularización? w Este enfoque es útil en dos casos: 1. Cuando existe un grupo de instrucciones o una tarea específica que deba ejecutarse en más de una ocasión. 2. Cuando el problema es complejo o extenso, la solución se divide en módulos, “partes o subtareas más simples o específicas”. Dicha solución se organiza en forma jerárquica. Cada una de las partes ejecutará una tarea específica. El módulo principal dirige o coordina el funcionamiento de los módulos subordinados. 206_C 5 6

Esquema de Programación Modular Principal S 1 S 3 S 2 S 5 S

Esquema de Programación Modular Principal S 1 S 3 S 2 S 5 S 4 206_C 5 7

Forma de utilizar el enfoque de diseño descendente w Cuando el enfoque de diseño

Forma de utilizar el enfoque de diseño descendente w Cuando el enfoque de diseño descendente o modular se usa efectivamente, se logra una herramienta de diseño de algoritmos muy poderosa. w Procedimiento para usar dicha herramienta 1. Se tiene el análisis del problema 2. Se diseña la estructura general del algoritmo utilizando el diseño modular o descendente 3. Se toma cada módulo y se diseña su lógica utilizando el pseudocódigo. 206_C 5 8

Características deseable en los módulos w Deberán estar jerarquizados w Deberán ser pequeños y

Características deseable en los módulos w Deberán estar jerarquizados w Deberán ser pequeños y sencillos w Deberán ser legibles w Deberán usar una estructura de datos y control adecuados 206_C 5 9

Definición de Módulos w Plantilla (formato) Tipo Nombre_Módulo (Lista de argumentos) Inicio Definiciones Cuerpo

Definición de Módulos w Plantilla (formato) Tipo Nombre_Módulo (Lista de argumentos) Inicio Definiciones Cuerpo del módulo (instrucciones) [Retornar Expresión] Fin. Módulo 206_C 5 10

Variables globales, locales, argumentos y parámetros w A las variables definidas en el contexto

Variables globales, locales, argumentos y parámetros w A las variables definidas en el contexto general se les llama variables globales y pueden ser utilizadas en cualquier parte del algoritmo. w Las variables locales definidas en un determinado módulo sólo pueden utilizarse en el contexto de dicho módulo (o función) w La lista de argumentos es un medio de comunicación entre los distintos módulos en forma bidireccional no necesariamente. w Los parámetros son variables o valores que son copiados en los argumentos de un módulo, para que éste realice su tarea específica. 206_C 5 11

Tipos de paso de parámetros w Por valor. Se copian los valores de los

Tipos de paso de parámetros w Por valor. Se copian los valores de los parámetros en los argumentos, es decir, NO se modifican los valores de los primeros después de la ejecución del módulo. w Por referencia. Se copian las direcciones de los parámetros en los argumentos. Después de la ejecución del módulo los parámetros se ven alterados o modificados. Un ejemplo de paso de parámetros por valor es el paso de un vector como argumento de un módulo. En C se requiere el uso de apuntadores, para tal efecto. 206_C 5 12

Un Ejemplo siempre es bueno! w Calcular el área, perímetro y diámetro de un

Un Ejemplo siempre es bueno! w Calcular el área, perímetro y diámetro de un círculo de rádio R. Principal Leer. Radio Área Diámetro 206_C 5 Perímetro 13

El diseño descendente del ejemplo Constante Pi=3. 1416 Real Leer. Radio() Inicio Escribir “

El diseño descendente del ejemplo Constante Pi=3. 1416 Real Leer. Radio() Inicio Escribir “ Radio =? ” Leer Radio Retornar (Radio); Fin. Leer. Radio Real Area(Real R) Inicio Retornar (Pi*R*R); Fin. Area Real Diametro(Real R) Inicio Retornar (2*R); Fin. Diametro // Módulo Principal Inicio Real Radio; Radio<-Leer. Radio() Escribir “Area=“, Area(Radio); Escribir “Perím =“, Perimetro(Radio); Escribir “Diámetro =“, Diámetro(Radio); Fin. Principal Real Perimetro(Real R) Inicio Retornar (2*Pi*R); Fin. Area 206_C 5 14

Ejercicios w 1. -Elabore un algoritmo modular para calcular la suma, el promedio, el

Ejercicios w 1. -Elabore un algoritmo modular para calcular la suma, el promedio, el máximo y el mínimo de un vector de 100 elementos. w 2. - Elabore un algoritmo modular para leer dos puntos (x , y) y calcular la pendiente, la distancia entre los puntos y el punto medio. w 3. - Elabore un algoritmo modular para implementar las operaciones de conjuntos en un vector de tamaño N. Las operaciones son: Unión, Intersección, Pertenencia, Diferencia y Producto cartesiano. 206_C 5 15

Más ejercicios w 4. -Elabore un algoritmo modular para calcular la serie que aproxima

Más ejercicios w 4. -Elabore un algoritmo modular para calcular la serie que aproxima al valor de e con la fórmula siguiente y n términos: e = 1+1/2!+1/3!+…+ 1/n! w 5. - Definir una función que calcule el valor de: F = 1/ ax 2+bx 2+c w 6. -Definir la función ABSOLUTO que calcula el valor absoluto de su argumento si éste es un número utilizando una estructura condicional. 206_C 5 16

Más ejercicios w 7. -Definir la función FACTORIAL de forma recursiva e iterativa sabiendo

Más ejercicios w 7. -Definir la función FACTORIAL de forma recursiva e iterativa sabiendo que el factorial de N es 1 si N es 0 y en otro caso será N veces el factorial de N-1. w 8. -Definir de forma iterativa la EXPONENCIACION de dos números. w 9. -Definir un predicado que devuelva T si alguno de sus dos primeros argumentos es menor que el tercero y mayor que el cuarto. w 10. -Definir una función que pase de grados centígrados a grados Fahrenheit, sabiendo que: F = (C + 40) x 1. 8 – 40 206_C 5 17

Resumen w w w w Modularidad o programacion modular Funciones definidas por el programador

Resumen w w w w Modularidad o programacion modular Funciones definidas por el programador Paso de Parémetros Ámbito de las variables Módulo Ventajas ¿Cuándo usar modularidad? Funciones o módulos predefinidos por el sistema 206_C 5 18

¿Preguntas? 206_C 5 19

¿Preguntas? 206_C 5 19