While: (MIENTRAS – HAGA)
Este ejecuta una serie de instrucciones un número no determinado de veces hasta que se cumpla con una condición establecida , aunque tambien se puede hacer que trabaje de manera similar al ciclo FOR.
La instruccion while estudia primero la condicion y, en caso de que se cumpla, procedera a ejecutar la(s) instruccion(es) deseada(s).
Su estructura es:
while (condicion) do
instruccion;
En caso de que haya mas de una instruccion a realizar, escribiremos:
while (condicion) do
begin
instrucciones;
end;
EJEMPLO:
Program WHILE_a_FOR; Var
I: Integer; Begin
I := 1;
WHILE I <= 4 Do
Begin WriteLn (`Número ', I);I := I + 1;End;
End.
PROGRAM Ciclo_WHILE;
VAR Numero : Integer;
BEGIN
Numero := 1;
WHILE Numero <= 50 DO
BEGIN WriteLn (Numero);
Numero := Numero +1;
END;
END.
FOR:(Para – Haga)
Este ciclo ejecuta una serie de instrucciones incrementando o decrementando una variable hasta un tope determinado. El ciclo for realiza la(s) instruccion(es) deseada(s) durante un numero de vueltas predeterminadas. Este numero de vueltas no podra ser modificado NUNCA dentro del bucle,
por lo que debemos tener cuidado en no tocar la variable indice (la que controla el numero de vueltas).
Un ejemplo:
program pruebaFor;
CONST
N = 10; { numero de vueltas que dara el bucle}
VAR
i: integer; { variable que contara el numero de vueltas que llevamos}
BEGIN
for i:=1 to N do
writeln(i);
END.
Y se mostraria por pantalla:
1
2
3
4
5
6
7
8
9
10
En caso de que tengamos que ejecutar mas instrucciones dentro del bucle, escribiriamos:
for (contador) do
BEGIN
instrucciones;
END;
Un ejemplo de esto:
program pruebaForDos;
CONST
N=10;
VAR
i,j : integer; {Una nueva manera de declarar las variables. En caso de tener varias del mismo tipo,podemos separarlas por ","}
BEGIN
j:=0;
for i:=1 to N do
begin
writeln(i);
j:=j+3; {Con esta instruccion, a la variable j la sumamos durante N veces 3}
end;
write('j = ',j); {Cuando vamos a escribir varias cosas seguidas, podemos enviar la instruccion de esta manera}
END.
Y en pantalla se imprimiria:
1
2
3
4
5
6
7
8
9
10
j = 30
En los ciclos For, podemos seguir dos tipos de direccion. Ascendente (de 1 hasta N) o descendente (de N hasta 1). Esto lo deberemos indicar en el contador del siguiente modo (usaremos el ejemplo anterior):
Ascendente
for i:=1 TO N do
...
Descendente
for i:=N DOWNTO 1 do
...
EJEMPLO:
Program Sin_Ciclo;
Begin
WriteLn (`Número = 1');
WriteLn (`Número = 2');
WriteLn (`Número = 3');
WriteLn (`Número = 4');
End.
Program Con_Ciclo;
Var
I: Integer;
Begin
For I := 1 To 4 Do
WriteLn (`Número = ', I);
End.
Program Ciclo_1_a_4;
Var
I: Integer;
Begin
For I := 1 To 4 Do
WriteLn (`Número = ', I);
End.
Program Ciclo_4_a_1;
Var
I: Integer;
Begin
For I := 4 DownTo 1 Do
WriteLn (`Número = ', I);
End.
REPEAT:EL CICLO "REPITA" (Como cariñosamente se le llama en la jerga de los programadores) actua de manera similar al ciclo WHILE – DO, con la pequeña diferencia de que en este se ejecutan las instrucciones y despues se evalua la condición. El bucle Repeat realiza una serie de instrucciones y, una vez hechas, comprueba una condicion. En caso de cumplirse, no volvera a repetir dichas instrucciones, y en caso contrario las ejecutara. Su estructura es:
repeat
instruccion(es);
until (condicion);
- Aclaraciones
Observese que los 3 ciclos, bien implementados, son equivalentes entre si.
Hay que tener especial cuidado en el ciclo que se desea usar: ·
Si se desea hacer un numero de vueltas FIJO, podemos usar cualquiera de los 3. ·
Si las vueltas dependen de una condicion que se modifica dentro del bucle, solo podemos usar los ciclos WHILE y REPEAT.
· Si queremos comprobar una condicion antes de realizar ciertas instrucciones, debemos usar el WHILE.
EJEMPLO:
Program REPEAT_a_FOR; Var
I: Integer; Begin
I := 1; REPEAT WriteLn (`Número ', I);
I := I + 1;
UNTIL I = 5;
End.
PROGRAM Ciclo_RepeatUntil;
VAR
Numero : Integer;
BEGIN
Numero := 1;
REPEAT
WriteLn (Numero);
Numero := Numero + 1;
UNTIL Numero = 50;
END.
program EJE13101;
uses Crt;
var Contador : Integer;
begin
ClrScr;
GotoXY( 4, 2 );
Contador := 1; { Inicializacion del contador }
repeat
Write( Contador, ' ' ); { Salida }
Contador := Contador + 1; { Incremento }
until Contador > 10; { Condicion }
end.
while (condicion) do
instruccion;
while (condicion) do
begin
instrucciones;
end;
EJEMPLO:
Program WHILE_a_FOR; Var
I: Integer; Begin
I := 1;
WHILE I <= 4 Do
Begin WriteLn (`Número ', I);I := I + 1;End;
End.
PROGRAM Ciclo_WHILE;
VAR Numero : Integer;
BEGIN
Numero := 1;
WHILE Numero <= 50 DO
BEGIN WriteLn (Numero);
Numero := Numero +1;
END;
END.
FOR:(Para – Haga)
Este ciclo ejecuta una serie de instrucciones incrementando o decrementando una variable hasta un tope determinado. El ciclo for realiza la(s) instruccion(es) deseada(s) durante un numero de vueltas predeterminadas. Este numero de vueltas no podra ser modificado NUNCA dentro del bucle, por lo que debemos tener cuidado en no tocar la variable indice (la que controla el numero de vueltas). Un ejemplo:Y se mostraria por pantalla:program pruebaFor; CONST N = 10; { numero de vueltas que dara el bucle} VAR i: integer; { variable que contara el numero de vueltas que llevamos} BEGIN for i:=1 to N do writeln(i); END.En caso de que tengamos que ejecutar mas instrucciones dentro del bucle, escribiriamos:1 2 3 4 5 6 7 8 9 10Un ejemplo de esto:for (contador) do BEGIN instrucciones; END;Y en pantalla se imprimiria:program pruebaForDos; CONST N=10; VAR i,j : integer; {Una nueva manera de declarar las variables. En caso de tener varias del mismo tipo,podemos separarlas por ","} BEGIN j:=0; for i:=1 to N do begin writeln(i); j:=j+3; {Con esta instruccion, a la variable j la sumamos durante N veces 3} end; write('j = ',j); {Cuando vamos a escribir varias cosas seguidas, podemos enviar la instruccion de esta manera} END.En los ciclos For, podemos seguir dos tipos de direccion. Ascendente (de 1 hasta N) o descendente (de N hasta 1). Esto lo deberemos indicar en el contador del siguiente modo (usaremos el ejemplo anterior): Ascendente1 2 3 4 5 6 7 8 9 10 j = 30Descendentefor i:=1 TO N do ...for i:=N DOWNTO 1 do ...EJEMPLO:Program Sin_Ciclo; Begin WriteLn (`Número = 1'); WriteLn (`Número = 2'); WriteLn (`Número = 3'); WriteLn (`Número = 4'); End. Program Con_Ciclo; Var I: Integer; Begin For I := 1 To 4 Do WriteLn (`Número = ', I); End. Program Ciclo_1_a_4; Var I: Integer; Begin For I := 1 To 4 Do WriteLn (`Número = ', I); End. Program Ciclo_4_a_1; Var I: Integer; Begin For I := 4 DownTo 1 Do WriteLn (`Número = ', I); End.REPEAT:EL CICLO "REPITA" (Como cariñosamente se le llama en la jerga de los programadores) actua de manera similar al ciclo WHILE – DO,con la pequeña diferencia de que en este se ejecutan las instrucciones y despues se evalua la condición.El bucle Repeat realiza una serie de instrucciones y, una vez hechas, comprueba una condicion. En caso de cumplirse, no volvera a repetir dichas instrucciones, y en caso contrario las ejecutara. Su estructura es:- Aclaraciones Observese que los 3 ciclos, bien implementados, son equivalentes entre si. Hay que tener especial cuidado en el ciclo que se desea usar: · Si se desea hacer un numero de vueltas FIJO, podemos usar cualquiera de los 3. · Si las vueltas dependen de una condicion que se modifica dentro del bucle, solo podemos usar los ciclos WHILE y REPEAT. · Si queremos comprobar una condicion antes de realizar ciertas instrucciones, debemos usar el WHILE.repeat instruccion(es); until (condicion);EJEMPLO:Program REPEAT_a_FOR;Var I: Integer;Begin I := 1;REPEAT WriteLn (`Número ', I); I := I + 1; UNTIL I = 5;End.
| PROGRAM Ciclo_RepeatUntil; VAR Numero : Integer; BEGIN Numero := 1; REPEAT WriteLn (Numero); Numero := Numero + 1; UNTIL Numero = 50; END. program EJE13101; uses Crt; var Contador : Integer; begin ClrScr; GotoXY( 4, 2 ); Contador := 1; { Inicializacion del contador } repeat Write( Contador, ' ' ); { Salida } Contador := Contador + 1; { Incremento } until Contador > 10; { Condicion } end. |
vs pensa un numerOo :D
ResponderEliminarsumale 5 restale 2 sumalee 9 restale el numero qe pensastee ii te da 11 ;)
ResponderEliminarpensa otro sumalee 3 restale 2 sumalee 6 restale el numerO qe pensastee te keda 7 vaa
ResponderEliminar