PDF de programación - Modularización: Subalgoritmos - Lenguaje de Diseño

Imágen de pdf Modularización: Subalgoritmos - Lenguaje de Diseño

Modularización: Subalgoritmos - Lenguaje de Diseñográfica de visualizaciones

Publicado el 24 de Junio del 2018
197 visualizaciones desde el 24 de Junio del 2018
10,2 MB
48 paginas
Creado hace 3a (01/01/2017)
Lenguaje de Diseño

Tercera Parte

Resolución de Problemas y Algoritmos

Primer Cuatrimestre 2017

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

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

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.

4

Programación Modular

Un elefante se balanceaba
sobre la tela de una araña,
como veía que resistía
fue a llamar a otro elefante.
Dos elefantes se balanceaban
sobre la tela de una araña,
como veían que resistía
fueron a llamar a otro elefante.
Tres elefantes se balanceaban
sobre la tela de una araña,
como veían que resistía
fueron a llamar a otro elefante.
Cuatro elefantes se balanceaban
sobre la tela de una araña,
como veían que resistía
fueron a llamar a otro elefante.


Un elefante se balanceaba
sobre la tela de una araña,
como veía que resistía
fue a llamar a otro elefante.

<Nro> elefantes se balanceaban
sobre la tela de una araña,
como veían que resistía
fueron a llamar a otro elefante.


5

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.

6

Modularización

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.

4

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.



7

1
1

4
4



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.

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.



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.



8

1

2

4

Algoritmo de dibujo del triángulo
TRIAN

Modularización

3

5

9

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

10

Modularización



Programación Modular



•  Aumenta la legibilidad y comprensión del programa
•  Reduce el tiempo de desarrollo, aprovechando módulos ya existentes
•  Permite la resolución del problema por varios programadores a la vez
•  Facilita la depuración del programa
•  Facilita el mantenimiento

Ventajas:


.


Modularización



Problema

Técnica de diseño: Top Down

Sub problema

1

Sub problema

3

Sub problema

2


T1

T1

T3

T2


T11

T12

T13

T31

T32

T11

T12

Modularización

TRIAN es un algoritmo común al conjunto de problemas



TRIAN es un MÓDULO

1

2

TRIAN

3

4

5

13

1

t1 - Dibujo la base.
t2 - Dibujo el poste.
t3 – TRIAN
t4 - TRIAN


3

t1 - Dibujo el rectángulo.
t2 - TRIAN

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.


14

5



t1 - Dibujo rectángulo1.
t2 - Dibujo rectángulo2.
t3 - TRIAN
t4 - TRIAN
t5 - TRIAN
t6 - TRIAN

Modularización

Invocación

15

Modularización

Acciones Primitivas

Procesador

Programa Principal.
Solamente puede tener
12 órdenes

16

Modularización

17

Modularización

Ejercicio

18

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.

19

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

20

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

21

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

22

Lenguaje de Diseño: Subalgoritmos

Invocación

FACTORIAL

Pantalla

Entrada

Retorno

“Calculo Factoriales”

Tres veces se invoca el módulo
FACTORIAL, quien además de
calcular el factorial lo muestra por
pantalla

23

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.

24

Lenguaje de Diseño: Subalgoritmos

Pantalla

Entrada

N

NŸ2

FACTORIAL

Muestra

Pantalla

Calculo Factoriales

25

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

?

26

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

27

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

28

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

Calculo Factoriales

Lenguaje de
  • Links de descarga
http://lwp-l.com/pdf12098

Comentarios de: Modularización: Subalgoritmos - Lenguaje de Diseño (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad