Leçon 6:

Création d'un sous-programme

Pourquoi des sous-programmes ?

En général, un programme est écrit pour résoudre un problème qui peut être très complexe. On commence donc habituellement par analyser le problème posé et on le divise en problèmes plus simples et donc plus faciles à résoudre. C'est un des principes de base de la programmation: diviser pour régner. Les sous-programmes permettent ainsi de décomposer un programme en plusieurs parties. Par ailleurs, un même sous-programme peut être utilisé à plusieurs reprises, ceci évitant de réécrire plusieurs fois le même code.

Les sous-programmes sont disponibles à partir du niveau 2. Le niveau est affiché dans la palette d'outil. Si vous êtes au niveau 1, passez au niveau 2 en utilisant le menu Configuration > Niveau.

Créer un sous-programme

Avant de créer un sous-programme, vous devez avoir un nouveau programme vide. Si ce n'est pas le cas, fermez la fenêtre Programme et choisissez le menu Fichier > Nouveau programme.
Pour créer un sous-programme, choisissez le menu Programmation > Nouveau sous-programme. Le sous-programme est maintenant affiché dans la fenêtre programme à la place du programme principal.
Chaque sous-programme est identifié par un nom que vous lui attribuez. Par défaut, quand le sous-programme est créé, il reçoit le nom SousProgramme1. Remplacez ce nom par SeTournerVersLaGauche.

Un nom de sous-programme est formé de lettres et de chiffres sans espaces, doit commencer par une lettre et contenir au maximum 32 caractères. Il doit être différent des mots-clef du langage du robot. Les lettres majuscules et minuscules sont considérées comme étant identiques.

Copiez-collez l'organigramme SOrienterAGauche que vous avez construit à la leçon 5 dans le sous-programme SeTournerVersLaGauche.

Affichage du programme principal et des sous-programmes

Appeler un sous-programme

Pour qu'un sous-programme soit exécuté, il faut l'appeler à partir du programme principal ou bien d'un autre sous-programme. Ceci se réalise avec une instruction d'appel qui figure dans un bloc d'appel de sous-programme .

Pour tester l'exécution du sous-programme SeTournerVersLaGauche, vous aller écrire le programme principal contenant l'appel du sous-programme. Affichez le programme principal et construisez l'organigramme suivant:


Déroulement de l'exécution

L'exécution d'un appel de sous-programme provoque le passage à l'exécution du bloc début du sous-programme, puis le sous-programme est exécuté jusqu'à son bloc fin, et ensuite l'exécution se poursuit dans le programme appelant au bloc qui suit le bloc d'appel de sous-programme.


Ajoutez et faites exécuter un nouveau sous-programme de nom SeTournerVersLaDroite.

Conseil: Copiez-collez l'organigramme de SeTournerVersLaGauche et modifiez-le.

Ecrivez un programme qui déplace le robot sur la case centrale du terrain, de coordonnées (5,5). Vous utiliserez le terrain Terrain9x9SansObstacles défini à la leçon 3. Ce programme doit fonctionner correctement quelles que soient la position et l'orientation initiales du robot.
Vous écrirez pour cela les 6 sous-programmes SeTournerVersLaDroite, SeTournerVersLaGauche, SeTournerVersLAvant, SeTournerVersLArriere, AllerALigneCentrale, AllerAColonneCentrale.


Zone pour malvoyants

Ecrivez un programme qui déplace le robot sur la case centrale du terrain, de coordonnées (5,5). Vous utiliserez le terrain 9x9 sans obstacles. Ce programme doit fonctionner correctement quelles que soient la position et l'orientation initiales du robot.
Vous écrirez pour cela les 6 sous-programmes SeTournerVersLaDroite, SeTournerVersLaGauche, SeTournerVersLAvant, SeTournerVersLArriere, AllerALigneCentrale, AllerAColonneCentrale.