martes, 21 de julio de 2009

Estructuras Cíclicas o repetitivas

*Conceptos:


Se llaman problemas repetitivos o cíclicos a aquellos en cuya solución es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad específica de veces. Esta cantidad puede ser fija (previamente determinada por el programador) o puede ser variable (estar en función de algún dato dentro del programa).

*Otro concepto:

Son operaciones que se deben ejecutar un número repetido de veces. El conjunto de instrucciones que se ejecuta repetidamente cierto número de veces, se llama Ciclo, Bucle o Lazo.Iteración es cada una de las diferentes pasadas o ejecuciones de todas las instrucciones contenidas en el bucle.
Fases de un Programa Cíclico :1. Entrada de datos e instrucciones previas2. Lazo o bucle3. Instrucciones finales o resto del proceso4. Salida de resultado
En el flujograma anterior, observa que la flecha que se regresa hacia arriba nos está indicando que hay que volver a evaluar la expresión. En ese caso como el bucle es infinito, no se tiene una condición para terminar y se estará haciendo siempre. En el siguiente ejemplo, ya se agregó una condición, la cual nos permitirá finalizar la ejecución del bucle en el caso en que la condición se cumpla.
-Bucles Repetitivos:
A continuación, te muestro tres diseños de estructuras cíclicas: las independientes son cuando los bucles se realiza uno primero hasta que se cumple la condición y solo en ese caso se entra al bucle B.
En los ciclos anidados, al entrar a una estructura de repetición, dentro de ella se encuentra otra. La más interna se termina de realizar y se continúa con la externa hasta que la condición se cumple.
En los bucles cruzados, los cuales no son convenientes de utilizar, se tiene que iniciamos un bucle y no se ha terminado cuando empezamos otro, luego utilizamos estructuras goto (saltos) para pasar al bucle externo y se quedan entrelazados.
Esto puede ocasionar que el programa pierda el control de cuál proceso se está ejecutando y podamos obtener resultados erróneos.

*Iteración ó Ciclo:

Es la acción de repetir una serie de pasos un cierto número de veces.

-En programación :
Iteración en programación es la repetición de una serie de instrucciones en un programa de computadora. Puede usarse tanto como un término genérico (como sinónimo de repetición) así como para describir una forma específica de repetición con un estado mutable.
Cuando se usa en el primer sentido, la recursividad es un ejemplo de iteración, pero que usa su propia notación (notación recursiva), que no es el caso de iteración.
Sin embargo, cuando se usa en el segundo sentido (caso más restringido), la iteración describe el estilo de programación usado en lenguajes de programación imperativa. Esto está en contraposición de la recursividad, la cual tiene un enfoque más declarativo.

*Tipos de Ciclos:

Ciclos con un Numero Determinado de IteracionesSon aquellos en que el número de iteraciones se conoce antes de ejecutarse el ciclo. (Hacer Para). Ciclos con un Número Indeterminado de Iteraciones. Son aquellos en que el numero de iteraciones no se conoce con exactitud, ya que esta dado en función de un dato dentro del programa. (Hacer Mientras, Repetir Hasta).

*Estructuras:

Una Estructura Repetitiva es aquella que Repite una secuencia un Número de veces (Bucles) y al hecho de repetir la ejecución de una secuencia de acciones (Iteración). Estas son:

1. Estructuras "Hacer Para" (For): Permiten ejecutar una sentencia un número especifico de veces. Comienza con un Valor inicial hasta llegar a un valor final. (El numero de iteraciones se conoce antes de ejecutarse el ciclo).

2. Estructuras "Hacer Mientras" (While): Esta estructura repetirá un proceso durante “N” veces, donde “N” puede ser fijo o variable. Para esto, la instrucción se vale de una condición que es la que debe cumplirse para que se siga ejecutando. Cuando la condición ya no se cumple, entonces ya no se ejecuta el proceso.

3. Estructuras "Repetir Hasta" (Repeat): Repite un proceso una cantidad de veces, pero a diferencia del "Hacer Mientras", el "Repetir Hasta" lo hace hasta que la condición se cumple y no mientras, como en el "Hacer Mientras". Por otra parte, esta estructura permite realizar el proceso cuando menos una vez, ya que la condición se evalúa al final del proceso, mientras que en el "Hacer Mientras" puede ser que nunca llegue a entrar si la condición no se cumple desde un principio.

*Ejercicios Algoritmos:

1. Al cerrar un expendio de naranjas, 15 clientes que aun no han pagado recibirán un 15% de descuento si compran más de 10 kilos. Determinar cuánto pagara cada cliente y cuanto percibirá la tienda por esas compras. (Estructura Hacer Para).

Inicio

---Hacer para C: 1 a 15

----Leer: Kc, Pk

----Si Kc >10 entonces

------Sub: Kc*Pk

------Des: Sub* 0.15

------Tp: Sub - Des

-----Si no

------Tp: Kc*Pk

----Fin-Si

----Imprimir: “Su Precio a Pagar es;” Tp

---Fin-para

Fin

2. En una empresa se requiere calcular el salario semanal de cada uno de los N obreros que laboran en ella. El salario se obtiene de la sig. forma:Si el obrero trabaja 40 horas o menos se le paga $20 por horaSi trabaja más de 40 horas se le paga $20 por cada una de las primeras 40 horas y $25 por cada hora extra. (Estructura Hacer Mientras).

Inicio

---Leer: N

---Hacer mientras N

----Leer: Ht

----Si Ht <= 40 entonces

------Ss: Ht*20

-----Si no

------He: Ht-40

------Se: He*25

------Ss: 800+Se

----Fin-Si

----Imprimir: “Su salario semanal es;” Ss

---Fin-mientras

Fin