Publicado el 26 de Junio del 2018
475 visualizaciones desde el 26 de Junio del 2018
6,9 MB
47 paginas
Creado hace 9a (01/05/2015)
Lenguaje de Diseño
Segundo Cuatrimestre 2015
1
Programación Modular
Programación Estructurada
Programas fáciles de
leer y modificar
Estructuras de Control
Secuencia
Condicional
Iteración
Técnicas de Diseños
Dividir y Conquistar
Dividir a un problema
en subproblemas más
simples
Algoritmos
Exhaustivos
Algoritmos
Voraces
n
c i ó
a m a
r
g
a
á m i c
D i n
o
P r
Módulo
Programación Modular
Int. a la Computación-Int. a la Programación – Fund. De la Informática
2
Programación Modular
Enfoque de Diseño
y
Programación Modular Conviene
Cuando una tarea específica debe
ejecutarse varias veces
Cuando un problema es complejo y la
solución se divide o segmenta en módulos
donde cada uno ejecuta una tarea
específica
Int. a la Computación-Int. a la Programación – Fund. De la Informática
3
Lenguaje de Diseño: Modularización
1
2
3
t1 - Dibujo la base.
t2 - Dibujo el poste.
t3 - Dibujo el triángulo inferior.
t4 - Dibujo el triángulo superior.
3 t1 - Dibujo el rectángulo.
t2 - Dibujo el triángulo.
2
t1 - Dibujo el triángulo.
t2 - Dibujo la cola.
Int. a la Computación-Int. a la Programación – Fund. De la Informática
4
Lenguaje de Diseño: Modularización
4
4
t1 - Dibujo triángulo1.
t2 - Dibujo triángulo2.
t3 - Dibujo triángulo3.
t4 - Dibujo triángulo4.
t5 - Dibujo triángulo5.
t6 - Dibujo triángulo6.
t7 - Dibujo linea1.
t8 - Dibujo linea2.
t9 - Dibujo linea3.
5
t1 - Dibujo rectángulo1.
t2 - Dibujo rectángulo2.
t3 - Dibujo triángulo1.
t4 - Dibujo triángulo2.
t5 - Dibujo triángulo3.
t6 - Dibujo triángulo4.
Int. a la Computación-Int. a la Programación – Fund. De la Informática
5
Lenguaje de Diseño: Modularización
2
2
3
3
5
5
t1 - Dibujo el triángulo.
t1 - Dibujo el triángulo.
t2 - Dibujo la cola.
t2 - Dibujo la cola.
t1 - Dibujo el rectángulo.
t1 - Dibujo el rectángulo.
t2 - Dibujo el triángulo.
t2 - Dibujo el triángulo.
t1 - Dibujo rectángulo1.
t1 - Dibujo rectángulo1.
t2 - Dibujo rectángulo2.
t2 - Dibujo rectángulo2.
t3 - Dibujo triángulo1.
t3 - Dibujo triángulo1.
t4 - Dibujo triángulo2.
t4 - Dibujo triángulo2.
t5 - Dibujo triángulo3.
t5 - Dibujo triángulo3.
t6 - Dibujo triángulo4.
t6 - Dibujo triángulo4.
t1 - Dibujo triángulo1.
t1 - Dibujo triángulo1.
t2 - Dibujo triángulo2.
t2 - Dibujo triángulo2.
t3 - Dibujo triángulo3.
t3 - Dibujo triángulo3.
t4 - Dibujo triángulo4.
t4 - Dibujo triángulo4.
t5 - Dibujo triángulo5.
t5 - Dibujo triángulo5.
t6 - Dibujo triángulo6.
t6 - Dibujo triángulo6.
t7 - Dibujo linea1.
t7 - Dibujo linea1.
t8 - Dibujo linea2.
t8 - Dibujo linea2.
t9 - Dibujo linea3.
t9 - Dibujo linea3.
t1 - Dibujo la base.
t1 - Dibujo la base.
t2 - Dibujo el poste.
t2 - Dibujo el poste.
t3 - Dibujo el triángulo inferior.
t3 - Dibujo el triángulo inferior.
t4 - Dibujo el triángulo superior.
t4 - Dibujo el triángulo superior.
1
1
4
4
Int. a la Computación-Int. a la Programación – Fund. De la Informática
6
Lenguaje de Diseño: Modularización
3
5
1
2
4
Algoritmo de dibujo del triángulo
TRIAN
Int. a la Computación-Int. a la Programación – Fund. De la Informática
7
Lenguaje de Diseño: Modularización
Descomposición del problema
suma (unión) de pequeños problemas
Se pretende:
4 que tengan una tarea específica.
4 sean totalmente independientes del resto.
Dividirlo en pequeños problemas
Puede suceder que dicho subproblema sea común a un conjunto de problemas de
mayor envergadura.
El algoritmo que lo resuelve debería ser el mismo cada vez que el
subproblema esté presente en un problema.
MODULARIZACIÓN DEL PROBLEMA
Int. a la Computación-Int. a la Programación – Fund. De la Informática
8
Lenguaje de Diseño: Modularización
TRIAN es un algoritmo común al conjunto de problemas
TRIAN es un MÓDULO
2
TRIAN
1
4
3
5
Int. a la Computación-Int. a la Programación – Fund. De la Informática
9
1
t1 - Dibujo la base.
t2 - Dibujo el poste.
t3 – TRIAN
t4 - TRIAN
3
t1 - Dibujo el rectángulo.
t2 - TRIAN
Lenguaje de Diseño: Modularización
2
4
t1 – TRIAN
t2 - Dibujo la cola.
t1 – TRIAN
t2 – TRIAN
t3 – TRIAN
t4 – TRIAN
t5 – TRIAN
t6 – TRIAN
t7 - Dibujo linea1.
t8 - Dibujo linea2.
t9 - Dibujo linea3.
Int. a la Computación-Int. a la Programación – Fund. De la Informática
10
Lenguaje de Diseño: Modularización
Invocación
5
t1 - Dibujo rectángulo1.
t2 - Dibujo rectángulo2.
t3 - TRIAN
t4 - TRIAN
t5 - TRIAN
t6 - TRIAN
11
Lenguaje de Diseño: Modularización
Consideraciones:
• - Se debe tener en cuenta el estado previo del ambiente antes de la
invocación del módulo.
• - Se debe tener en cuenta el estado del ambiente luego de la ejecución del
módulo.
Ejemplo:
- Se desea realizar la gráfica del farol con el uso del modulo TRIAN.
- Suponga la existencia de un módulo TRIAN que grafica un triángulo equilátero.
- orientación de la tortuga y recorrido que realiza para
la construcción del triángulo dentro del módulo.
Int. a la Computación-Int. a la Programación – Fund. De la Informática
12
Lenguaje de Diseño: Modularización
1
Invoca a TRIAN
Sale de TRIAN
¡ERROR!
Invoca a TRIAN
Sale de TRIAN
En Lenguaje de Diseño el concepto de Modularización se implementa con los
SUBALGORITMOS
Int. a la Computación-Int. a la Programación – Fund. De la Informática
13
Lenguaje de Diseño: Subalgoritmos
Ejemplo:
Dado un número n entero positivo, se desea calcular e imprimir el factorial de n,
n2 y de n3. Se debe tratar de utilizar el algoritmo para el calculo del factorial como
un módulo (subalgoritmo).
Nota:
el algoritmo FACTORIAL
permite calcular el valor factorial
para un número cualquiera N
ingresado por el usuario.
ALGORITMO Factorial
COMENZAR
N, FACT, I: entero
LEER N
FACT 1
PARA I DESDE 1 HASTA N CON PASO 1 HACER
FACT
FACT * I
FINPARA
ESCRIBIR FACT
FIN
14
Int. a la Computación-Int. a la Programación – Fund. De la Informática
Lenguaje de Diseño: Subalgoritmos
SUBALGORITMO FACTORIAL
COMENZAR
N, FACT, I: entero
LEER N
FACT 1
PARA I DESDE 1 HASTA N CON PASO 1 HACER
FACT
FACT * I
FINPARA
ESCRIBIR FACT
FIN
ALGORITMO Calculo Factoriales
COMENZAR
FACTORIAL
FACTORIAL
FACTORIAL
FIN
Int. a la Computación-Int. a la Programación – Fund. De la Informática
15
Lenguaje de Diseño: Subalgoritmos
FACTORIAL
Pantalla
Ingresa
Invocación
Retorno
Muestra
Calculo Factoriales
Tres veces se invoca el módulo
FACTORIAL, quien además de
calcular el factorial lo muestra por
pantalla
Int. a la Computación-Int. a la Programación – Fund. De la Informática
16
Lenguaje de Diseño: Subalgoritmos
Inconveniente:
- se debe ingresar el número toda vez que se invoca el
subalgoritmo.
- alta probabilidad de cometer error en el ingreso.
Se pretende:
- ingresar el dato una única vez.
Int. a la Computación-Int. a la Programación – Fund. De la Informática
17
Lenguaje de Diseño: Subalgoritmos
Pantalla
Ingresa N
N
N2
Pantalla
Muestra
FACTORIAL
Calculo Factoriales
Algoritmo
Subalgoritmo
Int. a la Computación-Int. a la Programación – Fund. De la Informática
18
Lenguaje de Diseño: Subalgoritmos
ALGORITMO Calculo Factoriales
COMENZAR
N, AUX: entero
LEER N
AUX N
FACTORIAL
N
FACTORIAL
N
FACTORIAL
FIN
AUX 3
AUX 2
SUBALGORITMO Factorial
COMENZAR
FACT, I: entero
FACT 1
PARA I DESDE 1 HASTA N CON PASO 1 HACER
FACT
FACT * I
FINPARA
ESCRIBIR FACT
FIN
?
Int. a la Computación-Int. a la Programación – Fund. De la Informática
19
Lenguaje de Diseño: Subalgoritmos
ALGORITMO Calculo Factoriales
COMENZAR
N, AUX: entero
LEER N
AUX N
FACTORIAL(N)
N
AUX 2
FACTORIAL(N)
N
AUX 3
FACTORIAL(N)
FIN
FINPARA
ESCRIBIR FACT
FIN
Es necesario poder “comunicarle” al subalgoritmo el valor
que necesita, en este caso el valor de N
SUBALGORITMO “Factorial” (in Nu:entero)
COMENZAR
FACT, I: entero
FACT 1
PARA I DESDE 1 HASTA Nu CON PASO 1 HACER
FACT
FACT * I
Int. a la Computación-Int. a la Programación – Fund. De la Informática
20
Lenguaje de Diseño: Subalgoritmos
Supongamos que se desea sacar del módulo FACTORIAL la tarea de mostrar por pantalla
FACTORIAL
Invocación
Retorno
Muestra
Es necesario que el módulo
devuelva el resultado para que,
desde el algoritmo se muestre por
pantalla
Entrada
Calculo Factoriales
Pantalla
Int. a la Computación-Int. a la Programación – Fund. De la Informática
21
Lenguaje de Diseño: Subalgoritmos
Entrada N
FACTORIAL
Invocación
Retorno
Muestra
Calculo Factoriales
Pantalla
ALGORITMO Calculo Factoriales
COMENZAR
N, AUX, FACT: entero
LEER N
AUX N
FACTORIAL(N, FACT)
ESCRIBIR FACT
N
FACTORIAL(N, FACT)
ESCRIBIR FACT
N
FACTORIAL(N, FACT)
ESCRIBIR FACT
FIN
AUX 2
AUX 3
Int. a la Computación-Int. a la Programación – Fund. De la Informática
22
Lenguaje de Diseño: Subalgoritmos
¿Qué función cumple NU y FA?
SUBALGORITMO “Factorial” (in NU:entero, out FA:entero)
COMENZAR
I: entero
FA
PARA I DESDE 1 HASTA NU CON PASO 1 HACER
1
ALGORITMO Calculo Factoriales
COMENZAR
N, AUX, FACT: entero
LEER N
AUX N
FACTORIAL(N, FACT)
ESCRIB
Comentarios de: Modularización: Subalgoritmos - Lenguaje de Diseño (0)
No hay comentarios