Module: Instrucción de bucle con condición - while


Problem

1/21

La construcción de una sentencia de bucle con una condición (while)

Theory Click to read/hide

Al estudiar el bucle for, dijimos que si se conoce el número de repeticiones de cualquier acción, entonces puede acortar el programa usando el operador de bucle for. Pero, ¿y si no se conoce el número de repeticiones? Y esto sucede muy a menudo.
Por ejemplo, recordemos la conversión de un número de un sistema numérico decimal a cualquier otro: necesitamos dividir el número (y luego el resultado de la división) por la base del sistema numérico hasta obtener cero en la respuesta. Se desconoce cuántas veces compartiremos. Y hay bastantes programas que implementan dicho algoritmo. 
¿Cómo se implementa esto?
Para tales casos en programación, existe un operador de bucle con una condición. 
En el lenguaje de programación Pascal, una instrucción de ciclo condicional comienza con la palabra while y tiene la siguiente estructura. mientras que <condición> empezar cuerpo de bucle fin Como ya sabemos:
- una condición es una expresión, cuyo resultado puede ser verdadero o falso (como en una declaración condicional)
- el cuerpo del bucle son los comandos que deben repetirse
- comienzo y fin se pueden omitir si el cuerpo del bucle consta de un solo operador

Cómo funciona el operador:
1. Primero, el programa evalúa la condición después de la palabra while. Si la condición se cumple (verdadera), entonces el programa ejecuta las instrucciones contenidas en el cuerpo del ciclo.
2. Al igual que en el ciclo for, si el cuerpo del ciclo contiene solo una instrucción, se pueden omitir las palabras begin y end que resaltan el cuerpo del ciclo.
3. Una vez completada la ejecución del cuerpo del bucle, el programa vuelve a comprobar la condición y la vuelve a comprobar.
4. Estas acciones (comprobar la condición - ejecutar el cuerpo del bucle) se repiten hasta que la condición se vuelve falsa.
5. Si en la primera ejecución de este operador, la condición no se cumple inmediatamente (falso), entonces el programa nunca ejecutará el cuerpo del ciclo.

Al analizar el trabajo de este operador, debería quedar claro que el cuerpo del ciclo debe contener un operador que afecte la condición.
Por ejemplo, un bucle puede incrementar el valor de una variable utilizada en una condición.

Un ejemplo de un programa que llamaremos "Conteo silencioso"
Hagamos que el programa cuente en lugar de nosotros, por ejemplo, hasta 10.
El programa debe generar la frase "Inicio" y "Terminar", y entre estas acciones se muestran los números que se están calculando.
Así, 
Inicio
1 2 3 4 5 6 7 8 9 10
Terminar
Un programa que usa un ciclo while se vería así. var i: entero; comenzar     writeln('Inicio');     yo := 1;     mientras i <= 10 empiezo         escribir(i, ' ');         yo += 1; //Operador que afecta el cambio de variable en la condición         fin;     escribirln();     writeln('Finalizar'); fin. En este programa, asignamos un valor a la variable i := 1 - el origen
Además, siempre que tengamos el valor de la variable i no mayor (es decir, menor o igual) que el valor que necesitamos,  
 1 - muestra el valor de la variable i 
 2 - aumentar el valor de la variable i en 1 - este operador afecta el valor de la condición entre paréntesis. La variable i se incrementa, es decir, en algún momento la condición i<=10 se volverá falsa. Esto sucederá cuando i sea igual a 11. En este caso, el cuerpo del bucle ya no se ejecutará y el programa ejecutará la siguiente declaración después del bucle, es decir writeln();
writeln('Finalizar');

Problem

Ejecute el programa, mire el resultado de su trabajo.