Professional Documents
Culture Documents
Leer N V F
A>B
S=S+k
B=A+B Escribir A
k=k+1
Mientras (k ≤ N) Escribir B
Escribir S
Fin
FIN
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 4
Programación Estructurada
En la programación estructurada se ataca el problema
utilizando un solo bloque.
Divide y Vencerás
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 7
Módulos
Conjunto de sentencias que realizan una tarea
concreta.
Cada módulo se comporta como un subprograma:
el cual recibe entradas, realiza un proceso y genera
salidas.
Módulo
Entradas Salidas
Módulo
Parámetros Salidas
Valor utilizado fuera
del algoritmo
Resultado
Valor utilizado dentro
del algoritmo
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 9
Módulos
…
…
Resultado
Valor utilizado …
dentro del algoritmo
…
Mientras (…)
Valor utilizado
Salidas
… fuera del algoritmo
FIN
Módulo
Parámetros Salidas
Módulo
Parámetros Salidas
Ejemplo:
Genera Salida
write(texto): Escribe un texto en salida.
write(‘C++ #1’)
Módulo
Parámetros Salidas
Ejemplo:
Genera Salida
write(texto): Escribe un texto en salida. Salida
write(‘C++ #1’) C++ #1
Módulo
Parámetros
Módulo
Parámetros
Ejemplo:
No Genera Salida
randomize(semilla): semilla de generador.
Módulo
Salidas
Módulo
Salidas
Ejemplo:
Genera Salida
version(): datos sobre versión.
version()
Módulo
Salidas
Ejemplo:
Genera Salida
version(): datos sobre versión. Salida
COLARA
version() versión 1.101
Módulo
Módulo
Ejemplo:
No Genera Salida
randomize(): semilla aleatoria de generador.
Módulo
Parámetros
Resultado
Ejemplo:
sqr(x): recibe un número x y devuelve el resultado de
x1/2
Módulo
Resultado
Ejemplo:
rnd(): devuelve un número aleatorio entre 0 y 1.
Nombre
… Estructuras
Bloque Principal … Secuenciales,
Mientras (…) Selectivas, Repetitivas
… y Llamadas a módulos.
FIN
Fin
Sin parámetros:
Nombre()
Fin
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 28
Representación de Algoritmos Modulares
DRE
Con parámetros:
Nombre(parámetro1, parámetro2, …)
…
Fin
Sin parámetros:
Nombre()
…
Fin
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 29
Representación de Algoritmos Modulares
Ejemplo: Construir una subrutina para presentar en la
salida el mayor de dos números.
Fase 1: Diseño y Análisis: DES, DRE ó DF y LV.
retorna Valor
Sin parámetros:
Nombre()
retorna Valor
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 31
Representación de Algoritmos Modulares
DRE
Con parámetros:
Nombre(parámetro1, parámetro2, …)
…
retorna Valor
Sin parámetros:
Nombre()
…
retorna Valor
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 32
Representación de Algoritmos Modulares
Ejemplo: Construir una función para calcular el mayor
de dos números.
Fase 1: Diseño y Análisis: DES, DRE ó DF y LV.
Nombre(argumento1, argumento2, …)
Sin argumentos:
Nombre()
Nombre(argumento1,argumento2,…)
Sin argumentos:
Nombre()
Sin argumentos:
Variable = Nombre()
Sin argumentos:
Variable = Nombre()
… … … … … … … … …
… … … … … … … … … …
… … … … … … … … … …
…
Nombre(argumento1,argumento2,…) Llamada
…
…
Nombre(argumento1,argumento2,…) Llamada
1 …
Asigna el argumento al
parámetro antes de
continuar la ejecución:
parametro1 = argumento1
Nombre(parámetro1, parámetro2, …)
…
Fin
…
Nombre(argumento1,argumento2,…)
…
2
Continua la ejecución el
módulo correspondiente
Nombre(parámetro1, parámetro2, …)
…
Fin
…
Nombre(argumento1,argumento2,…)
…
3
Nombre(parámetro1, parámetro2, …)
Ejecuta todas las
… sentencias del módulo
Fin
…
Nombre(argumento1,argumento2,…)
4 …
Regresa y continua la
ejecución el algoritmo
principal
Nombre(parámetro1, parámetro2, …)
…
Fin
Divide y Vencerás
Secuencia de Ejecución
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 50
Metodología de la Programación Modular
Cuando la descripción de la tarea realizada por un
módulo no es lo suficientemente sencilla se debe
subdividir en varios módulos.
Se debe subdividir en al menos dos módulos.
2. Se refina paso a paso de forma de enriquecer la
jerarquía inicial con niveles adicionales.
Programa
Módulo A Módulo B
Acoplamiento
de Alto Nivel Datos
(Variables Diagrama de
Globales)
acoplamiento
Bloques Terminales
Inicialización Salida
Bloques Terminales