Programación en Pascal/Control repetitivo
De Wikilibros, la colección de libros de texto de contenido libre.
Básicamente, existen dos formas de repetir una rutina en Pascal, mediante iteración imperativa (bucles) o mediante recursividad. Veremos esto último más tarde.
[editar] El bucle For..to..do
Prueba el siguiente sencillo ejemplo:
program leccion7; var contar, x : Integer; begin write('Hasta donde tengo que contar: '); readln(contar); For x:=0 to contar do begin write('Voy por el '); writeln(x); end; writeln('Terminado'); end.
Por supuesto, detrás del do, si hubiera habido solo una instrucción, se hubiera podido evitar usar begin...end.
También es posible contar hacia atrás:
For x:=100 downto 0 do begin
write('Voy por el ');
writeln(x);
end;
El bucle For no tiene mayor complicación.
[editar] Bucle condicional repeat..until
Este bucle se repite siempre y cuando la condición propuesta sea verdadera. Es como un if que repite una y otra vez su bloque hasta que sea falso.
Prueba el siguiente ejemplo:
program leccion7; var salida : Integer; begin repeat write('Introduce un valor (0..9): '); readln(salida); until (salida>=0) and (salida<=9); writeln('Por fin un valor correcto. Terminando.'); end.
Prueba a introducir valores fuera del rango 0..9. El programa continuará pidiendo que introduzcas una y otra vez un valor, hasta que se cumpla la condición, momento en el que saldrá del bucle.
[editar] Bucle condicional while..do
Este bucle es muy similar a repeat...until. Solo tiene dos diferencias: hace el chequeo de la condición al principio, y se puede evitar usar un bloque si solo hay una instrucción. Ejemplo:
program leccion7; var contar, x : Integer; begin write('Introduce un número: '); readln(contar); x := 0; while x <> contar do begin writeln(x); x := x + 1; end; end.