Cibernetica

Páginas: 6 (1344 palabras) Publicado: 24 de enero de 2013
LECCIÓN 10: Repetición condicional con REPEAT...UNTIL 

Dado que la Lección 9 no fue en sí una lección propiamente dicha ya que lo único que hice fue enseñarles a usar una herramienta del compilador, hago rápidamente la entrega de la Lección 10. 

La sentencia REPEAT funciona igual que WHILE y sirve para lo mismo, entonces ¿cuál es la diferencia? Escencialmente WHILE repite algo mientras unacondición es verdadera, en contraparte REPEAT lo hace hasta que la condición sea verdadera, o sea, mientras la condición es falsa. 

¿Qué ventaja tiene esto? Uno tiende a preguntarse a veces para qué sirve REPEAT ya que, si se repite mientras una condición es falsa podríamos simplemente utilizar WHILE con el operador NOT en su condición y listo. Sin embargo esto no es tan sencillo. 

Otradiferencia es que WHILE verifica su condición antes de entrar en su bloque de instrucciones, REPEAT lo hace al final. ¿Qué significa esto? Veamos un código simple hecho con WHILE: 

Este programa hará aumentar una variable desde 0 hasta 10 mostrando su valor en pantalla y terminará cuando eso suceda: 

Código: |
PROGRAM WhileVSRpeat; 

VAR 
    i: INTEGER; 

BEGIN 
    i:= 0;//Inicializamos la variable en 0. 

    WHILE i<10 DO 
    Begin 
        i:= i+1; //Aumentamos el valor de i en 1. 
        Write(i,' '); //Imprimimos el valor de i y un espacio de separación. 
    End;          

    ReadLn; 
END. |

Como podrán observar este es un programa bien sencillo. Mientras i sea menor que 10 se repetirá el bloque dentro del WHILE. Cuando i valga 10 el WHILE verificaráeso y pues no entrará en su bloque y la iteración terminará. 

Ahora veamos exactamente el mismo programa en su versión con REPEAT. Esto servirá también para ver la sintaxis de esta nueva sentencia: 

Código: |
PROGRAM WhileVSRpeat2; 

VAR 
    i: INTEGER; 

BEGIN 
    i:= 0; //Inicializamos la variable en 0. 

    REPEAT 
        i:= i+1; //Aumentamos el valor de i en 1. 
       Write(i,' '); //Imprimimos el valor de i y un espacio de separación. 
    UNTIL i=10;;          

    ReadLn; 
END. |

Este programa hace exactamente lo mismo, solo que ahora en vez de repetirse mientras i<10, se repite hasta que i=10. Como ven, la condición del WHILE es opuesta a la de REPEAT y viceversa. 

Dado este ejemplo pueden observar que si hay que repetir más de unainstrucción (en este caso eran solo dos), en un WHILE hay que utilizar BEGIN y END para delimitar su bloque, pero REPEAT no lleva esta delimitación ya que se limita por sí mismo entre REPEAT y UNTIL. De este modo, mientras la sintaxis genérica de un WHILE es 

Código: |
WHILE condicion_es_verdadera DO 
Begin 
    Instrucción1; 
    Instrucción2; 
    . . . 
    InstrucciónN; 
End; |

la de unREPEAT es 

Código: |
REPEAT 
    Instrucción1; 
    Instrucción2; 
    . . . 
    InstrucciónN; 
UNTIL condicion_sea_falsa; |

Con WHILE... DO queríamos decir "Mientras... Haz", con REPEAT... UNTIL estamos diciendo "Repite... Hasta que". 

----- 

Como ya dije, WHILE verifica su condición antes de entrar en su bloque de instrucciones, por lo tanto podría suceder que a la primera lacondición fuera FALSE con lo cual WHILEno entraría nunca en su código y no se ejecutaría nunca. REPEAT verifica su condición al final, por lo tanto, sabemos siempre que esta sentencia se ejecutará al menos una vez, ya que entrará en su código, hará lo que tenga que hacer, y luego mirará la condición. 

Esto es lo que nos marca la diferencia esencial entre una sentencia y la otra. La gente tiendea preguntarse cuándo usar REPEAT y cuando usar WHILE. Pues bien, la respuesta es: 

Cuando sé que una lista de instrucciones debe ejecutarse al menos una vez como mínimo, entonces uso REPEAT. Si sabemos que es admisible que la lista de instrucciones pueda NO ejecutarse nunca, entonces usamos WHILE. 

¿Es correcto o incorrecto no discriminar estos casos? Pues si el programa hace lo que...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • cibernetica
  • cibernetica
  • Cibernetica
  • Que es la cibernetica
  • cibernética
  • Cibernetica
  • Cibernetica
  • La Cibernetica

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS