Sei sulla pagina 1di 22

ESTRUCTURAS DE CONTROL COMBINADAS Y ANIDADAS

Las estructuras de control permiten modificar el flujo de ejecucin de las instrucciones de un programa.

Todas las estructuras de control tienen un nico punto de entrada y un nico punto de salida.

CLASIFICACIN:

SECUENCIALES

ITERATIVAS

Control avanzadas

Esto es una de las cosas que permite que la programacin se rija por los principios de la programacin estructurada.

Tipos de estructuras de control SECUENCIALES Ejecucin secuencial Pero por lo general las instrucciones se ejecutan una despus de la otra, en el orden en que estn escritas, es decir, en secuencia. Este proceso se conoce como ejecucin secuencial. De seleccin Las estructuras de control de seleccin, ejecutan un bloque de instrucciones u otro, o saltan a un subprograma o subrutina segn se cumpla o no una condicin.

Seleccin if simple Se trata de una estructura de control que permite redirigir un curso de accin segn la evaluacin de una condicin simple, sea falsa o verdadera.
Select-Case Esta sentencia permite ejecutar una de entre varias acciones en funcin del valor de una expresin.

Estructuras de control ITERATIVAS

NO ESTOY SEGURA DE ESTO QUE OPINAN????

Las estructuras de control iterativas o de repeticin, inician o repiten un bloque de instrucciones si se cumple una condicin o mientras se cumple una condicin. Do-While Mientras la condicin sea verdadera, se ejecutarn las sentencias del bloque. DO WHILE (Condicin) (Bloque de sentencias) LOOP que tambin puede expresarse: WHILE (Condicin) (Bloque de sentencias) WEND

Do-Until
Se ejecuta el bloque de sentencias, hasta que la condicin sea verdadera DO (Bloque de sentencias) LOOP UNTIL (Condicin)

For-Next
La sentencia For da lugar a un lazo o bucle, y permite ejecutar un conjunto de sentencias cierto nmero de veces. Primero, se evalan las expresiones 1 y 2, dando como resultado dos nmeros. La variable del bucle recorrer los valores desde el nmero dado por la expresin 1 hasta el nmero dado por la expresin 2. El bloque de sentencias se ejecutar en cada uno de los valores que tome la variable del bucle. FOR (Variable) = (Expresin1) TO (Expresin2) STEP (Salto) (Bloque de sentencias) NEXT

Estructuras anidadas Las estructuras de control bsicas pueden anidarse, es decir pueden ponerse una dentro de otra. Estructura For-Next que est dentro de estructura Do-While Ejemplo: DO WHILE A > 0 FOR X = 1 TO 10 (Bloque de instrucciones) NEXT A = A - 1 LOOP

TEMA 2

DESCOMPOSICION FUNCIONAL

NO ESTOY SEGURA CHEQUENLO BN

TOP-DOWN
Es una herramienta que presenta en primer lugar una solucin a un problema general utilizando tres o cuatro pasos solamente.

Cada uno de esos pasos en la primera solucin se dividen en otros subpasos. Se repite varias veces, en cada iteracin se produce una solucin ms detallada al problema original.

Cuando los pasos ya no se pueden subdividir, el algoritmo ha terminado.


El diseo top-down tambin se conoce como: DESCOMPOSICIN FUNCIONAL O REFINAMIENTO DE PASOS. El diseo produce mdulos en un algoritmo.

Recordemos que los mdulos son grupos de instrucciones que desarrollan funciones especficas.
Supongamos que queremos escribir un algoritmo que imprima facturas, en primer lugar vamos a identificar esa tarea en la primera iteracin den diseo top-down. El paso calcular el monto total de la factura lo podemos redefinir como.

Lo que nos ayuda a definir los mdulos de nuestro algoritmo en: Mdulo 1. Obtener detalles del cliente Mdulo 2. Obtener detalles de todas las ordenes de ese cliente Mdulo 3. Calcular el monto total de las facturas del cliente

Mdulo 4. Agregar el 5% de inters a las facturas de hace 1 mes


Mdulo 5. Agregar el 10% de inters a las facturas anteriores a 1 mes

Mdulo 6. Sumar el monto de las facturas con el total de los intereses


Mdulo 7. Imprimir el monto total

Cada mdulo debe ser tratado en la misma manera que el problema general, el diseo topdown, hace que el problema general se convierta en problemas ms especficos y en general ms fciles de resuelve

Top-Down Este tipo de diseo consiste en ir descomponiendo el programa en piezas ms pequeas y manejables (subrutinas, funciones o procedimientos). Cada procedimiento se puede analizar como un transformador de datos, se le pasan una serie de datos a la entrada que transforma para obtener salidas.

El proceso de diseo consiste en encontrar el conjunto de funciones capaces de realizar las transformaciones requeridas.
Un primer problema que podemos observar en este tipo de diseo es que no favorece la reutilizacin porque las funciones de mas bajo nivel desarrolladas son muy dependientes del problema que pretenden resolver y de los datos globales existentes en el programa en el que se incluyen. Este diseo, adems, se ve muy afectado por cambios en los requisitos funcionales.

DISEO DESCENDENTE (TOP-DOWN) El diseo descendente es la tcnica que permite descomponer un problema complejoen problemas ms sencillos, realizndose esta operacin de forma sucesiva hasta llegar alnivel mnimo de abstraccin en el cual se pueden codificar las operaciones en un lenguajede programacin. Cada nivel de abstraccin define de forma ms concreta el problema y subdivide las operaciones en otras menos abstractas.Con esta tcnica se crean distintos niveles de refinamiento que se representan de lasiguiente forma:

EL NIVEL 0 es el ms abstracto, es la descripcin funcional del problema. El ltimo nivel es el que permite la codificacin en un lenguaje de programacin concreto. Ejemplo Algoritmo que tiene como objetivo calcular la media de las notas de una clase

O es fundamental en la evolucin de los lenguajes deprogramacin.


Este concepto hace referencia a la visin que se tiene de cada refinamiento en el diseo Top-Down ya que en cada paso se consideran tan slo aquellos datos importantes para el nivel en el que estamos, obviando el resto -que se resolvern en los siguientes refinamientos.

PROBLEMA Esta sucesin puede expresarse mediante la siguiente recurrencia:

RESOLUCINEl mismo problema usando Top-down tendra la siguiente estructura: FUNC Fibonacci (n: NATURAL, tabla: ARRAY [0..n] DE NATURALES): NATURAL

VARIABLES
i: NATURAL INICIO SI n <= 1 ENTONCES devolver n FINSI SI tabla[n-1] = -1 ENTONCES tabla[n-1] := Fibonacci(n-1, tabla) FINSI SI tabla[n-2] = -1 ENTONCES tabla[n-2] := Fibonacci(n-2, tabla) FINSI tabla[n] := Fibonacci(n-1,tabla) + Fibonacci(n-2,tabla) devolver tabla[n] FIN

Potrebbero piacerti anche