Está en la página 1de 7

INSTITUTO SUPERIOR TECNOLOGICO FRANCISCO DE PAULA GONZALES VIGIL

ESTRUCTURAS REPETITIVAS
QU ES UN BUCLE? Los bucles son procedimientos repetitivos, son estructuras de programacin que permiten realizar varias veces un mismo bloque de instrucciones, hasta que se cumpla una condicin que termina este bucle. A continuacin les presento algunas de las estructuras repetitivas que existen: 1.- FOR..NEXT (Step) Primero, se evalan las expresiones 1 y 2, dando como resultado dos nmeros. La variable del bucle recorrer los valores desde el nmero dado por la expresin 1 hasta el nmero dado por la expresin 2. El bloque de sentencias se ejecutar en cada uno de los valores que tome la variable del bucle.

FOR (Variable) = (Expresin1) TO (Expresin2) STEP (Salto) (Bloque de sentencias) NEXT Supongamos que debemos imprimir los nmeros impares del 1 al 100. En este caso tenemos un valor inicial (1), un valor final (100) y un intervalo (2) que me indicara cuantos pasos debo hacer antes de ejecutar la instruccin. Esto quedara as: For A = 1 To 100 Step 2 Print A Next La instruccin NEXT hace que el control del programa vuelva al FOR ms inmediato. En si la instruccin le asigna valores a la variable A, empezando por el 1, luego el 3 (dio 2 pasos), luego el 5 y as hasta llegar al 100. Cul es el ltimo nmero impreso? Pero hay otras maneras, para ello existe una serie de instrucciones que funcionan de manera similar, veamos otros ejemplos con ms instrucciones para hacer bucles. 2.- WHILE END

Presentado Por: Marco Antonio Maquera CapaquiraPgina 1

INSTITUTO SUPERIOR TECNOLOGICO FRANCISCO DE PAULA GONZALES VIGIL

La instruccin WHILE - WEND ya casi no se usa, porque han creado sustitutos ms verstiles, pero igualmente lo explicamos, su uso sera:

A=1 While A <= 100 Print A A=A+2 Wend El procedimiento se lee de la siguiente forma: Almacenar el nmero 1 en la variable A Mientras A sea Menor o igual a 10 hacer lo siguiente Imprimir en pantalla la variable A Sumarle a la variable A un entero (contador) Volver hasta que Mientras sea falso. WHILE <expresin> <Instrucciones si se cumple> WEND Es decir, MIENTRAS la expresin sea cierta, repite todo lo que haya hasta el WEND. Hay que tener cuidado con esto de que las expresiones evalan el cero como FALSO y cualquier otro valor como VERDADERO. 3.- DO LOOP La instruccin DO LOOP es la nueva versin, ms verstil, que la instruccin antes vista (While End) Do Print "Hola Mundo" Loop Pero la "gracia" de este tipo de bucle es que podemos usar dos nuevas clusulas para evaluar cunto durar el bucle. La primera es WHILE y funciona igual que en WHILE/WEND A=1 Do While A <= 100 Print A A=A+2
Presentado Por: Marco Antonio Maquera CapaquiraPgina 2

INSTITUTO SUPERIOR TECNOLOGICO FRANCISCO DE PAULA GONZALES VIGIL

Loop La ventaja es que WHILE se puede poner tanto despus de DO como a continuacin de LOOP. Si lo usamos como DO WHILE <expresin>... la forma de actuar es igual que WHILE/WEND, es decir, se evala la expresin y slo en caso de que sea cierta, se ejecuta lo que est dentro del bucle, es decir entre DO y LOOP. Pero si evaluamos la expresin en LOOP, se ejecutar todo lo que hay tras el DO, como mnimo una vez y se seguir repitiendo si se cumple la condicin. De esta forma, como he dicho, se ejecutar el contenido del bucle, como mnimo una vez. Veamos un ejemplo: A=1 Do Print A A=A+2 Loop While A <= 100 El problema es que si A, en lugar de valer 1, tiene un valor superior a 100, tambin se ejecutar, al menos, una vez. Pero con DO/LOOP tambin puede usarse UNTIL, en este caso, el bucle se repetir hasta que se cumpla la expresin A=1 Do Until A > 100 Print A A=A+2 Loop Fjate que la expresin ha cambiado de <= (menor o igual) a > (mayor), ya que ahora se evala de esta forma: Hasta que A sea mayor que diez, REPITE todo hasta LOOP. Por supuesto tambin podemos usarlo despus del LOOP: A=1 Do Print A A=A+2 Loop Until A > 100

Presentado Por: Marco Antonio Maquera CapaquiraPgina 3

INSTITUTO SUPERIOR TECNOLOGICO FRANCISCO DE PAULA GONZALES VIGIL

Aqu hago la misma aclaracin que antes, si el valor inicial de A es ms de 100 se ejecutar como mnimo una vez. Realmente para contar de forma secuencial y prcticamente para casi todo tipo de bucle, no es necesario hacer los bucles con DO/LOOP, ya que FOR/NEXT lo hace bastante bien. Sigamos con estos bucles, pero en lugar de contar de menor a mayor, vamos a contar "para atrs", es decir de mayor a menor... quin sabe, lo mismo necesitas hacer un programa que cuente al revs... A = 100 Do While A >= 1 Print A A=A-1 Loop Cuando se muestre el 1, A=A-1 se convertir en A = 0 y la comparacin A >= 1 no se cumplir, por tanto dejar de repetirse el bucle, pero esto tambin se puede hacer con FOR/NEXT: For A = 10 To 1 Print A Next El nico inconveniente es que NO SE REPITE NI UNA VEZ... Por qu? Porque si no se le indica lo contrario, FOR/NEXT siempre cuenta de forma ascendente y cuando ve que A debe ir de 10 hasta 1 y que eso no es ascendente... pasa de ejecutar el bucle. Esto es una cosa a tener en cuenta, FOR siempre evala los valores del bucle que tiene que hacer y si no est entre los valores que debe, no se ejecuta ni una sola vez. En este caso debe empezar por DIEZ y llegar hasta UNO, as que se da cuenta de que ya ha terminado... incluso sin haber empezado... que listo es el FOR! Para que el FOR cuente hacia atrs, necesitamos un nuevo peldao (esto en ingls quedara "clavado"), en la escala evolutiva del FOR/NEXT. Ya sin coas, se necesita la palabra STEP para indicarle que no queremos ir de uno en uno de forma ascendente, en nuestro ejemplo lo usaramos as: For A = 10 To 1 Step -1 Print A Next
Presentado Por: Marco Antonio Maquera CapaquiraPgina 4

INSTITUTO SUPERIOR TECNOLOGICO FRANCISCO DE PAULA GONZALES VIGIL

De esta forma contar desde 10 hasta 1, restando uno en cada repeticin. Pero, qu hacer si queremos usar otros valores? Simplemente ponerlo despus de STEP, por ejemplo: For A = 10 To 1 Step -1 For A = 1 To 10 Step 3, etc., etc. Insisto, todo esto est muy bien, pero en la prctica usaremos otras cosas adems de contar de forma lineal, con incrementos o sin ellos... habr veces que queramos salir de un bucle. Ya lo hemos visto, por ejemplo Exit Sub sala del procedimiento, recuerdas el Exit For? Para salir de los bucles podremos Exit y a continuacin For, Do, etc. Pero NO podremos salir de un bucle WHILE/WEND. Ya veremos ejemplos para estos casos y otros que surgirn ms adelante. 4.- DO UNTIL LOOP Repite la ejecucin de un conjunto de sentencias hasta que una condicin dada sea cierta, es decir a diferencia de While, el bucle se repite mientras la condicin sea falsa y se sale del mismo cuando es verdadera. Tiene dos formas generales:

En esta primera forma si condicin es False se ejecuta el grupo de sentencias y se sigue ejecutando hasta que condicin sea True. La evaluacin de la condicin se realiza antes de ejecutar las sentencias, por tanto el rango posible de veces que se ejecutan estas ser de 0 a n, es decir, puede que el bucle no llegue a ejecutarse nunca.

Presentado Por: Marco Antonio Maquera CapaquiraPgina 5

INSTITUTO SUPERIOR TECNOLOGICO FRANCISCO DE PAULA GONZALES VIGIL

En esta segunda forma, primero se ejecuta una vez el grupo de sentencias y luego se va evaluando condicin, repitindose la ejecucin de las sentencias mientras sea False, por tanto con esta forma el bucle al menos se ejecuta una vez, es decir su rango ser de 1 a n.

Nota. En los bucles For, Until, While es posible establecer una salida del bucle al margen de las dadas en las condiciones para recorrer el mismo, esto se hace con la sentencias Exit For, Exit Do. Tarea de minelly
Presentado Por: Marco Antonio Maquera CapaquiraPgina 6

INSTITUTO SUPERIOR TECNOLOGICO FRANCISCO DE PAULA GONZALES VIGIL

En que consiste el marco teorico

Presentado Por: Marco Antonio Maquera CapaquiraPgina 7

También podría gustarte