Cet exercice permet de créer un algorithme non programmable avec Milo et de réviser la logique de la programmation. Le sujet principal abordé dans cet exercice et la notion de booléen. Cet exercice est construit sur le même principe que les exercices du pack “51 exercices d’algorithmique (avec Milo)“.
Bien que cet algorithme ne soit pas directement programmable (à cause de l’utilisation d’un personnage et d’un parcours), la syntaxe utilisée et la logique observée, vous permettront de mieux appréhender les notions de base de la programmation.
Tentez de résoudre cet exercice par vous même. Vous en trouverez la correction sous la présentation du sujet.
Le sujet
Proposez un algorithme permettant à Milo de traverser le niveau :

- Milo commence avec une petite taille et lorsqu’il rencontre une tête il grandit. Attention, il n’y a que deux tailles possibles pour le personnage, soit il est grand, soit il est petit.
- Si Milo marche sur une tête alors qu’il est déjà grand, il dit « tailleMAX »
- Pour rappel :
- Une tête permet à Milo de grandir.
- Un booléen ne peut prendre que deux valeurs « VRAI » ou « FAUX ».
- le personnage ne peut réaliser que 3 actions de déplacement (instructions) :
- gauche : effectue un quart de tour sur sa gauche
- droite : effectue un quart de tour sur sa droite
- avancer : avance d’une case vers l’avant
La représentation visuelle (algorithme)

L’algorithme non programmable écrit en Pseudo-code (Notion de booléen)
La version ci-dessous montre la liste des instructions nécessaires pour que Milo traverse le niveau. Les tests en violets, sont à écrire à la place des instructions encadrées dans l’algorithme principal.

Le bloc « SINON » du premier test interviendrait dans 3 cas :
- 1 : Si le personnage n’a pas marché sur une tête
- 2 : Si le personnage n’est pas petit
- 3 : Si le personnage n’a pas marché sur une tête et qu’il n’est pas petit
Il est donc nécessaire de faire un nouveau test dans le bloc « SINON » (ou après le mot clef « FINSI ») pour vérifier si le personnage a bien marché sur une tête.

Le test proposé dans la version précédente peut être écrit en utilisant l’opérateur « ET » pour combiner deux conditions, ou avec des tests « SI » imbriqués, comme le montre cette autre possibilité :
Notez qu’écrire le test « SI petit » revient à tester « SI petit = VRAI ».
Enfin, si j’ajoute une boucle « POUR » gérant la séquence de déplacement (Avancer / Droite / Avancer / Gauche), il est possible d’optimiser l’algorithme avec cette version finale que je propose :

Aller à la liste des exercices
Pour continuer votre apprentissage de l’algorithmique

Le pack de 51 exercices