Skip to content

4. Condicional doble (4.2.2)

Si <condición> Entonces
<instrucciones si es verdadera>
Sino
<instrucciones si es falsa>
FinSi

Se ejecuta exactamente una de las dos ramas, nunca las dos, nunca ninguna.

Se usa cuando los dos casos posibles necesitan acciones distintas.

En la tarea “Hora de llegada” PSeInt mostraba 15:0. Ahora se puede decidir:

Si minutoLlegada < 10 Entonces
Mostrar "Hora estimada de llegada: ", horaLlegada, ":0", minutoLlegada
Sino
Mostrar "Hora estimada de llegada: ", horaLlegada, ":", minutoLlegada
FinSi
horaLlegadaminutoLlegadaRamaPantalla
150VerdaderaHora estimada de llegada: 15:00
845FalsaHora estimada de llegada: 8:45
19VerdaderaHora estimada de llegada: 1:09
110FalsaHora estimada de llegada: 1:10

El valor no cambia. La decisión solo afecta cómo se muestra.

Dos simples
Si nota >= 6 Entonces
Mostrar "Acreditado"
FinSi
Si nota < 6 Entonces
Mostrar "No acreditado"
FinSi

Evalúa dos condiciones. Si alguien escribe nota > 6 en la primera, el 6 no muestra nada.

Una doble
Si nota >= 6 Entonces
Mostrar "Acreditado"
Sino
Mostrar "No acreditado"
FinSi

Una sola condición. Es imposible que falten o sobren mensajes.

Cuando los casos son complementarios, usa una doble.

Actividad guiada · Recibo de luz con validación

Section titled “Actividad guiada · Recibo de luz con validación”

Retomamos el recibo de luz del bloque 4.1. Si las lecturas están invertidas, el algoritmo debe mostrar un error y no calcular el recibo.

  1. ¿Cuál es la condición? ¿Qué pasa si las dos lecturas son iguales?
  2. ¿Qué instrucciones van en cada rama? ¿Las entradas van dentro o fuera de la condicional?
  3. Escribe el pseudocódigo y dibuja el diagrama de flujo.
  4. Prueba con tres casos: normal (15230 y 15488), sin consumo (15488 y 15488) e invertidas (15488 y 15230).

Producto: pseudocódigo, diagrama y prueba de escritorio de las tres rutas.

Diagrama de flujo del recibo de luz con validación. Después de leer las dos lecturas, decisión lecturaActual >= lecturaAnterior. Rama Sí: calcular consumo, importeEnergia y total y mostrarlos. Rama No: mostrar Error: lecturas invertidas. Ambas ramas se unen antes de Fin

Las entradas quedan antes de la decisión: la condición necesita las dos lecturas.

Un rango se revisa con dos comparaciones:

Si semestre >= 1 Y semestre <= 10 Entonces
Mostrar "Semestre registrado"
Sino
Mostrar "El semestre debe estar entre 1 y 10"
FinSi
Escrito asíQué ocurre
1 <= semestre <= 10No es una condición válida: hay que separar las dos comparaciones
semestre >= 1 O semestre <= 10Siempre es verdadera: cualquier número cumple al menos una
semestre < 1 O semestre > 10Correcta, pero describe lo contrario: el valor fuera del rango

Pregunta de control: con Y deben cumplirse todas, con O basta una.

Continúa con 5. Condicional múltiple.