Definicin ciclos
La estructura ciclo est conformada por instrucciones que permiten al programador instruir la mquina para que ejecute varias veces un grupo de instrucciones segn alguna condicin.
(Tomado de Algoritmia bsica, Roberto Flrez)
Fin(MIENTRAS)
La condicin puede ser una expresin relacional o lgica. Por lo general se evala el valor de una variable que cambia durante cada iteracin. La llamada variable de control.
Definir cul es la instruccin repetitiva Definir la condicin y variable de control que expresa hasta cuando se deben iterar las instrucciones.
Ejemplos de condiciones
Turno <= 10 Dinero > 10000 ^ usuarios > 30 Intereses <= 1.1 i < 20
Variable contadora
Sirve para llevar control de una secuencia de nmeros o contar eventos. Se adiciona por lo regular un nmero constante. i=0 i = i +1 i = i +2
Variable acumuladora
Variables que sirven para acumular cantidades relacionadas con el resultado de una instruccin. Se adiciona por lo regular un valor variable. salario = horas * valor_hora total_salarios = total_salarios + salario
Ejemplo
Elabore un algoritmo que sume los nmeros de 1 hasta n. Siendo n un nmero que ingresa el usuario.
Entrada:
n: nmero para ingresar
Salida:
Suma: total de la suma
Anlisis:
Se tiene una variable de control llamada i, que empieza en 1 y termina cuando llegue al nmero n. Debe aumentar de 1 en 1. Se debe acumular la suma de los nmeros en una variable llamada suma.
Algoritmo suma
Variables:
i, n, suma: entero
INICIO
i=1 suma = 0 ESCRIBA(Ingrese el valor n) LEA(n) MIENTRAS i <= n ---i = 6 y n = 5 suma = suma + i ---suma = 10 + 5 = 15 i=i+1 ---i = 5 + 1 = 6 Fin(MIENTRAS) ESCRIBA(El total de la suma es:, suma)
FIN
Fin(aumento)
Ejemplo 2
Elabore un algoritmo que imprima los n primeros nmeros de la serie fibonacci. 0,1,1,2,3,5,8 n es un nmero positivo ingresado por el usuario.
Entrada:
Primer nmero: f1 = 0 Segundo nmero: f2 = 1 Nmero n de la serie: n Variable de control: i
Salida:
Se muestran los n primeros nmeros de la serie al usuario
Anlisis
Se tiene una variable de control llamada i, que empieza en 1 y termina cuando llegue al nmero n. Debe aumentar de 1 en 1. Si n es igual a 1 se debe mostrar 0 Si n es igual a 2 se debe mostrar 0, 1 Si n es mayor a 2 se debe comenzar a realizar la serie. Fn = f n-1 + f n-2
Algoritmo fibonacci
Variables: INICIO
i, n, f1, f2, aux : enteros
i=3 f2 = 1 f1 = 0 ESCRIBA(Ingrese el valor n) LEA(n) SI n == 1 ESCRIBA(f1) Fin(SI) SI n == 2 ESCRIBA(f1,f2) Fin(SI)
SI n > 2 ESCRIBA(0,1)
MIENTRAS i <= n aux = f2 f2 = f2 + f1 f1 = aux ESCRIBA (f2) i=i+1 Fin(MIENTRAS) -----i = 3 y n = 5 --aux = 1 --f2 = 1 + 0 = 1 --f1 = 1
Fin(mayor)
Fin(SI) FIN
Ejemplo 3
Anlisis
Entrada: nmero n > 1 Salida: se imprimen los nmeros primos Un nmero primo es un nmero que solo tiene 2 divisores: 1 y el mismo
Algoritmo soy_primo Variable: i, n, control, residuo:entero INICIO i=1 control = 0 ESCRIBA(Ingrese el nmero n) LEA(n) MIENTRAS i <= n residuo = n%i SI residuo <> 0 control = control + 1 Fin(SI) Fin(MIENTRAS) SI (control > 2) ESCRIBA(el nmero no es primo) DE_LO_CONTRARIO ESCRIBA(el nmero es primo) Fin(SI) FIN Fin(soy_primo)