Búsqueda personalizada
Artículos de Carlos Pes
 Inicio Artículos > Artículo 2

Bucle Hacer...mientras versus Bucle Repertir...hasta.

Mientras que, por ejemplo, en lenguaje C, se puede hacer uso de una
instrucción repetitiva hacer...mientras, utilizándose la sintaxis:


   do
   {
     
<bloque_de_instrucciones>
   } while (
<expresión_lógica> );

 

En Pascal, se puede emplear un bucle repetir...hasta. La sintaxis es:


   repeat
     
<bloque_de_instrucciones>
   until 
<expresión_lógica>;

 

La diferencia principal, entre ambos bucles, es que:

"un bucle do...while
permite ejecutar repetidamente (una o más veces) un bloque de instrucciones, mientras que, una determinada condición sea verdadera"

y, por otra parte,

"un bucle repeat...until permite ejecutar repetidamente (una o más veces) un bloque de instrucciones, hasta que, una determinada condición sea verdadera."

Obsérvese que, en los ordinogramas del Curso de Diseño de Algoritmos, se utiliza la sintaxis de una instrucción repetitiva hacer...mientras:

Instrucción repetitiva hacer...mientras en Ordinogramas

Figura. Instrucción repetitiva hacer...mientras.

La sintaxis utilizada se corresponde con la empleada en el Pseudocódigo CEE (C En Español):


   hacer
      <bloque_de_instrucciones>
   mientras ( <expresión_lógica> )
 

De forma que, cuando se evalúe la 
<expesión_lógica> del bucle, SI ésta es verdadera, el <bloque_de_instrucciones> se vuelve a ejecutar. Y así sucesivamente, hasta que la condición sea falsa o, mientras que, NO sea verdadera.

En consecuencia, para un bucle 
repetir...hasta podríamos utilizar la siguiente sintaxis en ordinogramas:

Instrucción repetitiva repetir...hasta en Ordinogramas

Figura. Instrucción repetitiva repetir...hasta.

Fíjese que, donde poníamos SI, ahora escribimos NO, y al revés.

Ejemplo: Se quiere diseñar el algoritmo de un programa que muestre por pantalla los primeros diez números naturales:


   1 2 3 4 5 6 7 8 9 10

 

Utilizando un bucle 
hacer...mientras, la solución en Pseudocódigo CEE puede ser:

 algoritmo Numeros_del_1_al_10

 variables
    entero contador

 inicio
    contador 
1   /* Inicialización del contador */
    hacer
       escribir( contador )         /* Salida */
       contador 
contador + 1     /* Incremento */
    mientras ( contador <= 10 )     /* Condición */

 fin

De manera gráfica, se puede representar como se muestra a continuación:

Ejemplo: instrucción repetitiva hacer...mientras en Ordinograma

Su codificación en lenguaje C sería:

#include <stdio.h>

int main()
{
   int contador;

   printf( "\n   " );

   contador = 1;   /* Inicialización del contador */
   do
   {
      printf( "%d ", contador );   /* Salida */
      contador++;                  /* Incremento */
   } while ( contador <= 10 );     /* Condición */

   return 0;
}


No obstante, en Pascal, utilizando un bucle repeat...until, escribiríamos el siguiente código fuente:

program EJE13101;

uses Crt;

var Contador : Integer;

begin
   ClrScr;
   GotoXY( 4, 2 );

   Contador := 1; { Inicializacion del contador }
   repeat
      Write( Contador, ' ' );     { Salida }
      Contador := Contador + 1;   { Incremento }
   until Contador > 10;           { Condicion }
end.


Obsérvese que, la condición de salida del bucle en Pascal

Contador > 10

es la contraria a la que hemos empleado en lenguaje C

contador <= 10

Y así deberemos hacer siempre que queramos "convertir" un programa escrito en lenguaje C a Pascal, o al revés.

Para cualquier sugerencia, comentario o error, puede escribir a:
correo[arroba]carlospes[punto]com
También puedes visitar mi Blog.
 Páginas relacionadas con el artículo
· Listado de ejercicios de programación resueltos en diferentes lenguajes.
· Presentación resumen y soluciones a los Ejercicios Propuestos del libro EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C.
Búsqueda personalizada
Cursos de Carlos Pes: Ejercicios de Carlos Pes: Libros de Carlos Pes: Enlaces Recomendados:
Curso Diseño de Algoritmos
Curso Informática Básica
Curso Ingeniería del Software
Curso Lenguaje C
Curso Turbo Pascal
Curso Representación Datos
Ejercicios de Algoritmos
Ejercicios de Lenguaje C
Ejercicios de Ordinogramas
Ejercicios de Pascal
Empezar de cero a programar en lenguaje C
Domine la programación en lenguaje C
Empezar de cero a programar en Pascal
Inicio | Libros | Librerías | Mapa Web | Artículos | Cursos | Ejercicios | Guías | MiniDiccionario | Enlaces | Carlos Pes | Mi Blog
© Carlos Javier Pes Rivas, 2006-2008
Política de privacidad - Contactar