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 previas
2. Lazo o bucle
3. Instrucciones finales o resto del proceso
4. Salida de resultado.
Las estructuras de repetición básicas que son:
Estructura Desde/Para
Estructura Mientras
Estructura Hacer
Estructura Mientras/Para:
Se llama Mientras a la estructura algorítmica que se ejecuta mientras la condición evaluada resulte verdadera. Se evalúa la expresión booleana y, si es cierta, se ejecuta la instrucción especificada, llamada el cuerpo del bucle. Entonces se vuelve a evaluar la expresión booleana, y si todavía es cierta se ejecuta de nuevo el cuerpo. Este proceso de evaluación de la expresión booleana y ejecución del cuerpo se repite mientras la expresión sea cierta.
Cuando se hace falsa, finaliza la repetición. La estructura While y la estructura Do, se conocen como Iterativas. Se usan cuando no se conoce con anticipación el número de veces que se ejecutará la acción.
La diferencia entre ambas es que la condición se sitúa al principio (Mientras) o al final (Hacer) de la secuencia de instrucciones. Entonces, en el primero, el bucle continúa mientras la condición es verdadera (la cual se comprueba antes de ejecutar la acción) y en el segundo, el bucle continúa hasta que la condición se hace verdadera (la condición se comprueba después de ejecutar la acción, es decir, se ejecutará al menos una vez).
Las estructuras Mientras y Para/Desde suelen en ciertos casos, no realizar ninguna iteración en el bucle, mientras que Hacer ejecutará el bucle al menos una vez.
Observa en el flujograma, que se necesita una variable contadora (un índice), para llevar la cuenta de las veces que entramos al cuerpo del ciclo. También es importante notar que esta variable se inicializa antes de entrar al cuerpo del ciclo y dentro del cuerpo se incrementa en una cantidad constante, por lo general en uno.
Esta variable a la vez, nos sirve para compararla con el valor dado en la condición, cuando se cumple la condición, se sale del ciclo.
Representación pseudocodificada:
Mientras
--> Acciones
Fin_mientras
EJEMPLO:
Calcular la suma de los cuadrados de los primeros 100 números enteros y escribir el resultado.
CENTINELAS Y BANDERAS.
Cuando no se conoce a priori el número de iteraciones que se van a realizar, el ciclo puede ser controlado por centinelas.
CENTINELAS.
En un ciclo While controlado por tarea, la condición de While especifica que el cuerpo del ciclo debe continuar ejecutándose mientras la tarea no haya sido completada.
En un ciclo controlado por centinela el usuario puede suspender la introducción de datos cuando lo desee, introduciendo una señal adecuada llamada centinela. Un ciclo Hacer controlado por centinela es cuando el usuario digita una letra para salir como por ejemplo S o N para indicar si desea continuar o no. El bucle debe repetirse hasta que la respuesta del usuario sea "n" o "N".
Cuando una decisión toma los valores de -1 o algún posible valor que no esté dentro del rango válido en un momento determinado, se le denomina centinela y su función primordial es detener el proceso de entrada de datos en una corrida de programa.
Por ejemplo, si se tienen las calificaciones de un test (comprendida entre 0 y 100); un valor centinela en esta lista puede ser -999, ya que nunca será una calificación válida y cuando aparezca este valor se terminará de ejecutar el bucle.
Si la lista de datos son números positivos, un valor centinela puede ser un número negativo. Los centinelas solamente pueden usarse con las estructuras Mientras y Hacer, no con estructuras Desde/Para.
Ejemplo:
Suponga que debemos obtener la suma de los gastos que hicimos en nuestro último viaje, pero no sabemos exactamente cuántos fueron.
Algoritmo: Gastos_Viaje.
Inicio
sumgas: Entero
gasto: Decimal
Leer (gasto)
Mientras gasto <> -1 hacer
sumgas = sumgas + gasto
Leer (gasto)
Fin_mientras
Escribir (sumgas)
Fin
BANDERAS.
Conocidas también como interruptores, switch, flags o conmutadores, son variables que pueden tomar solamente dos valores durante la ejecución del programa, los cuales pueden ser 0 ó 1, o bien los valores booleanos True o False. Se les suele llamar interruptores porque cuando toman los valores 0 ó 1 están simulando un interruptor abierto/cerrado o encendido/apagado.
Ejemplo 1:
Leer un número entero N y calcular el resultado de la siguiente serie: 1 - 1/2+ 1/3 - 1/4 +.... +/- 1/N.
Algoritmo: Series
Inicio
Serie: Decimal
I,N: Entero
band:Caracter
I=1
Leer (N)
band = "T"
Mientras I <= N hacer
Si band = "T" entonces
serie = serie + (1/I)
band = "F"
Sino
serie = serie - (1/I)
band = "T"
Fin_si
I = I + 1
Fin_mientras
Escribir (serie)
Fin
Ejemplo 2.
Obtener suma de los términos de la serie: 2, 5, 7, 10, 12, 15, 17, .... 1800.
Sumser de tipo entero, es el acumulador de términos de la serie band de tipo carácter, es variable auxiliar que indica si al siguiente término de la serie hay que sumarle 3 ó 2.
Algoritmo: Suma_serie
Inicio
i,sumser:Entero
band:Caracter
i=2
sumser = 0
band = "T"
Mientras (i <= 1800) hacer
sumser = sumser + i
Escribir (i)
Si band = "T" entonces
i = i + 3
band ="F"
Sino
i = i + 2
band ="T"
Fin_si
Fin_mientras
Escribir (sumser)
Fin
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 previas
2. Lazo o bucle
3. Instrucciones finales o resto del proceso
4. Salida de resultado.
Las estructuras de repetición básicas que son:
Estructura Desde/Para
Estructura Mientras
Estructura Hacer
Estructura Mientras/Para:
Se llama Mientras a la estructura algorítmica que se ejecuta mientras la condición evaluada resulte verdadera. Se evalúa la expresión booleana y, si es cierta, se ejecuta la instrucción especificada, llamada el cuerpo del bucle. Entonces se vuelve a evaluar la expresión booleana, y si todavía es cierta se ejecuta de nuevo el cuerpo. Este proceso de evaluación de la expresión booleana y ejecución del cuerpo se repite mientras la expresión sea cierta.
Cuando se hace falsa, finaliza la repetición. La estructura While y la estructura Do, se conocen como Iterativas. Se usan cuando no se conoce con anticipación el número de veces que se ejecutará la acción.
La diferencia entre ambas es que la condición se sitúa al principio (Mientras) o al final (Hacer) de la secuencia de instrucciones. Entonces, en el primero, el bucle continúa mientras la condición es verdadera (la cual se comprueba antes de ejecutar la acción) y en el segundo, el bucle continúa hasta que la condición se hace verdadera (la condición se comprueba después de ejecutar la acción, es decir, se ejecutará al menos una vez).
Las estructuras Mientras y Para/Desde suelen en ciertos casos, no realizar ninguna iteración en el bucle, mientras que Hacer ejecutará el bucle al menos una vez.
Observa en el flujograma, que se necesita una variable contadora (un índice), para llevar la cuenta de las veces que entramos al cuerpo del ciclo. También es importante notar que esta variable se inicializa antes de entrar al cuerpo del ciclo y dentro del cuerpo se incrementa en una cantidad constante, por lo general en uno.
Esta variable a la vez, nos sirve para compararla con el valor dado en la condición, cuando se cumple la condición, se sale del ciclo.
Representación pseudocodificada:
Mientras
--> Acciones
Fin_mientras
EJEMPLO:
Calcular la suma de los cuadrados de los primeros 100 números enteros y escribir el resultado.
CENTINELAS Y BANDERAS.
Cuando no se conoce a priori el número de iteraciones que se van a realizar, el ciclo puede ser controlado por centinelas.
CENTINELAS.
En un ciclo While controlado por tarea, la condición de While especifica que el cuerpo del ciclo debe continuar ejecutándose mientras la tarea no haya sido completada.
En un ciclo controlado por centinela el usuario puede suspender la introducción de datos cuando lo desee, introduciendo una señal adecuada llamada centinela. Un ciclo Hacer controlado por centinela es cuando el usuario digita una letra para salir como por ejemplo S o N para indicar si desea continuar o no. El bucle debe repetirse hasta que la respuesta del usuario sea "n" o "N".
Cuando una decisión toma los valores de -1 o algún posible valor que no esté dentro del rango válido en un momento determinado, se le denomina centinela y su función primordial es detener el proceso de entrada de datos en una corrida de programa.
Por ejemplo, si se tienen las calificaciones de un test (comprendida entre 0 y 100); un valor centinela en esta lista puede ser -999, ya que nunca será una calificación válida y cuando aparezca este valor se terminará de ejecutar el bucle.
Si la lista de datos son números positivos, un valor centinela puede ser un número negativo. Los centinelas solamente pueden usarse con las estructuras Mientras y Hacer, no con estructuras Desde/Para.
Ejemplo:
Suponga que debemos obtener la suma de los gastos que hicimos en nuestro último viaje, pero no sabemos exactamente cuántos fueron.
Algoritmo: Gastos_Viaje.
Inicio
sumgas: Entero
gasto: Decimal
Leer (gasto)
Mientras gasto <> -1 hacer
sumgas = sumgas + gasto
Leer (gasto)
Fin_mientras
Escribir (sumgas)
Fin
BANDERAS.
Conocidas también como interruptores, switch, flags o conmutadores, son variables que pueden tomar solamente dos valores durante la ejecución del programa, los cuales pueden ser 0 ó 1, o bien los valores booleanos True o False. Se les suele llamar interruptores porque cuando toman los valores 0 ó 1 están simulando un interruptor abierto/cerrado o encendido/apagado.
Ejemplo 1:
Leer un número entero N y calcular el resultado de la siguiente serie: 1 - 1/2+ 1/3 - 1/4 +.... +/- 1/N.
Algoritmo: Series
Inicio
Serie: Decimal
I,N: Entero
band:Caracter
I=1
Leer (N)
band = "T"
Mientras I <= N hacer
Si band = "T" entonces
serie = serie + (1/I)
band = "F"
Sino
serie = serie - (1/I)
band = "T"
Fin_si
I = I + 1
Fin_mientras
Escribir (serie)
Fin
Ejemplo 2.
Obtener suma de los términos de la serie: 2, 5, 7, 10, 12, 15, 17, .... 1800.
Sumser de tipo entero, es el acumulador de términos de la serie band de tipo carácter, es variable auxiliar que indica si al siguiente término de la serie hay que sumarle 3 ó 2.
Algoritmo: Suma_serie
Inicio
i,sumser:Entero
band:Caracter
i=2
sumser = 0
band = "T"
Mientras (i <= 1800) hacer
sumser = sumser + i
Escribir (i)
Si band = "T" entonces
i = i + 3
band ="F"
Sino
i = i + 2
band ="T"
Fin_si
Fin_mientras
Escribir (sumser)
Fin
No hay comentarios:
Publicar un comentario