El problema y su planteamiento
Lee un número. Si está entre 1 y 10 (incluidos), muestra Dentro; si no, Fuera.
| Entrada | Proceso | Salida |
|---|---|---|
| Un número. | Comprobar que sea mayor o igual a 1 y menor o igual a 10. | Dentro si está en el rango (incluidos 1 y 10); Fuera si no. |
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 dentro_del_rango
Leer n
Si n >= 1 Y n <= 10 Entonces
Escribir "Dentro"
SiNo
Escribir "Fuera"
FinSi
FinAlgoritmo
| Entrada | Salida esperada |
|---|---|
| 5 | Dentro |
| 0 | Fuera |
Con estas entradas, el programa debe mostrar exactamente esa salida.
Cómo pensarlo
Estar entre 1 y 10 son dos condiciones juntas: que sea mayor o igual a 1 y que sea menor o igual a 10. Se unen con el operador lógico Y, que solo da verdadero si ambas lo son.
La condición queda: n >= 1 Y n <= 10. No se puede escribir como 1 <= n <= 10: en pseudocódigo cada comparación va por separado.
Los bordes son el 1 y el 10: ambos cuentan como dentro, por eso se usan >= y <=. Por eso este reto se prueba con 0, 1, 10 y 11, que son los valores donde un error de signo se nota.
Errores comunes
- Escribir n > 1 Y n <= 10: el 1 saldría como Fuera.
- Usar O en lugar de Y: con O, casi cualquier número cumpliría alguna de las dos condiciones.
- Encadenar comparaciones como en matemáticas (1 <= n <= 10): no funciona, hay que separarlas con Y.
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 dentro_del_rango
n = float(input())
if n >= 1 and n <= 10:
print("Dentro")
else:
print("Fuera")
Preguntas frecuentes
¿Qué hace el operador Y en una condición?
Une dos condiciones y da verdadero solo cuando las dos se cumplen. El operador O, en cambio, da verdadero si se cumple al menos una.
¿Por qué importan tanto los valores de borde?
Porque es donde se equivocan los signos > y >=. Un buen programa se prueba con los valores justo en el límite y uno antes y uno después.