El problema y su planteamiento
Lee un número del 1 al 7 y muestra el día: 1 es Lunes, 2 Martes… 7 Domingo. Con cualquier otro número muestra No existe.
| Entrada | Proceso | Salida |
|---|---|---|
| Un número. | Buscar a qué día corresponde: 1 es Lunes, 2 Martes… 7 Domingo. | El nombre del día, o No existe si el número no está entre 1 y 7. |
Diagrama de flujo
Así se dibuja el algoritmo: el óvalo marca el inicio y el fin, el paralelogramo es una entrada o una salida, el rectángulo es un proceso y el rombo es una decisión.
Pseudocódigo
Esta es una solución. Léela línea por línea con el diagrama al lado y compara con lo que tú escribirías.
Algoritmo dia_de_la_semana
Leer dia
Segun dia Hacer
1: Escribir "Lunes"
2: Escribir "Martes"
3: Escribir "Miércoles"
4: Escribir "Jueves"
5: Escribir "Viernes"
6: Escribir "Sábado"
7: Escribir "Domingo"
De Otro Modo: Escribir "No existe"
FinSegun
FinAlgoritmo
| Entrada | Salida esperada |
|---|---|
| 1 | Lunes |
| 5 | Viernes |
Con estas entradas, el programa debe mostrar exactamente esa salida.
Cómo pensarlo
Cuando hay muchas opciones para un mismo valor, Según es más claro que una cadena de Si. Escribes Segun dia Hacer y, debajo, un renglón por cada valor: 1: Escribir "Lunes".
La opción De Otro Modo recoge todo lo que no coincide con ninguno de los casos. Aquí sirve para el 0, el 9 o cualquier número fuera de 1 a 7: muestra No existe.
La estructura se cierra con FinSegun. En el diagrama de flujo, Según se dibuja como una decisión con varias salidas, una por caso.
Errores comunes
- Olvidar De Otro Modo: con un 9 el programa no mostraría nada.
- Escribir los casos con comillas ("1"): son números, no texto.
- Olvidar FinSegun al final.
El mismo programa en Python
Si más adelante pasas a Python, así se ve la misma lógica. Cambian las palabras (print, input, if) y los bloques se marcan con sangría en lugar de FinSi o FinPara.
# Algoritmo dia_de_la_semana
dia = float(input())
if dia == 1:
print("Lunes")
elif dia == 2:
print("Martes")
elif dia == 3:
print("Miércoles")
elif dia == 4:
print("Jueves")
elif dia == 5:
print("Viernes")
elif dia == 6:
print("Sábado")
elif dia == 7:
print("Domingo")
else:
print("No existe")
Preguntas frecuentes
¿Cuándo conviene usar Según en lugar de Si?
Cuando comparas la misma variable con varios valores concretos, como los días de la semana. Es más corto y más fácil de leer que varios Si anidados.
¿Para qué sirve De Otro Modo?
Es el caso por omisión: se ejecuta cuando el valor no coincide con ninguno de los anteriores.