Exercices de démonstration

Ci-dessous sont présentés des sujets d'introduction à l'algorithmique et la programmation, qui peuvent être résolus sur la plateforme d'entraînement.

Chauve-souris

Ce problème est le tout premier (le plus facile) du concours Algoréa 2013.

Une chauve-souris répond aux trois commandes suivantes :

  • droite() : elle fait un quart de tour sur sa droite ;
  • gauche() : elle fait un quart de tour sur sa gauche ;
  • fonce() : elle va tout droit jusqu'à rencontrer un mur.

Sauriez-vous programmer une suite de commandes qui lui permette d'atteindre la case d'arrivée, marquée d'un « X » sur le plan ?

Oui !

Billes

Cet exercice est le tout premier problème du concours Algoréa 2014.

Afin de faire rouler les billes rouge et bleue ci-contre, on peut basculer le plateau avec les commandes suivantes :

  • haut() : les billes roulent vers le haut ;
  • bas() : les billes roulent vers le bas ;
  • gauche() : les billes roulent vers la gauche ;
  • droite() : les billes roulent vers la droite.

À chaque étape, les billes roulent jusqu'à atteindre un mur.

Sauriez-vous programmer des commandes qui feront sortir les billes du plateau par le trou en bas à droite ?

Oui !

Tonneaux

Ce problème est le dernier du premier chapitre du parcours de progression.

On dispose de deux tonneaux vides non gradués, et des commandes suivantes :

  • remplir(3) et remplir(5) pour remplir un des deux tonneaux à ras bord ;
  • vider(3) et vider(5) pour vider complètement un des deux tonneaux ;
  • transvaser(3, 5) et transvaser(5, 3) pour transvaser l'eau d'un tonneau dans l'autre, jusqu'à ce que le premier soit vide ou que le second soit plein.

Sauriez-vous écrire un programme qui permet d'obtenir exactement 4 litres dans le tonneau de 5 litres ?

Oui !

Blocs de pierre

Ce problème est le premier de la deuxième présélection du concours Algoréa 2013.

Des blocs de pierre descendent du plafond, formant les six situations ci-contre, répétées en boucle.

Votre robot est tout à gauche, et doit passer de l'autre côté, en restant sur la ligne du bas. Entre une étape et la suivante, il peut avancer d'une case, reculer d'une case, ou attendre. Vous pouvez le programmer avec les commandes suivantes :

  • avance(n) pour avancer pendant n étapes ;
  • recule(n) pour reculer pendant n étapes ;
  • attends(n) pour attendre pendant n étapes.

Par exemple, si la première instruction est avance(1), le robot se retrouve écrasé par la première pierre.

Sauriez-vous trouver la plus courte suite d'instructions permettant au robot de traverser sain et sauf ?

Oui !