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


Google