Vous êtes sur la page 1sur 8

Anlisis: Tcnica del Diseo Descendente

Top-Down o Refinamientos Sucesivos


Tarea Principal se divide en tareas ms pequeas y
especficas, a su vez stas se pueden dividir en otras, y as
Introduccin a la Computacin sucesivamente.
Aplicacin de la tcnica Divide y vencers :
Divisin en unidades manejables llamadas mdulos.
Utilizacin de mtodos para representar la solucin
Captulo 3: (pseudocdigo, diagrama de flujo, etc).
Subprogramas Tarea dividida en tareas ms pequeas, codificacin
posterior ms sencilla.

Diapositiva 1 Diapositiva 2

Tcnica del Diseo Descendente Ejemplo 3.1- Definicin


Definicin
Calcular el rea de un tringulo, si se conocen sus
tres lados.
La frmula para calcular el rea un de un tringulo
es la siguiente:

Area = p * ( p a ) * ( p b) * ( p c )

Datos de Entrada: Lados a, b, c


Datos de Salida: Area (el rea del tringulo)

Diapositiva 3 Diapositiva 4

Page 1
1
Ejemplo 3.1 - Anlisis Ejemplo 3.1 - Anlisis

Alternativa 2:
Nos interesa usar la Tcnica modular, es decir, dividir el
problema en unidades manejables llamadas mdulos. No
hay una regla fija en la forma de dividir en mdulos, cada
mdulo corresponder a un algoritmo (en el diseo)
pudiendo haber varias alternativas, por ejemplo, aqu se
presentan 4 alternativas:

Alternativa 1: Alternativa 3:
Calcula rea
del tringulo

Diapositiva 5 Diapositiva 6

Ejemplo 3.1 - Anlisis Ejemplo 3.1 - Anlisis


Cmo saber qu alternativa seleccionar?
Alternativa 4:
La eleccin de la alternativa depender de la complejidad del
problema y de la independencia que existe entre los mdulos.

En general, al crear los mdulos, tener en cuenta que stos


pueden tener las siguientes ventajas caractersticas:
 Reutilizables, que se pueden usar repetidas veces.
 Transportables, que puedan ser utilizados en la solucin de
otro problema.
 Independientes, que se encarguen de resolver una tarea
especfica sin interferir en otras partes del problema.
 Simples de mantener (revisar, modificar, mejorar)

Diapositiva 7 Diapositiva 8

Page 2
2
Ejemplo 3.1 - Anlisis Diseo
Hasta qu nivel se debe llegar en la descomposicin de tareas? Algoritmo
Se debe dejar de descomponer cuando no se encuentren tareas
bien definidas, sin embargo esto es relativo, y se pueden Conjunto ordenado y finito de operaciones que
considerar menos mdulos. Tampoco es conveniente muchos
mdulos porque el problema entonces sera la coordinacin permite hallar la solucin de un problema.[RAE]
entre tantos mdulos. Para resolver un mismo problema se puede tener
En nuestro caso, primero desarrollaremos el diseo de la
alternativa 4: infinidad de algoritmos. Es posible realizar
comparaciones entre algoritmos que resuelvan un
mismo problema. Normalmente interesa encontrar
el mejor algoritmo para solucionar un problema.

Diapositiva 9 Diapositiva 10

Ejemplo 3.1 Diseo considerando la Alternativa 4 Ejemplo 3.1 - Diseo


Diseo: Mdulos del Segundo Nivel
Diseo: Mdulo Principal
Inicio Leer_Lados(a, b, c) 2.
Leer a 3.
Inicio Calcular_Area_Triangulo Leer b 4.
Leer_Lados(a, b, c) 1. Leer c 5.
Fin Leer_Lados 6.
areaRealizar_Calculos(a, b, c) 7.
Inicio Realizar_Calculos (a, b, c) 8.
Imprimir_area(El rea es ,area) 21. pCalcular_Semiperimetro(a, b, c) 9.
Fin Calcular_Area_Triangulo 25. areaCalcular_Area(p, a, b, c) 14.
Realizar_Calculosarea 19.
Fin Realizar_Calculos 20.
Nota: En cada lnea, la parte derecha a partir de la comilla se Notar que la funcin termina con una sentencia donde el mismo nombre de
la funcin se convierte en variable, tomando el valor del resultado deseado.
considera un comentario. No es parte del algoritmo.
En este caso se est indicando la secuencia de ejecucin. 1, Inicio Imprimir_area (mensaje, dato) 22.
2, 3, etc.. Imprimir mensaje,dato 23.
Fin Imprimir_area 24.

Diapositiva 11 Diapositiva 12

Page 3
3
Ejemplo 3.1 - Diseo Ejemplo 3.1 Diseo (Diag. de flujo)
Diseo: Mdulos del Tercer Nivel Calcular_Area_Triangulo
Inicio Calcular_Semiperimetro(a, b, c) 10.
semiperimetro(a+b+c)/2 11.
Inicio
Calcular_Semiperimetrosemiperimetro 12.
Fin Calcular_Semiperimetro 13. Leer_Lados(a,b,c)

Inicio Calcular_Area(p, a, b, c) 15. area Realizar_Calculos (a, b, c)

area raiz_cuadrada(p*(p-a)*(p-b)*(p-c)) 16.


Imprimir_area(El rea es ,area)
Calcular_Areaarea 17.
Fin Calcular_Area 18. Fin

Diapositiva 13 Diapositiva 14

Ejemplo 3.1 Diseo (Diag. de flujo) Ejemplo 3.1 Diseo (Diag. de flujo)

Leer_Lados (a, b, c)
Realizar_Calculos (a, b, c) Calcular_Semiperimetro(a, b, c)
Inicio

Inicio Inicio
a, b, c

Fin p Calcular_Semiperimetro (a,b,c)

Semiperimetro (a+b+c)/2
Imprimir_area (mensaje, dato) area Calcular_Area (p,a,b,c)
Inicio
Realizar_Calculos area Calcular_SemiperimetroSemiperimetro
mensaje, dato

Fin

Fin
Fin

Diapositiva 15 Diapositiva 16

Page 4
4
Ejemplo 3.1 Diseo (Diag. de flujo) Ejemplo 3.2 Diseo considerando la Alternativa 3
El anlisis (alternativa 3)
Calcular_Area(p, a, b, c) qued:
Inicio

Arearaiz_cuadrada(p*(p-a)*(p-b)*(p-c)) Diseo: Mdulo Principal

Inicio Calcular_Area_Triangulo
Leer_Lados(a, b, c)
Calcular_AreaArea pCalcula_semiperimetro(a, b, c)
areaCalcula_area(p, a, b, c)
Imprimir_area(El rea es ,area)
Fin Calcular_Area_Triangulo
Fin

Diapositiva 17 Diapositiva 18

Ejemplo 3.2 - Diseo Frmula - Ejemplo 3.3


Diseo: Mdulos del Segundo Nivel
Definicin
Inicio Leer_Lados(a, b, c)
Leer a
Leer b
Evaluar la siguiente frmula
Leer c
Fin Leer_Lados Entrada: x , , b , a
Inicio Calcular_Semiperimetro(a, b, c) Salida: M
semiperimetro(a+b+c)/2
Calcular_Semiperimetrosemiperimetro

( )
Fin Calcular_Semiperimetro

Inicio Calcular_Area(p, a, b, c)
area raiz_cuadrada(p*(p-a)*(p-b)*(p-c)) arcsec x +
Calcular_Areaarea
Fin Calcular_Area M=
Inicio Imprimir_area (mensaje, dato)
Imprimir mensaje,dato
Fin Imprimir_area
ln (b + a)

Diapositiva 19 Diapositiva 20

Page 5
5
Frmula - Ejemplo 3.3 Frmula - Ejemplo 3.3
Anlisis Diseo
Qu debo hacer para resolver la frmula?
1.- Dividir la frmula en partes matemticamente ms sencillas de resolver.
Inicio Aplicar_Formula
2.- Resolver cada una de las partes. Leer_variables (x, phi , b , a) No usar letras griegas
Aplicar M Evaluar_Formula (x, phi , b , a)
Frmula
Imprimir_resultado(M = , M)
Leer Evaluar
Variables Frmula
Imprimir
Resultado Fin Aplicar_Formula

Hallar Hallar
Numerador Denominador

Hallar
Arcosecante

Diapositiva 21 Diapositiva 22

Frmula - Ejemplo 3.3 Frmula - Ejemplo 3.3


Diseo Inicio Hallar_Numerador (x, phi)
termino  raiz_cuadrada(x+ phi)
Inicio Leer_variables (x, phi, b, a) Hallar_Numerador  valor_absoluto(arcsec(termino))
Leer x, phi, b, a De preferencia usar sin parntesis Fin Hallar_Numerador
Fin Leer_variables
Inicio Hallar_Denominador (b, a)
Inicio Evaluar_Formula (x, phi, b, a)
Hallar_Denominador ln(b*3.1416+a)
Evaluar_Formula  Hallar_Numerador(x,phi) / Hallar_Denominador(b,a)
Fin Hallar_Denominador
Fin Evaluar_Formula

Inicio arcsec(x)
Inicio Imprimir_resultado (mensaje, dato)
arcsecarctan(raiz_cuadrada(x^2-1))
Imprimir mensaje,dato
Fin arcsec
Fin Imprimir_resultado

Diapositiva 23 Diapositiva 24

Page 6
6
Frmula - Ejemplo 3.3 Clculo de reas - Ejemplo 3.4
Ntese que en vez de utilizar arcosec se hizo una Calcular el rea del slido mostrado en
transformacin para usar la frmula equivalente la figura:
con arctan. Tomar como base un mdulo que
Primero se fija el tringulo con 2 calcule el rea de un rectngulo
lados, x y 1, tal que: genrico.
= arcsec(x)
Luego se determina el 3er. Lado,
x y se calcula as: Definicin: Calcular el rea interna del
x - 1 = arctan(lado op./ lado adyac.)
slido mostrado.

En este caso sale: Entradas: Los lados a, b, c
1 a= arctan( x 1 )
2

Salidas: El rea total, area


Area de un rectngulo= Base*altura

Diapositiva 25 Diapositiva 26

Anlisis y Diseo Ejemplo 3.4 - Diseo


Diseo: Mdulos del Segundo Nivel
Anlisis: Inicio Lee_Lados(a, b, c)
Leer a, b, c
Fin Lee_Lados

Inicio Calc_Area_Total(a, b, c)
Area1 Calc_Area_Rectangulo(a, b)
Area2 Calc_Area_Rectangulo(a, c)
Area3 Calc_Area_Rectangulo(b, c)
Calc_Area_Total Area1 + Area2 + Area3
Fin Calc_Area_Total

Diseo: Inicio Reporte (dato)


Imprimir El area total es: , dato
Inicio Calcula_Area_Solido Fin Reporte

Lee_Lados(a, b, c) Diseo: Mdulos del Tercer Nivel


areaCalc_Area_Total(a, b, c) Inicio Calc_Area_Rectangulo(x, y)
Calc_Area_Rectangulox*y
Reporte(area) Fin Calc_Area_Rectangulo

Fin Calcula_Area_Solido

Diapositiva 27 Diapositiva 28

Page 7
7
Bibliografa
Marcela Genero Bocco
Excel con Visual Basic Para Aplicaciones (VBA)
Noviembre 2002
CAIR, Osvaldo.
Metodologa de la programacin.
2a edicin. Mxico: Alfaomega, 2003.

Diapositiva 29

Page 8
8

Vous aimerez peut-être aussi