Vous êtes sur la page 1sur 6

Algorithmes et Programmation Structurée

SOMMAIRE

....................................................................................LES AUTOMATES ET LES LABYRINTHES :


...............................................................................................................................................................................2
OBJECTIFS :............................................................................................................................................................2
PRÉSENTATION DU JEU :........................................................................................................................................2
Le cadre :..........................................................................................................................................................2
L’automate :......................................................................................................................................................2
1ER EXERCICE AUTOMATE SIMPLE :........................................................................................................................2
Description de l’automate :..............................................................................................................................2
Réalisation :......................................................................................................................................................3
2ÈME TEMPS – AUTOMATE ÉVOLUÉ :.......................................................................................................................3
Description de l’automate :............................................................................................................................31
Réalisation :....................................................................................................................................................41
3ÈME TEMPS – OPTIMISATION :.................................................................................................................................4
Réalisation :....................................................................................................................................................14

Cour Animé par Rahmouni Oussama 1


Algorithmes et Programmation Structurée

ALGORITHMES ET PROGRAMMATION
STRUCTUREE

Les automates et les labyrinthes :

Objectifs :
- Définir et distinguer les notions de programme et d’algorithme
- Présenter le scénario de conception d’un programme :
 Stratégie
 Algorithme
 Codage
 Validation

Présentation du jeu :
Le cadre :
Les automates évoluent sur un plateau constitué de cases carrés. Ces cases peuvent
contenir soit un mur, soit un passage. Deux cases de passage ont un rôle particulier : elles
définissent l’entrée et la sortie du labyrinthe.

L’automate :
Il est composé de plusieurs éléments :
- Le système mobile : C’est à dire un moteur qui lui permet de bouger. Les
mouvements possibles se résument à quelques actions élémentaires :
 Avancer d’un pas (une case de labyrinthe).
 Tourner d’un quart de tour.
 Détecter la présence d’un mur devant lui.
- Le système de programmation : Celui-ci permet de mémoriser 25 instructions
numérotées de 00 à 24. Les instructions utilisables seront précisées dans chacun
des exercices. La programmation se fait à partir d’un panneau de commande situé
sur l’automate.

1er exercice automate simple :


Pour cet exercice, se placer en Niveau 1. Le choix du niveau se fait pas l’option
« Commandes … » du menu « Options ».

Description de l’automate :
Cet automate peut faire 2 actions physiques :
1. Faire un pas en avant pour aller sur la case suivante.
2. Tourner sur lui-même d’un quart de tour à droite.
Dans cet exercice, l’action « Détecter un mur » n’existe pas.
Il réalise ces actions dans un ordre indiqué (comme une machine à laver). Pour cela il
possède une mémoire dans laquelle on lui indique l’ordre (instruction) des actions à effectuer
de manière codée. Cette mémoire peut contenir 25 ordres successifs, numérotés de 00 à 24.

Cour Animé par Rahmouni Oussama 2


Algorithmes et Programmation Structurée

L’automate exécute les ordres séquentiellement (les uns à la suite des autres dans l’ordre
indiqué).
Voici les instructions qui correspondent respectivement à ces actions :
- A- Quand cette instruction est exécutée, l’automate avance d’un pas devant lui. Si
le chemin n’est pas libre (présence d’un mur), le programme est interrompu. Le
programme et également interrompu si la sortie ou l’entrée détectée.
- D- Quand cette instruction est exécute, l’automate effectue un quart de tour vers la
droite.

Réalisation :
Il s’agit de programmer cet automate pour essayer de lui faire parcourir d’abord le
labyrinthe n°1 (Fichier LAB1.LAB), puis la labyrinthe n°2 (Fichier LAB2.LAB), et enfin la
labyrinthe n°3 (Fichier LAB3.LAB).
A partir de ces exemples, essayer de définir ce qu’est un programme en faisant
ressortir ses possibilités et ses limites.

2ème temps – Automate évolué :


Pour cet exercice, se placer en Niveau 3. La choix du niveau se fait par l’option
« Commandes .. » du menu « Options ».

Description de l’automate :
Cet automate a les mêmes caractéristique que l’automate simple. Cependant il peut
effectuer 1 action supplémentaire :
- Détecter la présence d’un mur devant lui.
Pour lui faire effectuer ces actions, on dispose de 4 instructions :
- A- Quand cette instruction est exécutée, l’automate avance d’un pas devant lui. Si
le chemin n’est pas libre (présence d’un mur), le programme est interrompu. Le
programme est également interrompu si la sortie ou l’entrée est détectée.
- D- Quand cette instruction est exécutée, l’automate effectue un quart de tour vers
la droite.
- M (O, N)- Après l’exécution de cette instruction, l’automate tend la main devant
lui pour détecter le présence d’un mur, une lampe est allumée en rouge su un mur a
été détecté, en vert si le chemin est libre. La lampe conserve sa couleur jusqu’à la
prochaine instruction M (O, N).
- E (xx, yy)- L’exécution de cette instruction produit un branchement conditionnel à
l’instruction N° xx si la lampe est rouge, à l’instruction N° yy si la lampe est verte.
xx et yy varient entre 00 et 24.
Ainsi l’automate évolué exécute, lui aussi, les ordres séquentiellement, mais un ordre
particulier (instruction E) peut provoquer un débranchement à une instruction autre que la
suivante. L’automate exécute alors les ordres suivantes dans la nouvelle séquence.

Remarque :
L’instruction E dépend normalement du résultat d’un instruction M exécutée
précédemment.
On peut cependant rendre l’instruction E indépendante en indiquant la même valeur
pour xx et yy. Exemple : E (00, 00) demande à l’automate de reprendre les ordres à partir du
1er (que la lampe soit verte ou rouge).

Cour Animé par Rahmouni Oussama 3


Algorithmes et Programmation Structurée

Réalisation :
Il faut programmer cet automate pour qu’il traverse le labyrinthe n°3 (Fichier
LAB3.LAB) puis le labyrinthe n°4 (LAB4.LAB). Le programme doit être indépendant du
labyrinthe.
Pour cela nous vous suggérons cette démarche :

Stratégie :
Il s’agit de trouver comment faire pour sortir à coup sûr du labyrinthe. Une idée pour
vous mettre sur la voie (de la sortie évidemment), posez vous les questions : Est-il important
de voir claire ? Un non-voyant peut-il trouver la sortie ?

Algorithme :
Il s’agit de trouver en juxtaposant les actions possibles que peut effectuer l’automate la
séquence qui lui permette de suivre la stratégie décrite auparavant. Les actions possibles sont :
- Avancer d’une case.
- Tourner d’un quart de tour sur lui-même vers la droite.
- Détecter la présence d’un mur.

Codage :
Il s’agit ici de coder les actions énumérées avec les instructions disponibles :
- A
- D
- M (O, N)
- E (xx, yy)

Validation :
Le programme étant codé et programmé sur le panneau de commande, il faut en lancer
l’exécution. Si l’automate parvient à la sortie, il y a des chances pour que le programme soit
correct. Essayez-le alors sur d’autres labyrinthes.
A partir de ces exemples, essayer de définir ce qu’est un algorithme ou programme
algorithmique en faisant ressortir ses avantages et ses inconvénients. Bien distinguer les
étapes qui aboutissent au programme.

3ème temps – optimisation :


L’optimisation d’un programme peut avoir deux objectifs :
- Rapidité d’exécution : Il faut que le nombre d’ordres exécutés par
l’automate pur trouver la sortie soit le plus petit possible.
- Faible occupation mémoire : Il faut que le nombre d’ordres écrits, c’est à
dire nombre de cases de mémoires occupées, soit le plus petit possible.

Réalisation :
Il est probable que votre programme ne soit pas la version la plus optimisée pour
répondre à ces objectifs :
- Essayer de trouver la stratégie qui permette d’arriver à la sortie le plus vite
possible.
- Essayer de trouver un algorithme qu’il soit possible de traduire avec un nombre
réduit d’instruction (il existe une version qui tient en 6 instructions : 00 à 05)

Remarque :

Cour Animé par Rahmouni Oussama 4


Algorithmes et Programmation Structurée

En informatique, l’optimisation dans les termes décrits ici, n’appartient plus au


programmeur. Il existe de nombreux langages évolués et ceux-ci sont de plus en plus éloignés
du langage de la machine. Aussi, la vitesse d’exécution et le nombre d’instructions
élémentaires générés dépendent du langage utilisé. Ce sont deux critères qui sont actuellement
utilisés pour mesurer l’efficacité des langages.

Cour Animé par Rahmouni Oussama 5


Algorithmes et Programmation Structurée

Solution :

Les labyrinthes de 1 à 2

Exécution simple avec utilisation de A et D.

Labyrinthe 3 :

00: A
01: M(0,N)
02: E(03,06)
03: D
04: M(0,N)
05: E(09,06)
06: A
07: M(0,N)
08: E(03,06)
09: D
10: D
11: M(0,N)
12: E(13,06)

Tout labyrinthe possible :

00: A
01: D
02: M(0,N)
03: E(04,00)
04: D
05: D
06: D
07: M(0,N)
08: E(09,00)
09: D
10: D
11: D
12: M(0,N)
13: E(01,00)

Cour Animé par Rahmouni Oussama 6

Vous aimerez peut-être aussi