10. Lógica condicional: tomar decisiones
Compara valores y elige un camino con un indicador guardado.
Abrir esta lección →
1. Predecir y trazar
Antes de ejecutar el programa de prueba, predice su salida y traza las tres primeras instrucciones ejecutadas. Sigue los registros, indicadores o memoria relevantes. Después avanza paso a paso para comparar.
LOAD 7
CMP 7
JUMP_IF_ZERO same
LOAD 0
JUMP show
same: LOAD 1
show: PRINT
HALT
Añadir entradas a la cola: Ninguno
Inicializar memoria: Todos los bytes empiezan en cero
Solución de la predicción
Salida: 1
2. Construir y comprobar
Lee dos enteros. Imprime 1 si son iguales y 0 si son distintos. Debe funcionar con ambos tipos de entrada.
Tipos de instrucción requeridos: INPUT, CMP, JUMP_IF_ZERO
Ejemplo de solución del reto
INPUT
COPY R0 R1
INPUT
CMP R1
JUMP_IF_ZERO same
LOAD 0
JUMP show
same: LOAD 1
show: PRINT
HALT
Casos reales del comprobador
Caso 1
- Entrada
5, 5- Memoria inicial
Todos los bytes empiezan en cero- Salida esperada
1
Caso 2
- Entrada
2, 3- Memoria inicial
Todos los bytes empiezan en cero- Salida esperada
0
Caso 3
- Entrada
-2, -2- Memoria inicial
Todos los bytes empiezan en cero- Salida esperada
1
3. Explicar la máquina
¿Puede Z estar activado aunque R0 no sea cero?
Razonamiento y nota docente
Sí: CMP 7 con R0 = 7 activa cero por la diferencia mientras R0 sigue en 7.
11. Par o impar
Usa el resto y una bifurcación para clasificar una entrada.
Abrir esta lección →
1. Predecir y trazar
Antes de ejecutar el programa de prueba, predice su salida y traza las tres primeras instrucciones ejecutadas. Sigue los registros, indicadores o memoria relevantes. Después avanza paso a paso para comparar.
LOAD -3
MOD 2
JUMP_IF_ZERO even
LOAD 0
JUMP show
even: LOAD 1
show: PRINT
HALT
Añadir entradas a la cola: Ninguno
Inicializar memoria: Todos los bytes empiezan en cero
Solución de la predicción
Salida: 0
2. Construir y comprobar
Lee un entero. Imprime 1 si es par y 0 si es impar.
Tipos de instrucción requeridos: INPUT, MOD, JUMP_IF_ZERO
Ejemplo de solución del reto
INPUT
MOD 2
JUMP_IF_ZERO even
LOAD 0
JUMP show
even: LOAD 1
show: PRINT
HALT
Casos reales del comprobador
Caso 1
- Entrada
-3- Memoria inicial
Todos los bytes empiezan en cero- Salida esperada
0
Caso 2
- Entrada
8- Memoria inicial
Todos los bytes empiezan en cero- Salida esperada
1
Caso 3
- Entrada
0- Memoria inicial
Todos los bytes empiezan en cero- Salida esperada
1
Caso 4
- Entrada
7- Memoria inicial
Todos los bytes empiezan en cero- Salida esperada
0
3. Explicar la máquina
¿Es −3 impar aunque MOD 2 produzca −1?
Razonamiento y nota docente
Sí. Cualquier resto con signo distinto de cero indica impar; resto cero indica par, incluido 0.
12. Una decisión basada en memoria
Decide a partir de datos guardados y registra el resultado.
Abrir esta lección →
1. Predecir y trazar
Antes de ejecutar el programa de prueba, predice su salida y traza las tres primeras instrucciones ejecutadas. Sigue los registros, indicadores o memoria relevantes. Después avanza paso a paso para comparar.
STORE 23 40
LOAD [40] R1
LOAD 23
CMP R1
JUMP_IF_ZERO match
LOAD 0
JUMP record
match: LOAD 1
record: STORE 41
PRINT
HALT
Añadir entradas a la cola: Ninguno
Inicializar memoria: 40: 23
Solución de la predicción
Salida: 1
2. Construir y comprobar
La memoria 40 contiene un código suministrado. Lee un intento y después imprime y guarda en la dirección 41 un 1 si coincide o un 0 si no coincide.
Tipos de instrucción requeridos: INPUT, CMP, STORE, JUMP_IF_ZERO
Ejemplo de solución del reto
LOAD [40] R1
INPUT
CMP R1
JUMP_IF_ZERO match
LOAD 0
JUMP record
match: LOAD 1
record: STORE 41
PRINT
HALT
Casos reales del comprobador
Caso 1
- Entrada
23- Memoria inicial
40: 23- Salida esperada
1- Memoria final esperada
40: 23, 41: 1- Lecturas de memoria requeridas
40
Caso 2
- Entrada
22- Memoria inicial
40: 23- Salida esperada
0- Memoria final esperada
40: 23, 41: 0- Lecturas de memoria requeridas
40
Caso 3
- Entrada
0- Memoria inicial
40: 0- Salida esperada
1- Memoria final esperada
40: 0, 41: 1- Lecturas de memoria requeridas
40
3. Explicar la máquina
¿Por qué debe funcionar el programa aunque cambie la memoria 40?
Razonamiento y nota docente
La regla lee estado guardado en lugar de fijar un código. Registra y muestra el mismo 1 o 0 en 41.