Existen muchas situaciones en las que se desea que un ciclo se ejecute al menos una vez antes de comprobar la condición de repetición. En la estructura mientras, si el valor de la expresión booleana es inicialmente falso, el cuerpo del ciclo no se ejecutará; por otro lado, en la estructura hacer-mientras, el cuerpo del ciclo se ejecutará mientras que la expresión booleana sea verdadera. Pero, ¿qué sucede si necesitamos que el ciclo se repita mientras que la expresión booleana sea falsa? Ahi es donde entra en juego la estructura repetir - hasta_que.
Esta es la sintaxis de la estructura repetir - hasta_que:
repetir
sentencias
hasta_que <condición>
Como ya hemos dicho, el cuerpo del ciclo repetir - hasta_que se repetirá mientras que la condición sea falsa y se detendrá hasta que sea verdadera. Justo lo opuesto a la estructura hacer-mientras.
Para comprender mejor el funcionamiento, vamos a repetir el primer ejemplo de la lección anterior, en el cual leemos las calificaciones de un grupo de alumnos (no sabemos cuántos) y luego calculamos su promedio; sólo que esta vez lo vamos a resolver usando la estructura repetir - hasta_que
algoritmo Promedio
var
entero: cal, suma, cont
real: promedio
caracter: respuesta
inicio
suma <- 0
cont <- 0
repetir
escribir("Escribe la calificación:")
leer(cal)
suma <- suma + cal
cont++;
escribir("¿Deseas capturar otra calificación?" S/N")
leer (resp)
hasta que (resp = 'N') o (resp = 'n')
promedio <- suma/cont
escribir("El promedio de las calificaciones capturadas es: " + promedio)
fin
Como puedes ver, al cambiar de estructura lo único que estamos cambiando es la forma como evaluaremos la condición que decidirá si se repite el ciclo o no. En la lección anterior usamos la estructura hacer - mientras y, por lo tanto, la condición que determinaba si el ciclo se repetía o no era:
mientras (resp = 'S') o (resp = 's')
Esto quiere decir que repetíamos el ciclo mientras que fuera verdadero que la respuesta del usuario era 'S'. Usando la estructura repetir - hasta_que, esa condición cambia a
mientras (resp = 'N') o (resp = 'n')
dado que ahora dejaremos que el ciclo se repita hasta que el usuario introduzca una 'N', es decir, lo repetiremos mientras que sea falso que la respuesta del usuario es 'S'.
Mira este otro ejemplo:
algoritmo Serie
var
entero: contador
inicio
contador <- 1
repetir
escribir (contador)
contador++
hasta_que contador > 30
fin
En este caso, estamos simplemente escribiendo en pantalla los números del 1 al 30. Iniciamos la variable contador en 1 y la mostramos en pantalla hasta que su valor sea mayor que 30 o, en otras palabras, mientras que sea falso que es mayor que 30.
Para resumir, podemos citar estas dos diferencias clave entre las estructuras mientras y repetir:
- La estructura mientras termina cuando la condición es falsa, mientras que repetir - hasta_que termina cuando la condición es verdadera.
- En la estructura repetir - hasta_que, el cuerpo del ciclo se ejecuta siempre al menos una vez; por el contrario, la estructura mientras es más general y permite la posibilidad de que el ciclo no se ejecute ni una vez. Para usar la estructura repetir-hasta_que, se debe estar 100% seguro de que el cuerpo del ciclo, bajo cualquier circunstancia, se repetirá al menos una vez.
En la próxima lección vamos a conocer una estructura de repetición más: la estructura desde. Por lo pronto, es hora de practicar. ¡Hasta la próxima!
ACTIVIDADES DE APRENDIZAJE
- Repite los cuatro ejercicios de la lección anterior, pero ahora usa la estructura repetir - hasta_que.
Enlace: Índice del curso
0 comentarios:
Publicar un comentario