Fiche de l’élève

Des algorithmes avec un état

Trois sections par leçon : prévoir, construire, expliquer. Travaillez sur papier ou dans le laboratoire local. L’application ne demande ni nom, ni compte, ni dossier d’élève.

16. Factorielle et invariants de boucle

Utilisez un accumulateur multiplicatif et expliquez pourquoi 0! vaut 1.

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 4 R1
LOAD 1 R2
LOOP 4
LOAD R2
MUL R1
COPY R0 R2
LOAD R1
SUB 1
COPY R0 R1
RETURN
LOAD R2
PRINT
HALT

Ajouter les entrées à la file: Aucune

Initialiser la mémoire: Tous les octets sont initialement nuls

InstructionPC avantPC aprèsR0 avantR0 aprèsÉtat pertinentSortie
       
       
       

2. Construire et vérifier

Lisez N de 0 à 6 et affichez N!. Utilisez une boucle et un accumulateur de multiplication.

Types d’instructions requis: INPUT, LOOP, MUL

Programme de départ

INPUT
COPY R0 R1
COPY R0 R3
LOAD 1 R2
LOOP R3
  #
RETURN
LOAD R2
PRINT
HALT

Votre programme et vos notes

3. Expliquer la machine

Pourquoi l’accumulateur de produit commence-t-il à 1 ?