Está en la página 1de 7

Los ciclos, o bucles, es un concepto que escapa y por tanto es independiente del lenguaje.

Significar lo mismo en Pascal como en Java, C#, o el que gustes.

Conceptualmente los ciclos son instrucciones que se ejecutarn una cantidad de veces de acuerdo
a cierta evaluacin de una condicin.
Hay tres tipos de ciclos:
1. Ciclo FOR-TO, o "Desde-hasta": Se conoce la cantidad de veces que se realizar las instrucciones.
Por tanto las instrucciones que forman parte del ciclo se ejecutarn n veces, siendo n la cantidad
de iteraciones. Su nomeclatura, construccin, o sintaxis en Pascal es como sigue:

FOR <variable> := <valor_inicial> TO | DOWNTO <valor_final> DO


<grupo_sentencias>;

<grupo_sentencia> :: <sentencia>; | BEGIN; <sentencias>; END;

Como puede apreciarse puede hacerse incrementar (TO) o decrementar (DONWTO). La barra
horizontal | significa O, es decir uno lo otro. Para distinguir las variables o valores de las palabras
emplee los signos < y >.
grupo_sentencia puede ser una sentencia o un grupo de sentencias. Si es slo una instruccin a
ejecutar no es necesario el uso de begin-end pero son dos o ms es necesario encerrar las
instrucciones entre BEGIN y END.
Un ejemplo de uso es como sigue:

FOR i := 1 to 10 do
writeln(i * 2);

2. Ciclo WHILE-DO o "Mientras-hacer": Se desconoce la cantidad de veces que se van a ejecutar las
sentencias. Se hace uso de una condicin de entrada para ejecutar el ciclo. Esto quiere decir, que
MIENTRAS se cumpla la condicin o condiciones establecidas se ejecutarn una y otra vez las
sentencias. Eso quiere decir que mientras el resultado de las condiciones sea VERDADERO (TRUE)
el algoritmo iterar. El ciclo se detiene cuando el resultado sea FALSO (FALSE). Entre las sentencias
debe haber alguna que haga cambiar la condicin. ANTES de cada iteracin se evalan las
condiciones.
Su sintaxis:

WHILE <grupo_condicion> DO
<grupo_sentencias>;

Grupo_condicion puede ser una o muchas condiciones "unidas" por algunos operadores lgicos (
<, > , = , <=, >=, AND, OR, NOT). grupo_sentencias tiene el mismo significado anteriormente
descripto.
Ejemplo:
i := 1;
WHILE (i <= 10) DO
begin
writeln(i * 2);
i := i + 1;
end;

3. Ciclo REPEAT-UNTIL o "Repetir-Hasta": A diferencia del WHILE, el repetir hasta, implica que la
condicin se evala al final de las sentencias, y la condicin de salida para el ciclo debe ser
VERDADERA. Mientras la condicin sea Falsa se continuar iterando. Por tanto, el REPEAT-UNTIL
se ejecutar al menos una vez; en el WHILE no se puede garantizar esto. La sintaxis es:

REPEAT
<grupo_sentencias>
UNTIL <grupo_condicion>

Cabe destacar que en el caso del REPEAT no es necesario incluir BEGIN Y END en el caso de dos o
ms sentencias.

La construccin equivalente del ejemplo anterior (WHILE) en forma REPEAT es como sigue:

i := 1;
REPEAT
writeln(i * 2);
i := i + 1;
UNTIL (i > 10)

Casi todos los ciclos WHILE tienen su forma REPEAT-UNTIL, pero lo importante es saber cuando es
ms conveniente uno u otro.

Ejemplos

CICLO FOR PASCAL


Instrucciones para ciclos resuelven el problema de repetir todo el programa o cierta parte
del programa mas de una vez.

Este ciclo es uno de los mas usados para repetir una secuencia de instrucciones, sobre todo
cuando se conoce la cantidad exacta de veces que se quiere que se ejecute una instruccion
simple o compuesta.

Su formato general es:

for VARCONTROL := ValorInicial to ValorFinal do

begin instrucciones; end;

EJEMPLO

Codigo prog4.pas

program prog4;

uses crt;

var

x:integer;

begin

clrscr;

for x:= 1 to 5 do

begin

gotoxy(10,4+x);write(x,' tecnologico');

end;

readln;

end.

corrida:
WHILE

CICLO WHILE PROGRAMACION PASCAL

En este ciclo el cuerpo de instrucciones se ejecuta mientras una condicion permanezca


como verdadera en el momento en que la condicion se convierte en falsa el ciclo termina.

while BooleanExpression do

statement;

Su formato general es :

cargar o inicializar variable de condicion;

while condicion do

begin

grupo cierto de instrucciones;

instruccion(es) para salir del ciclo;

end;

Un error muy comun con el while, es poner un punto y coma(;) despues de la (condicion)
ejemplo while condicion do ; -esto es y causa un error.

Prog5.pas

program prog5;
uses crt;

var

x:integer;

begin

clrscr;

x:=1;

while x <= 5 do

begin

gotoxy(10,4+x);write(x,' pato');

x:=x+1;

end;

readln;

end.

Corrida:

While puede llevar dos condiciones en este caso inicializar 2 variables de condicion y
cuidar que existan 2 de rompimiento o terminacion de ciclo.

El grupo cierto de instrucciones puede ser una sola instruccion o todo un grupo de
instrucciones.

La condicion puede ser simple o compuesta.

Los casos generales de for tambien se aplican a while.


A este ciclo tambien se le conoce tambien como ciclo de condicion de entrada o prueba por
arriba porque este ciclo evalua primero la condicion y posteriormente ejecuta las
instrucciones.

REPEAT - UNTIL

CICLO REPEAT UNTIL PASCAL

Su diferencia basica con el ciclo while es que la prueba de condicion es hecha al finalizar el
ciclo, es decir las instrucciones se ejecutan cuando menos una vez porque primero ejecuta
las instrucciones y al final evalua la condicion;

Tambien se le conoce por esta razon como ciclo de condicion de salida.

Su formato general es :

cargar o inicializar variable de condicion;

repeat

begin

instrucciones;

end

until condicion;

OBSERVAR QUE NO LLEVA PUNTO Y COMA (;) ANTES DEL UNTIL

Prog6.PAS

program prog6;

uses crt;

var

x:integer;

begin

clrscr;

x:=1;
REPEAT

BEGIN

gotoxy(10,4+x);

write(x,' CONEJITO BLANCO HIMALAYA');

x:=x+1;

END

UNTIL x = 5;

readln;

end.

Corrida prog

Observar que nada mas se ve hasta x=4, pero en realidad la x llego hasta el 5, cuando
termino lo que esta desplegandose en pantalla la x se incremento a 5 y luego se probo la
condicion y como era CIERTA o VERDADERA entonces acabo el ciclo.

Lo del conejito blanco del himalaya esta explicacado aqui TUTORIAL HTML

Otra diferencia basica con el ciclo while es que, aunque la condicion sea falsa desde un
principio el cuerpo de instrucciones se ejecutara por lo menos una vez.

También podría gustarte