Olympiades · Académie Amiens · 2017 · Toutes séries
Lors de l'exécution d'un programme informatique, un ordinateur a besoin de stocker des données dans sa mémoire. Sous sa forme la plus basique, cette mémoire est accessible via des piles.
Pour comprendre son fonctionnement, nous allons utiliser l'analogie suivante :
Les actions possibles sur une pile sont les suivantes:
Pour définir une pile, plutôt qu'un dessin, nous utiliserons la syntaxe suivante ( \(a_{1}, a_{2}, \ldots, a_{n}\) représentant des jetons quelconques) : \(\left[a_{1}, a_{2}, \ldots, a_{n}\right]\) représente la pile dont les jetons sont, du bas vers le haut : \(a_{1}, a_{2}, \ldots, a_{n}\).
Dans toute la suite, les lettres minuscules représenteront des nombres.
| Action | \(\boldsymbol{P}_{\mathbf{1}}\) | \(\boldsymbol{P}_{\mathbf{2}}\) | Résultat |
| Situation initiale | [ \(a, b, c\) ] | [d,e] | Aucun |
| Lire \(\boldsymbol{P}_{\mathbf{1}}\) | [ \(a, b, c\) ] | [d,e] | « \(C\) » |
| Transfert de \(\boldsymbol{P}_{\mathbf{1}}\) vers \(\boldsymbol{P}_{\mathbf{2}}\) | [ \(a, b\) ] | [d,e,c] | Aucun |
| Dépiler \(\boldsymbol{P}_{\mathbf{1}}\) | [a] | [d,e,c] | Aucun |
| Empiler la donnée « \(\boldsymbol{f}\) » sur \(\boldsymbol{P}_{\mathbf{1}}\) | [a,f] | [d,e,c] | Aucun |
| Transfert de \(\boldsymbol{P}_{\mathbf{2}}\) vers \(\boldsymbol{P}_{\mathbf{1}}\) | |||
| Lire \(\boldsymbol{P}_{\mathbf{2}}\) |
| Action | \(\boldsymbol{P}_{\mathbf{1}}\) | \(P_{2}\) | \(\boldsymbol{P}_{\mathbf{3}}\) |
| Situation initiale | [ \(a, b\) ] | Vide | Vide |
| Transfert de \(\boldsymbol{P}_{\mathbf{1}}\) vers \(\boldsymbol{P}_{\mathbf{3}}\) | |||
| Transfert de \(\boldsymbol{P}_{\mathbf{1}}\) vers \(\boldsymbol{P}_{\mathbf{2}}\) | |||
| Transfert de \(\boldsymbol{P}_{\mathbf{3}}\) vers \(\boldsymbol{P}_{\mathbf{1}}\) | |||
| Transfert de \(\boldsymbol{P}_{\mathbf{2}}\) vers \(\boldsymbol{P}_{\mathbf{1}}\) |
Aucun corrigé disponible pour cet exercice dans la source APMEP.