LENGUAJES DE PROGRAMACIÓN  
 
 
FreePascal

PASCAL CON FREE PASCAL

 
 

 

4.5. Estructura de control Repeat-until.

 

anterior :: indice :: siguiente

 

Es una estructura de control repetitiva, similar a la estructura While-do, que nos permite ejecutar repetidamente una instrucción o bloque de instrucciones dependiendo de una condición. Esta estructura repite las instrucciones siempre y cuando la condición sea falsa, a diferencia de la estructura While-do, que repite las instrucciones siempre y cuando la condición sea verdadera. Una estructura Repeat-Until verifica la condición después de que el bloque de instrucciones se haya ejecutado una primera vez, pero un bucle While-do verifica la condición antes de que el bloque de instrucciones sea ejecutado. En una estructura Repeat-Until cuando el valor de la condición es alterada para que sea verdadera las instrucciones dejan de ejecutarse. La estructura Repeat-Until hace uso de las palabras reservadas Repeat y Until. La estructura no necesita de las palabras reservadas Begin y End para usar un bloque de instrucciones. El siguiente ejemplo muestra los números del 1 al 10.

 

 
{$codepage UTF8}

VAR n : byte;

BEGIN
 n:=1;
 Repeat
   Writeln(n);
   n+=1
 Until n>=11
END.
 

Código fuente 14: Repeat-Until, Programa que muestra los números del 1 al 10.

 

La estructura Repeat Until, debe terminar en punto y coma, en el ejemplo anterior no se usa el punto y coma, ya que la estructura sería la última instrucción en ejecutarse antes de End. En el ejemplo se puede observar que la condición es n>=11, esta condición nos dará falso siempre y cuando n sea menor y distinto a 11. La estructura Repeat-Until, también se puede encadenar, a continuación el ejemplo:

 

 
{$codepage UTF8}

USES math;

VAR rpta : char;
    n,i : integer;

BEGIN
 rpta:='S';
 Repeat
   Write('Ingrese n : ');
   readln(n);
   i:=1;
   Repeat
     Writeln(i:3,i**2:10,i**3:10);
     i+=1
   Until i>n;
   Write('Desea continuar [S] Si, [N] No : ');
   Readln(rpta)
 Until (rpta<>'s') and (rpta<>'S')
END.
 

Código fuente 15: Uso de encadenar la estructura Repeat-Until.

 

El ejemplo mostrado es muy similar al programa del código fuente 13, usado en el capitulo anterior (Estructura de control While-do) . La diferencia se encuentra en las condiciones usadas con las estructuras While-do. Las condiciones usadas en el ejemplo verifican si rpta es diferente a s minúscula y mayúscula; en la estructura Repeat-until interior, para mostrar la potencia de los números, la condición verifica si la variable i es mayor que n. Ambas condiciones son lo contrario a las condiciones usadas del bucle While-do del código fuente 13 usado en el capítulo anterior. Lo que nos dice que el programa anterior también se puede escribir negando las condiciones usadas por la estructura While-do. Ejemplo:

 

 
{$codepage UTF8}

USES math;

VAR rpta : char;
    n,i : integer;

BEGIN
  rpta:='S';
  Repeat
    Write('Ingrese n : ');readln(n);
    i:=1;
    Repeat
      Writeln(i:3,i**2:10,i**3:10);
      i+=1
    Until Not(i<=n);
    Write('Desea continuar [S] Si, [N] No : ');
    Readln(rpta)
  Until Not((rpta='s') or (rpta='S'))
END.
 

Código fuente 16: Uso de Repeat-Until negando las condiciones usadas en bucle While-do.

 

anterior :: indice :: siguiente

 

 
 

  SUGERENCIAS