Publicado el 26 de Junio del 2018
467 visualizaciones desde el 26 de Junio del 2018
6,8 MB
47 paginas
Creado hace 9a (01/01/2016)
Lenguaje de Diseño
Primer 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
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
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
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 - 2016
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 - 2016
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 - 2016
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 - 2016
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 - 2016
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 - 2016
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 - 2016
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
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
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 - 2016
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 - 2016
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 - 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
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
15
Lenguaje de Diseño: Subalgoritmos
FACTORIAL
Muestra
Pantalla
Invocación
Retorno
“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 - 2016
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 - 2016
17
Lenguaje de Diseño: Subalgoritmos
Subalgoritmo
FACTORIAL
Muestra
Pantalla
N
N2
Calculo Factoriales
Algoritmo
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
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 - 2016
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 - 2016
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
Calculo Factoriales
Pantalla
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
21
Lenguaje de Diseño: Subalgoritmos
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 - 2016
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
Comentarios de: Modularización: Subalgoritmos (0)
No hay comentarios