Théorie 1.3: déplacer et décaler dans un tableau #
Opérations à implanter #
On veut implanter les deux opérations suivantes dans un tableau de carte
-
déplacer une carte au début, en décalant vers la droite pour faire de la place:
-
déplacer une carte à la fin, en décalant vers la gauche pour faire de la place:
NOTE: on peut prendre n’importe quelles cartes pour illustrer ces opérations.
Visualisation du code #
-
On va visualiser le code suivant
Carte[] cartes; int aDeplacer; int i; Carte memoireA; Carte memoireB;
Une carte blanche représente une case vide (valeur
null
)Procédure: déplacer au début #
Pour déplacer une carte au début, on va utiliser la procédure suivante
- D’abord, mémoriser la carte à déplacer dans
memoireA
- Ensuite, faire une boucle
for
pour visiter le bonnes cases du tableau- pour chaque case visitée
- mémoriser la carte courante dans
memoireB
- «monter» les cartes mémorisées:
- «monter»
memoireA
dans le tableau - «monter»
memoireB
dansmemoireA
- «monter»
- mémoriser la carte courante dans
- pour chaque case visitée
- il y a une autre procédure qui utilise une seul case mémoire
- (Chut! Ne le dis pas, c’est une question bonus de l’atelier!)
Procédure: déplacer à la fin #
Pour déplacer une carte à la fin, on va utiliser la procédure suivante
- D’abord, mémoriser la carte à déplacer dans
memoireA
- Ensuite, faire une boucle
for
pour visiter les bonnes cases du tableau- pour chaque case visitée
- déplacer la carte suivante à la case courante
- pour chaque case visitée
- Finalement, déplacer la carte mémorisée à la fin du tableau