Actualizado el 30 de Junio del 2018 (Publicado el 26 de Junio del 2018)
976 visualizaciones desde el 26 de Junio del 2018
6,5 MB
48 paginas
Creado hace 8a (01/05/2016)
Teoría Nº 7: Lenguaje de Diseño
Modularización: Subalgoritmos
Ing. Electrónica con OSD – TUT – TUR – TUE – TUW - TUG
Ing. en Computación – Ing. en Informática
Segundo Cuatrimestre 2016
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
Res. De Problemas y Algoritmos - Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
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
Res. De Problemas y Algoritmos - Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
3
Programación Modular
La Tarara, sí;
la tarara, no;
La Tarara, niña,
que la he visto yo.
Lleva la Tarara
un vestido verde
lleno de volantes
y de cascabeles.
La Tarara, sí;
la tarara, no;
La Tarara, niña,
que la he visto yo
Luce mi Tarara
su cola de seda
sobre las retamas
y la hierbabuena.
La Tarara, sí;
la tarara, no;
La Tarara, niña,
que la he visto yo
Ay, Tarara loca.
Mueve, la cintura
para los muchachos
de las aceitunas.
La Tarara, sí;
la tarara, no;
La Tarara, niña,
que la he visto yo.
Estribillo
[Estribillo]
Lleva la Tarara
un vestido verde
lleno de volantes
y de cascabeles.
[Estribillo]
Luce mi Tarara
su cola de seda
sobre las retamas
y la hierbabuena
[Estribillo]
Ay, Tarara loca.
Mueve, la cintura
para los muchachos
de las aceitunas.
Res. De Problemas y Algoritmos - Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
4
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.
Res. De Problemas y Algoritmos - Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
5
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.
Res. De Problemas y Algoritmos - Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
6
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
Lenguaje de Diseño: Modularización
2
2
t1 - Dibujo el triángulo.
t1 - Dibujo el triángulo.
t2 - Dibujo la cola.
t2 - Dibujo la cola.
3
3
t1 - Dibujo el rectángulo.
t1 - Dibujo el rectángulo.
t2 - Dibujo el triángulo.
t2 - Dibujo el triángulo.
5
5
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.
Res. De Problemas y Algoritmos - Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
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.
7
Lenguaje de Diseño: Modularización
3
5
1
2
4
Algoritmo de dibujo del triángulo
TRIAN
Res. De Problemas y Algoritmos - Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
8
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
Res. De Problemas y Algoritmos - Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
9
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
Res. De Problemas y Algoritmos - Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
10
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.
Res. De Problemas y Algoritmos - Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
11
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
Res. De Problemas y Algoritmos - Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
12
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.
Res. De Problemas y Algoritmos - Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
13
Lenguaje de Diseño: Modularización
1
Invoca a TRIAN
Sale de TRIAN
Invoca a TRIAN
Sale de TRIAN
En Lenguaje de Diseño el concepto de Modularización se implementa con los
SUBALGORITMOS
Res. De Problemas y Algoritmos - Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
14
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
15
Res. De Problemas y Algoritmos - Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
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
Res. De Problemas y Algoritmos - Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
16
Lenguaje de Diseño: Subalgoritmos
Invocación
Retorno
FACTORIAL
Pantalla
Ingreso
Muestra
“Calculo Factoriales”
Tres veces se invoca el módulo
FACTORIAL, quien además de
calcular el factorial lo muestra por
pantalla
Res. De Problemas y Algoritmos - Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
17
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.
Res. De Problemas y Algoritmos - Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
18
Lenguaje de Diseño: Subalgoritmos
Subalgoritmo
FACTORIAL
Muestra
Pantalla
N
N2
Ingreso
Calculo Factoriales
Algoritmo
Res. De Problemas y Algoritmos - Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
19
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
?
Res. De Problemas y Algoritmos - Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
20
Lenguaje de Diseño: Subalgoritmos
ALGORITMO “Calculo Factoriales”
COMENZAR
N, AUX: entero
LEER
Comentarios de: Teoría 7 - Lenguaje de Diseño - Modularización: Subalgoritmos (0)
No hay comentarios