Estructura de repetición: la instrucción WHILE La estructura de repetición o bucle hace posible la ejecución repetida de una o más instrucciones.
Pascal proporciona tres instrucciones que implementan la estructura de repetición: WHILE, FOR y REPEAT-UNTIL.
La instrucción WHILE se usa para implementar una estructura de repetición (bucle while) en la que la repetición se controla mediante una expresión booleana y continúa ejecutándose mientras esta expresión permanece cierta, finalizando cuando se hace falsa.
La ejecución repetida del cuerpo del bucle debe provocar en algún momento que el valor de la expresión booleana se haga falso; de lo contrario, la repetición continuara ejecutándose infinitamente. Instrucción WHILE
Sintaxis: WHILE expresión-booleana DO instrucción
donde:
WHILE y DO son palabras reservadas; instrucción es una instrucción Pascal. Objetivo: Se evalúa la expresión booleana y, si es cierta, se ejecuta la instrucción especificada, llamada el cuerpo del bucle. Entonces se vuelve a evaluar la expresión booleana y, si todavía es cierta, se ejecuta de nuevo el cuerpo. Este proceso se repite mientras la expresión booleana sea cierta. Cuando se hace falsa, finaliza la repetición.
Programa Escribir un programa que, para un valor Limite dado, devuelva el Numero positivo más pequeño para el que la suma
es mayor que Limite. El programa también deberá devolver el valor de dicha suma.
PROGRAM Calcular Sumatorio( input, output ); {*********************************************************************
Entrada (teclado): Un entero: Limite . Objetivo: Encontrar el menor entero positivo para el que
la suma
1 + 2 + … + Numero
es mayor que el valor de Limite.
Salida (pantalla): Indicaciones al usuario, Numero, y el valor de
esta Suma.
- }
VAR
Numero, {entero positivo annadido a la suma}
Suma, {1 + 2 + … + Numero}
Limite : integer; {limite para la suma}
BEGIN
write( ‘Introduzca un valor al que exceda 1 + 2 + … + ?: ‘ );
readln( Limite );
Numero := 0;
Suma := 0;
WHILE Suma <= Limite DO
BEGIN
Numero := Numero + 1;
Suma := Suma + Numero
END {WHILE};
writeln( ‘1 + … + ‘, Numero:1, ‘ = ‘, Suma:1, ‘ > ‘, Limite:1 )
END.
Ejemplo de ejecución:
Introduzca un valor al que exceda 1 + 2 + … + ?: 2 1 + … + 2 = 3 > 2
Introduzca un valor al que exceda 1 + 2 + … + ?: 1000 1 + … + 45 = 1035 > 1000
Introduzca un valor al que exceda 1 + 2 + … + ?: 10000 1 + … + 141 = 10011 > 10000