17 de julio de 2009

ESTRUCTURA CICLICA

Estructuras Ciclicas: 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:

Entrada de datos e instrucciones previas
Lazo o bucle .
Instrucciones finales o resto del proceso
Salida de resultado.
Las estructuras cíclicas: se utilizan para ejecutar fragmentos de código un número limitado de veces. Existen tres estructuras cíclicas generales, las cuales son:
  1. Desde Hasta (For)
  2. Hacer Mientras (While)
  3. Hacer Hasta (Do While)


Las tres estructuras tienen el mismo objetivo, ejecutar un fragmento de código un número limitado de veces, su principal diferencia se encuentra en la forma en la cual limitan el número de ocasiones que se ejecutará el código.


Estructura Cíclica: Desde Hasta


La estructura cíclica Desde Hasta tiene una característica especial por sobre las otras estructuras cíclicas existentes, tiene la capacidad de incluir una o más variables que trabajaran como contadores, con las cuales se controla el número de ocasiones que se ejecutará el ciclo.
Esta sentencia repetirá el mismo código tantas veces como se le indique (actúa como un bucle). A partir de un valor inicial de una variable la va incrementando en cada iteración del bucle hasta que tome un valor determinado, momento en el que sale del bucle y continúa ejecutando el código inmediatamente inferior al ciclo Desde-Hasta.


Composición
Desde
: Indica la variable que se utilizará y el valor que tendrá cuando el bloque de código se ejecute por primera vez i=0.
Hasta: Debe hacer relación a la misma variable indicada en la sección desde, indica una sentencia lógica, que al momento de cumplirse detendrá la ejecución del ciclo Desde-Hasta, i=10.
Incremento: Indica el valor por el cual será incrementado la variable mencionada, el incremento puede ser positivo o negativo, pero se debe tener especial cuidado en que la sección Hasta se cumpla en algún momento incremento 1.
Acción(es): Corresponde al conjunto de líneas de código que se encuentran dentro del ciclo Desde-Hasta y que se ejecutarán en forma repetitiva.

Estructura cíclica: Hacer Mientras


El Ciclo Hacer-Mientras es conocido en los lenguajes de programación como ciclo While, una de sus características es que verifica si la condición se cumple antes de ingresar al bloque de código que se va a repetir, el límite de ejecuciones estará dado por la condición, se ejecutará mientras la condición devuelva un valor lógico verdadero.


Composición
Hacer Mientras:
Marca el inicio del bloque de código que se repetirá en forma cíclica.
Condición:
Se refiere a una comparación lógica que se evaluará en cada ejecución del ciclo, si esta operación lógica entrega un resultado verdadero continúa ejecutando el bloque de código, en caso contrario saldrá del ciclo y continuará con la línea de código que está a continuación del Fin Mientras
Fin Mientras:
Indica el término del bloque de código que se repetirá en forma cíclica

Repetir-Hasta:


Esta estructura, que en los lenguajes de programación de alto nivel es conocida como Do While, es similar a la estructura Hacer Mientras, pero tiene dos grandes diferencias:
- El código que se encuentra dentro del ciclo repetir hasta se ejecuta por lo menos una vez, debido a que la comparación y verificación de la condición esta en la parte inferior del código. - Para continuar requiere que la condición entregue un resultado lógico falso, a diferencia del ciclo Hacer-Mientras que requiere que el resultado de la condición sea verdadero.

Composición
Repetir:
Indica el inicio del bloque de código que se desea a repetir.
Accion1…n:
Corresponde al bloque de código que estará dentro del ciclo Repetir Hasta.
Hasta:
Indica el término del bloque de código que se desea repetir.
Condición:
Corresponde a una sentencia lógica que se evaluará en forma independiente cada vez que se desee repetir el bloque de código, si la evaluación se determina como falsa, se continuará ejecutando el bloque de código hasta que la evaluación sea falsa, para en ese instante continuar fuera del ciclo Repetir-Hasta.

ESTRUCTURAS CICLICAS


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).
Ciclos con un Numero Determinado de Iteraciones(Para): Son aquellos en que el número de iteraciones se conoce antes de ejecutarse el ciclo.


[ordinograma_si_doble.gif]

Dado un valor inicial exp1 asignado a la variable esta se irá aumentando o disminuyendo de acuerdo a la exp3 hasta llegar a la exp2; si se omite el paso, significa que la variable aumentará de uno en uno.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.Mientras Que: Esta es una estructura que 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. La forma de esta estructura es la siguiente:DIAGRAMA DE FLUJO



[pseudocodigo-mientras.gif]
[diagrama-mientras.gif]

Los ordenadores se diseñaron inicialmente para realizar tareas sencillas y repetitivas. El ser humano es de lo más torpe acometiendo tareas repetitivas: pronto le falla la concentración y comienza a tener descuidos. Los ordenadores programables, en cambio, pueden realizar la misma tarea muchas veces por segundo durante años y nunca se aburren (o, al menos, hasta hoy no se ha tenido constancia de ello)
La estructura repetitiva, por tanto, reside en la naturaleza misma de los ordenadores y consiste, simplemente, en repetir varias veces un conjunto de instrucciones. Las estructuras repetitivas también se llaman bucles, lazos o iteraciones. Nosotros preferiremos la denominación bucle.
(Recuerde que la estructura repetitiva o bucle es una de las estructuras permitidas en la
programación estructurada
)
Los bucles tienen que repetir un conjunto de instrucciones un número finito de veces. Si no, nos encontraremos con un bucle infinito y el algoritmo no funcionará. En rigor, ni siquiera será un algoritmo, ya que no cumplirá la condición de finitud.
El bucle infinito es un peligro que acecha constantemente a los programadores y nos toparemos con él muchas veces a lo largo de este curso. Para conseguir que el bucle se repita sólo un número finito de veces, tiene que existir una condición de salida del mismo, es decir, una situación en la que ya no sea necesario seguir repitiendo las instrucciones.
Por tanto, los bucles se componen, básicamente, de dos elementos:
un cuerpo del bucle o conjunto de instrucciones que se ejecutan repetidamente
una condición de salida para dejar de repetir las instrucciones y continuar con el resto del algoritmo
Dependiendo de dónde se coloque la condición de salida (al principio o al final del conjunto de instrucciones repetidas), y de la forma de realizarla, existen tres tipos de bucles, aunque hay que resaltar que, con el primer tipo, se puede programar cualquier estructura iterativa. Pero con los otros dos, a veces el programa resulta más claro y legible. Los tres tipos de bucle se denominan:
Bucle “mientras“: la condición de salida está al principio del bucle.
Bucle “repetir“: la condición de salida está al final del bucle.
Bucle “para“: la condición de salida está al principio y se realiza con un contador automático.
El bucle “mientras”
El bucle “mientras” es una estructura que se repite mientras una condición sea verdadera. La condición, en forma de expresión lógica, se escribe en la cabecera del bucle, y a continuación aparecen las acciones que se repiten (cuerpo del bucle):mientras (condición) hacer
inicio
acciones (cuerpo del bucle)
fin
Cuando se llega a una instrucción mientras, se evalúa la condición. Si es verdadera, se realizan las acciones y, al terminar el bloque de acciones, se regresa a la instrucción mientras (he aquí el bucle o lazo). Se vuelve a evaluar la condición y, si sigue siendo verdadera, vuelve a repetirse el bloque de acciones. Y así, sin parar, hasta que la condición se haga falsa.
Por ejemplo, vamos a escribir un algoritmo que muestre en la pantalla todos los números enteros entre 1 y 100algoritmo contar
variables
cont es entero
inicio
cont = 0
mientras (cont <= 100) hacer inicio cont = cont + 1 escribir (cont) fin fin Aquí observamos el uso de un contador en la condición de salida de un bucle, un elemento muy común en estas estructuras. Observe la evolución del algoritmo: cont = 0. Se le asigna el valor 0 a la variable cont (contador) mientras (cont <= 100) hacer. Condición de salida del bucle. Es verdadera porque cont vale 0, y por lo tanto es menor o igual que 100. cont = cont + 1. Se incrementa el valor de cont en una unidad. Como valía 0, ahora vale 1. escribir(cont). Se escribe el valor de cont, que será 1. Después, el flujo del programa regresa a la instrucción mientras, ya que estamos en un bucle, y se vuelve a evaluar la condición. Ahora cont vale 1, luego sigue siendo verdadera. Se repiten las intrucciones del bucle, y cont se incrementa de nuevo, pasando a valer 2. Luego valdrá 3, luego 4, y así sucesivamente. La condición de salida del bucle hace que éste se repita mientras cont valga menos de 101. De este modo nos aseguramos de escribir todos los números hasta el 100. Lo más problemático a la hora de diseñar un bucle es, por lo tanto, pensar bien su condición de salida, porque si la condición de salida nunca se hiciera falsa, caeríamos en un bucle infinito. Por lo tanto, la variable implicada en la condición de salida debe sufrir alguna modificación en el interior del bucle; si no, la condición siempre sería verdadera. En nuestro ejemplo, la variable cont se modifica en el interior del bucle: por eso llega un momento, después de 100 repeticiones, en el que la condición se hace falsa y el bucle termina. El bucle “repetir” El bucle de tipo “repetir” es muy similar al bucle “mientras”, con la salvedad de que la condición de salida se evalúa al final del bucle, y no al principio, como a continuación veremos. Todo bucle “repetir” puede escribirse como un bucle “mientras”, pero al revés no siempre sucede. La forma de la estructura “repetir” es la que sigue:repetir inicio acciones fin Cuando el ordenador encuentra un bucle de este tipo, ejecuta las acciones escritas entre inicio y fin y, después, evalúa la condición, que debe ser de tipo lógico. Si el resultado es falso, se vuelven a repetir las acciones. Si el resultado es verdadero, el bucle se repite. Si es falso, se sale del bucle y se continúa ejecutando la siguiente instrucción.Existe, pues, una diferencia fundamental con respecto al bucle “mientras”: la condición se evalúa al final. Por lo tanto, las acciones del cuerpo de un bucle “repetir” se ejecutan al menos una vez, cuando en un bucle “mientras” es posible que no se ejecuten ninguna (si la condición de salida es falsa desde el principio) Ejemplo: Escribir un algoritmo que escriba todos los números enteros entre 1 y 100, pero esta vez utilizando un bucle “repetir” en lugar de un bucle “mientras”algoritmo contar variables cont es entero inicio cont = 0 repetir inicio cont = cont + 1 escribir (cont) fin mientras que (cont <= 100) fin Observa que el algoritmo es básicamente el mismo que en el ejemplo anterior, pero hemos cambiado el lugar de la condición de salida. El bucle “para” En muchas ocasiones se conoce de antemano el número de veces que se desean ejecutar las acciones del cuerpo del bucle. Cuando el número de repeticiones es fijo, lo más cómodo es usar un bucle “para”, aunque sería perfectamente posible sustituirlo por uno “mientras”. La estructura “para” repite las acciones del bucle un número prefijado de veces e incrementa automáticamente una variable contador en cada repetición. Su forma general es:para cont desde valor_inicial hasta valor_final hacer inicio acciones fin cont es la variable contador. La primera vez que se ejecutan las acciones situadas entre inicio y fin, la variable cont tiene el valor especificado en la expresión valor_inicial. En la siguiente repetición, cont se incrementa en una unidad, y así sucesivamente, hasta alcanzar el valor_final. Cuando esto ocurre, el bucle se ejecuta por última vez y después el programa continúa por la instrucción que haya a continuación.El incremento de la variable cont siempre es de 1 en cada repetición del bucle, salvo que se indique otra cosa. Por esta razón, la estructura “para ” tiene una sintaxis alternativa:para cont desde valor_inicial hasta valor_final incdec paso hacer inicio acciones fin De esta forma, se puede especificar si la variable cont debe incrementarse (inc) o decrementarse (dec) en cada repetición, y en qué cantidad (paso). Ejemplo 1: Escribir un algoritmo que escriba todos los números enteros entre 1 y 100, utilizando un bucle “para”algoritmo contar variables cont es entero inicio para cont desde 1 hasta 100 hacer inicio escribir (cont) fin fin De nuevo, lo más interesante es observar las diferencias de este algoritmo con los dos ejemplos anteriores. Advierta que ahora no es necesario asignar un valor inicial de 0 a cont, ya que se hace implícitamente en el mismo bucle; y tampoco es necesario incrementar el valor de cont en el cuerpo del bucle (cont = cont + 1), ya que de eso se encarga el propio bucle “para”. Por último, no hay que escribir condición de salida, ya que el bucle “para” se repite hasta que cont vale 100 (inclusive) Ejemplo 2: Escribir un algoritmo que escriba todos los números enteros impares entre 1 y 100, utilizando un bucle “para”:algoritmo contar variables cont es entero inicio para cont desde 1 hasta 100 inc 2 hacer inicio escribir (cont) fin fin Este ejemplo, similar al anterior, sirve para ver el uso de la sintaxis anternativa del bucle “para”. La variable cont se incrementará en 2 unidades en cada repetición del bucle.

6 comentarios:

  1. hola como estan una pregunta como relizo este ejercicio xfa ayudenme....

    Elabore el siguiente algoritmo utilizando las estructuras cíclicas: HAGA DESDE-HASTA, HAGA MIENTRAS, REPITA MIENTRAS. y realice el respectivo diagrama de flujo.

    Escribir un algoritmo que lea 50 números enteros positivos e imprima:
    a) La suma de ellos.
    b) Cuantos números son menores que 60.
    c) Cual es el número mayor.
    d) Cual es el número menor.

    ResponderEliminar
  2. que tan cruel ajjajajajajaja me orine

    ResponderEliminar
  3. Disculpan alguien sabria como se hace esto?

    Una compañía de seguros tiene contratados a n vendedores. Cada uno hace tres ventas a la semana. Su política de pagos es que un vendedor recibe un sueldo base, y un 10% extra por comisiones de sus ventas. El gerente de su compañía desea saber cuanto dinero obtendrá en la semana cada vendedor por concepto de comisiones por las tres ventas realizadas, y cuanto tomando en cuenta su sueldo base y sus comisiones.

    ResponderEliminar
    Respuestas
    1. tienes que hacer un diagrama de flujo con los datos que estan ahi idiota-.-"

      Eliminar