Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Fecha:
20/03/2012
NOMBRES AUTORES
CARGO
FIRMA
FECHA 20/03/12
Fecha:
20/03/2012
Estructuras repetitivas Este tipo de estructuras marcan como orden de ejecucin la reiteracin de una serie de acciones basndose en un bucle. Un BUCLE (loop, en ingls) es un trozo de algoritmo cuyas instrucciones son repetidas un cierto nmero de veces, mientras se cumple una cierta condicin que ha de ser claramente especificada. La condicin podr ser verdadera o falsa, y se comprobar en cada paso o iteracin del bucle. Bsicamente, existen tres tipos de estructuras repetitivas; los bucles "mientras..." (o "while"), los bucles "repetir... mientras que" (o "do... while") y los bucles "desde" (o "bucles for"). hay que hacer notar que todo bucle consta de tres partes bsicas, a saber: Decisin: donde se evala la condicin y, en caso de ser cierta, se ejecuta el... Cuerpo del bucle: son las instrucciones que queremos ejecutar repetidamente un cierto nmero de veces. Salida del bucle: es la condicin que dice cundo saldremos de hacer repeticiones ("mientras protestes, seguirs fregando platos", en cuanto dejas de protestar, se acab fregar ms platos). Una forma de controlar un bucle es mediante una variable llamada CONTADOR, cuyo valor se incrementa o decremento en una cantidad constante en cada repeticin que se produzca. Tambin, en los bucles suele haber otro tipo de variables llamadas ACUMULADOR, cuya misin es almacenar una cantidad variable resultante de operaciones sucesivas y repetidas. Es como un contador, con la diferencia que el incremento/decremento es variable. Estructura hasta que Aqu, lo que se desea es que un bucle se ejecute AL MENOS UNA VEZ antes de comprobar la condicin de repeticin. La estructura del haga... hasta que, genricamente, es esta:
Fecha:
20/03/2012
Vamos a ver cmo resolver nuestra situacin REAL con este tipo de estructura: Inicio Entero Contador Contador <- 1 haga escribir 'For the horde' Contador <- Contador+1 Hasta que(Contador<=300.000.000) Fin
Empezamos con la asignacin del valor 1 a la variable Contador. Llegamos a repetir, quien NO NOS EXIGE, para su entrada, verificar condicin alguna. Mostramos por pantalla la frase 'For the horde', y sumamos 1 a la variable Contador, con lo que ahora pasa a valer 2. Y AHORA es cuando llegamos a la condicin: es Contador<=300.000.000? Yo dira que s, as que ale, de vuelta a repetir: mostramos por pantalla nuestra frase, sumamos 1 a contador... [... varios minutos despus...] Y ya, por fin, Contador alcanza el valor 300.000.001, con lo que la comparacin dice "MENTIRA!", y se acab repetir esa tarea. Andrey Villamil Buitrago 259128
Fecha:
20/03/2012
Vamos a remarcar una diferencia IMPORTANTE entre esta estructura y el mientra. Si al empezar nuestro algoritmo, en vez de hacer Contador <- 1 hubisemos hecho Contador <- 1.000.000.000.000.000.000 de nuevo tenemos posibilidades de salirnos de rango, pero va, vamos a poner que esto que no fuera as; la palabra haga no nos est pidiendo nada, as que ejecutamos una vez el cuerpo del bucle. Se nos muestra la frase, se incrementa el contador, y llegamos al mientras. Como la condicin es falsa, no volvemos a ejecutar el bucle. Cul es la diferencia? Pues que con la estructura "mientras", el bucle se ejecutaba CERO veces, sin embargo, con la estructura "hasta que" el bucle se ejecuta UNA vez. Esta sutil diferencia es la que hace que unas veces se elija al primero y otras al segundo. Ejemplos: Visualizar los nmeros del 0 al 9. Inicio Entero digito digito=0 haga escribir digito digito= digito+1 hasta que (digito<=9) fin
Fecha:
20/03/2012
Ejemplo en c++ Este programa se cicla mientras pide un carcter y se sale hasta que le dan una Y o una N. #include <stdio.h> /* Aqui esta la definicion del printf */ main() { char respuesta; /* Definimos una variable tipo caracter */ clrscr(); printf("Este programa se va a quedar ciclado mientras no le des una Y o una N \n "); do { printf("Teclea una Y o una N \n"); scanf("%c", respuesta); } while( (respuesta != Y) && (respuesta != N) ) /* pregunta al ultimo */ { } printf("Ya saliste del ciclo..."); getch(); return 0; }
Fecha:
20/03/2012