Diseño Modular

Funciones y
Procedimientos(Pseudocódigo)
M.C. José Andrés Vázquez Flores
Programación Modular
 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
Módulo
Tres
2
Definición de Módulo
 Un módulo es una rutina, subrutina,
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.
3
¿Cuándo utilizar modularización?
 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.
4
Esquema de Programación Modular
Principal
S1
S3
S2
S4
S5
5
Tipos de Acceso
 Entrada: en este acceso se copian los valores de las
variables pasadas como argumento y aunque se
modifiquen dentro del modulo, al terminar permanecen
tal cual. Además que son las típicas variables que sirven
para realizar cálculos.
 Salida: en este acceso se mandan las direcciones de
memoria de las variables por lo que cualquier
modificación dentro del modulo cambia su valor fuera
de él.
 Entrada/Salida: en este acceso se mandan las
direcciones de memoria y pueden utilizarse para
realizar cálculos y modificar el valor de las mismas
dentro del modulo.
6
Definición de Módulos: Funciones
 Plantilla (formato)
TipoDato Nombre_Módulo (Lista de argumentos)
Inicio
Definiciones
Cuerpo del módulo (instrucciones)
[Retornar Expresión]
FinMódulo
Donde Lista de argumentos=TipoAcceso TipoDato
Parametro1, TipoAcceso TipoDato Parametro2,
TipoAcceso TipoDato Parametro3
TipoAcceso puede ser Entrada o Salida o
Entrada/Salida
7
Ejemplo
de
Función
se devuelve el factorial de un
// En esta función
como parámetro Numero
Entero Factorial (Entrada Entero Numero)
Inicio
Fact1
Para Contador2 hasta Numero incremento 1
FactFact*Contador
FinPara
Retornar Fact
FinFactorial
número y recibe
hacer
En este caso si en el algoritmo principal llamamos a Factorial,
debemos asignarlo a una variable por ejemplo:
Algoritmo VerFactorial
Inicio
FactorialNumeroFactorial(5)
Escribe FactorialNumero
Fin
Llamada
Escritura en
Pantalla
Factorial(5)
120
8
Definición de Módulos: Procedimientos
 Plantilla (formato)
Nombre_Módulo (Lista de argumentos)
Inicio
Definiciones
Cuerpo del módulo (instrucciones)
FinMódulo
Donde Lista de argumentos=Tipo Parametro1, Tipo
Parametro2, Tipo Parametro3
TipoAcceso puede ser Entrada o Salida o
Entrada/Salida
9
Ejemplo de Procedimiento
//
En este procedimiento se imprimen los factoriales
MaxFactorial, donde MaxFactorial es el parámetro que recibe
ImprimeFactoriales (Entrada Entero MaxFactorial)
Inicio
Para contador1 hasta MaxFactorial Incremento 1 hacer
Escribe(Factorial(contador)) Llamada a la función factorial
FinPara
FinImprimeFactoriales
del
1
a
En este caso si en el algoritmo principal llamamos a
Imprimefactorial, sucederá lo siguiente:
Algoritmo VerFactorial
Inicio
Lee Num //supongamos que Num=6
ImprimeFactoriales(Num)
Fin
Llamadas
Impresión en pantalla
Factorial(1)
1
Factorial(2)
2
Factorial(3)
6
Factorial(4)
24
Factorial(5)
120
Factorial(6)
720
10