10. Logique conditionnelle : prendre une décision
Comparez des valeurs puis choisissez un chemin selon un indicateur mémorisé.
Ouvrir cette leçon →
1. Prévoir et tracer
Avant d’exécuter le programme d’essai, prévoyez sa sortie et tracez les trois premières instructions exécutées. Suivez les registres, les indicateurs ou la mémoire pertinents, selon le besoin. Avancez ensuite pas à pas pour comparer.
LOAD 7
CMP 7
JUMP_IF_ZERO same
LOAD 0
JUMP show
same: LOAD 1
show: PRINT
HALT
Ajouter les entrées à la file: Aucune
Initialiser la mémoire: Tous les octets sont initialement nuls
Corrigé de la prédiction d’essai
Sortie: 1
2. Construire et vérifier
Lisez deux entiers. Affichez 1 s’ils sont égaux, sinon 0. Gérez les entrées égales et différentes.
Types d’instructions requis: INPUT, CMP, JUMP_IF_ZERO
Exemple de solution du défi
INPUT
COPY R0 R1
INPUT
CMP R1
JUMP_IF_ZERO same
LOAD 0
JUMP show
same: LOAD 1
show: PRINT
HALT
Cas réels du vérificateur
Cas 1
- Entrée
5, 5- Mémoire initiale
Tous les octets sont initialement nuls- Sortie attendue
1
Cas 2
- Entrée
2, 3- Mémoire initiale
Tous les octets sont initialement nuls- Sortie attendue
0
Cas 3
- Entrée
-2, -2- Mémoire initiale
Tous les octets sont initialement nuls- Sortie attendue
1
3. Expliquer la machine
Z peut-il être vrai alors que R0 est non nul ?
Raisonnement et note pédagogique
Oui : CMP 7 avec R0 = 7 active zéro à partir de la différence, tandis que R0 reste à 7.
11. Pair ou impair
Classez une entrée avec un reste et un branchement.
Ouvrir cette leçon →
1. Prévoir et tracer
Avant d’exécuter le programme d’essai, prévoyez sa sortie et tracez les trois premières instructions exécutées. Suivez les registres, les indicateurs ou la mémoire pertinents, selon le besoin. Avancez ensuite pas à pas pour comparer.
LOAD -3
MOD 2
JUMP_IF_ZERO even
LOAD 0
JUMP show
even: LOAD 1
show: PRINT
HALT
Ajouter les entrées à la file: Aucune
Initialiser la mémoire: Tous les octets sont initialement nuls
Corrigé de la prédiction d’essai
Sortie: 0
2. Construire et vérifier
Lisez un entier. Affichez 1 s’il est pair et 0 s’il est impair.
Types d’instructions requis: INPUT, MOD, JUMP_IF_ZERO
Exemple de solution du défi
INPUT
MOD 2
JUMP_IF_ZERO even
LOAD 0
JUMP show
even: LOAD 1
show: PRINT
HALT
Cas réels du vérificateur
Cas 1
- Entrée
-3- Mémoire initiale
Tous les octets sont initialement nuls- Sortie attendue
0
Cas 2
- Entrée
8- Mémoire initiale
Tous les octets sont initialement nuls- Sortie attendue
1
Cas 3
- Entrée
0- Mémoire initiale
Tous les octets sont initialement nuls- Sortie attendue
1
Cas 4
- Entrée
7- Mémoire initiale
Tous les octets sont initialement nuls- Sortie attendue
0
3. Expliquer la machine
−3 est-il impair même si son résultat MOD 2 vaut −1 ?
Raisonnement et note pédagogique
Oui. Tout reste signé non nul indique un nombre impair ; un reste nul indique un nombre pair, y compris 0.
12. Une décision fondée sur la mémoire
Prenez une décision à partir d’une donnée enregistrée et conservez le résultat.
Ouvrir cette leçon →
1. Prévoir et tracer
Avant d’exécuter le programme d’essai, prévoyez sa sortie et tracez les trois premières instructions exécutées. Suivez les registres, les indicateurs ou la mémoire pertinents, selon le besoin. Avancez ensuite pas à pas pour comparer.
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
Ajouter les entrées à la file: Aucune
Initialiser la mémoire: 40: 23
Corrigé de la prédiction d’essai
Sortie: 1
2. Construire et vérifier
La mémoire 40 contient un code de billet fourni. Lisez une proposition, puis affichez et enregistrez à l’adresse 41 un 1 si elle correspond au code, sinon un 0.
Types d’instructions requis: INPUT, CMP, STORE, JUMP_IF_ZERO
Exemple de solution du défi
LOAD [40] R1
INPUT
CMP R1
JUMP_IF_ZERO match
LOAD 0
JUMP record
match: LOAD 1
record: STORE 41
PRINT
HALT
Cas réels du vérificateur
Cas 1
- Entrée
23- Mémoire initiale
40: 23- Sortie attendue
1- Mémoire finale attendue
40: 23, 41: 1- Lectures mémoire requises
40
Cas 2
- Entrée
22- Mémoire initiale
40: 23- Sortie attendue
0- Mémoire finale attendue
40: 23, 41: 0- Lectures mémoire requises
40
Cas 3
- Entrée
0- Mémoire initiale
40: 0- Sortie attendue
1- Mémoire finale attendue
40: 0, 41: 1- Lectures mémoire requises
40
3. Expliquer la machine
Pourquoi le programme doit-il encore fonctionner quand la mémoire 40 change ?
Raisonnement et note pédagogique
La règle de décision lit l’état enregistré au lieu d’intégrer un code de billet fixe ; elle enregistre et affiche le même 1 ou 0 à l’adresse 41.