7 - Condiciones repetitivas (2: Repetir-hasta)
Versión en video (3:21 min):
Pseudocódigo
7 - Condiciones repetitivas (2: Repetir-hasta)
Es también muy frecuente que un bloque de programa repetitivo deba ejecutarse al menos una vez. Por ejemplo, si queremos pedir un dato al usuario, quizá exista algún error y haya que insistir, pero al menos deberemos pedírselo una primera vez.
En estos casos, la estructura "mientras" no es la más adecuada, porque no podemos comprobar antes de pedir el valor. En estos casos (que son muy frecuentes), sería más razonable usar otra estructura de programación en la que la condición se compruebe después de dar ciertos pasos. Esa estructura es "repetir... hasta":
Su representación en un diagrama de flujo sería:
Y en el caso de PSeInt, ese icono generaría un esqueleto de programa como éste:
Por ejemplo, un programa que pida al usuario una clave de acceso, y que no le permita seguir hasta que la introduzca correctamente, se podría hacer así:
Algoritmo Repetir01
Repetir
Escribir "Dime tu clave de acceso"
Leer clave;
Si clave <> 1234 Entonces
Escribir "Clave incorrecta"
FinSi
Hasta Que clave=1234
Escribir "Bienvenido!"
FinAlgoritmo
Cuyo resultado sería:
Queda otra forma de repetir fragmentos de programa. Pronto estaremos con ella...
Ejercicio de repaso propuesto 7.1: Crea un programa que pida al usuario un código de usuario y una contraseña. Deberá repetirse hasta que el código sea "1" y la contraseña sea "1234".
Ejercicio de repaso propuesto 7.2: Haz un programa que permita calcular la suma de pares de números. Pedirá dos números al usuario y mostrará su suma, volviendo a repetir hasta que ambos números introducidos sean 0. Esta vez deberás usar "Repetir", por lo que tu solución no será igual que la del ejercicio 6.2, que empleaba "Mientras".
Ejercicio de repaso propuesto 7.3: Prepara un programa que divida dos números que introduzca el usuario. Si el segundo número es cero, se le deberá avisar y volver a pedir tantas veces como sea necesario, hasta que introduzca un número distinto de cero, momento en que se calculará y mostrará el resultado de la división.