Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: JValero en 08 de Septiembre 2014, 13:19
-
Buenos días,
Tengos dudas referentes al ejercicio 4 de la semana 10 de "Fundamentos de programación I" donde se me pide crear un psudocódigo referente a un programa que pide una contraseña y al tercer intento fallido debería de mostrar un mensaje indicando que se ha fallado tres veces.
El código usado es el siguiente:
1. Inicio
2. Mientras Clave <> 1234 Hacer
Mostrar “Por favor, introduzca password”
Pedir Clave
i=i+1
Si i>2 Entonces
Mostrar “Ha introducido 3 veces la clave errónea”
Finalizar
FinSi
Repetir
3. Mostrar “Ha acertado la clave”
4. Fin
Preguntas:
- He puesto que la password correcta sería 1234 pero, ¿qué ocurriría si la password fuera texto o texto y números? ¿Habría que variar alguna linea del psudocódigo?
Gracias por vuestra ayuda
-
Hola, dado que con pseudocódigo estás trabajando a nivel conceptual debes ser tú mismo quien decida si consideras que el dato es un valor numérico o un valor alfanumérico (texto).
Si escribes Mientras Clave <> 1234 Hacer se entiende que lo estás considerando numérico, si escribes Mientras Clave <> "1234" Hacer se entiende que lo estás considerando alfanumérico (texto y números). Ese sería el único cambio que habría que considerar en el pseudocódigo.
El diseño no está mal planteado, pero te recomendaría que pienses en una alternativa como esta:
Incluir la condición del número de repeticiones en el bucle así:
1. Inicio
2. Mientras Clave <> 1234 y numeroIntentos < 3 Hacer
Mostrar “Por favor, introduzca password”
Pedir Clave
numeroIntentos=numeroIntentos+1
Repetir
3. Si numeroIntentos>=3 Entonces
Mostrar “Ha introducido 3 veces la clave errónea”
SiNo
Mostrar “Ha acertado la clave”
4. FinSi
5. Fin
Pueden plantearse múltiples diseños. En un mientras (while) puedes poner varias condiciones. Con esta alternativa no haces uso de Finalizar, que es un final "anómalo" del bucle. Escoge el diseño que te parezca más adecuado en función de lo que te pida el ejercicio y de lo que resulte más fácil de entender y eficiente.
Si algo no queda claro coméntamelo ;)
-
Todo clarísmo Alex.
Se agradece tu recomendación pues, claramente, es mucho más eficiente que mi pseudocódigo.
Gracias por la ayuda.