miércoles, 3 de noviembre de 2010

tipos de ciclos

variable SUMA se hace igual a cero y a continuación se incrementa el valor del número cada vez que Por ejemplo: Suponga que se desea sumar una lista de números escritos desde el teclado. El medio conocido hasta ahora es leer los número y añadir sus valores a una variable SUMA que contenga las sucesivas sumas parciales. La uno de ellos se lea. El algoritmo sería el siguiente:
algoritmo suma algoritmo suma
inicio star
SUMA ß 0 SUMA ß 0
leer número read número
SUMA ß SUMA + número SUMA ß SUMA + número
leer número read número
SUMA ß SUMA + número SUMA ß SUMA + número
leer número read número
fin end
En el ejemplo anterior necesitamos saber cuantos números se van a sumar, para ello debemos conocer algún medio para detener el ciclo, daremos a una variable N el número que deseamos. Para contar el número de iteraciones usaremos una variable TOTAL que se inicializa a la cantidad de números que se desea y a continuación se decrementa en uno cada vez que el ciclo se repite (este procedimiento añade una acción mas al cuerpo del bucle: TOTAL ß TOTAL - 1), o bien inicializar la variable TOTAL en 0 o en 1, e ir incrementando en uno a cada iteración hasta llegar al número deseado:
algoritmo suma_número
inicio
{leer número total en variable N}
TOTAL ß N {también podría "leer N"}
SUMA ß 0
{inicio del bucle}
hacer lo siguiente mientras que TOTAL sea mayor que cero
leer número
SUMA ß SUMA + número
SUMA ß TOTAL - 1
{fin del bucle}
escribir ‘la suma de los’, N, ‘números es’. SUMA
fin

inicio

{inicialización de variables}
repetir
acciones S1, S2, ...
acciones Sn, Sn+1...
salir según condición
fin_repetir
fin

Hay tres estructuras de control para especificar la repetición: while (mientras), do-while (hacer_mientras/repetir, repeat) y for (desde).
El algoritmo de suma anterior podría expresarse en pseudocódigo estándar así:
algoritmo SUMA_números
inicio
leer N
SUMA ß 0
repetir
salir si TOTAL <= 0
leer número
SUMA ß SUMA+1
TOTAL ß TOTAL-1
fin_repetir
escribir "la suma es", SUMA
fin


Los tres casos generales de estructuras repetitivas dependen de la situación y modo de la condición. La condición se evalúa tan pronto se encuentra en el algoritmo y su resultado producirá los tres tipos de estructuras citadas.
4.1 Estructura mientras (while)

La estructura repetitiva mientras (en ingles WHILE) es aquella en que el cuerpo del bucle se repite mientras se cumple una determinada condición. La representación gráfica es:

   
Ejemplo:
algoritmo SUMA_números
inicio
{leer número total N}
leer N
TOTAL ß N
SUMA ß 0
mientras N > 0 hacer
leer número
SUMA ß SUMA+número
TOTAL ß TOTAL+1
fin_mientras
escribir "la suma de los ",N,"número es", SUMA
fin

Ejemplo:
Contar los números enteros positivos introducidos por el teclado. Se consideran dos variables enteras NÚMERO y CONTADOR (contará el número de enteros positivos). Se supone que se leen números positivos y se detiene el bucle cuando se lee un número negativo o cero.
inicio
contador ß 0
leer números
mientras número > 0 hacer
contador ß contador + 1
leer número
fin_mientras
escribir "el número de enteros positivos es ", contador
fin

Algunos bucles no exigen fin y otros no encuentran el fin por error en su diseño.
Un bucle que nunca se termina se denomina bucle infinito o sin fin. Los bucles sin fin no intencionados son perjudiciales para la programación y se deben evitar siempre.
Por ejemplo: el siguiente bucle visualiza el interés producido por un capital a las tasa de interés comprendidos en el rango desde 10 a 20%.
leer capital
tasa ß 10
mientras tasa <> 20 hacer
interés ß tasa * 0.01 * capital {tasa*capital/100=tasa*0.01*capital}
escribir "interés producido", interés
tasa ß tasa + 2

Ejemplo:
Desarrolle un algoritmo que calcule el factorial de un número N que responda a la formula:
N! = N * (N-1) * (N-2), . . . , 3 * 2 * 1
Inicio
leer N
Factorial ß 1
I ß I - 1
repetir
Factorial ß Factorial * I
I ß I - 1
Hasta_que I = N - 1
Escribir "el factorial del número", N, "es", Factorial
fin

Ejemplo: Encontrar el entero positivo más pequeño (num) para el cual la suma 1+2+3,...,+num es menor que limite.
1.- introducir limite
2.- inicializar num y suma a 0
3.- repetir las acciones siguientes hasta que suma>limite
  1. incrementar num en 1
  2. añadir num a suma
4.- visualizar num y suma
inicio
leer limite
numß 0
suma ß 0
repetir
num ß num+1
suma ß suma+num
hasta_que suma > limite
escribir num, suma
Ejemplo:
Escribir los numeros 1 a 100
Num ß 1
Repetir
escribir num
numß num+1
hasta_que num = 101

No hay comentarios:

Publicar un comentario