Séance 4 : Définir des dessins dynamiques avec POUR Nom :Paramètre
Bienvenue dans l'étape ultime de la modularité sur monirpro.com : les procédures avec paramètres. Jusqu'à présent, vos procédures exécutaient toujours la même tâche. Grâce aux paramètres, vous allez apprendre à créer des commandes flexibles. Imaginez une procédure capable de dessiner un carré, mais dont vous choisissez la taille au moment de l'appel. En ajoutant des variables d'entrée (comme :C pour le côté), vous passez de la simple répétition à la véritable conception logicielle. Cette compétence est fondamentale car elle permet de résoudre des problèmes complexes avec un minimum de code, tout en offrant une liberté de création infinie à la tortue.
I. Les Données et la Nécessité des Paramètres
Rappelons la différence entre l'action et la donnée nécessaire à l'action.
Activité 1 : Identifier la Donnée
Pour la commande AVANCE, quelle est l'information (la **donnée**) que l'on doit obligatoirement indiquer pour que l'action soit exécutée ?
A) Le nombre de pas B) Le temps de calculC) Le nom de la tortue
Objectif : Faire comprendre que la structure du carré ne change pas, seule la mesure change.
Question 1 : Écrivez le programme Logo pour dessiner un carré de côté 40 unités.
POUR carre40
repete 4 [av 40 td 360/4]
FIN
Question 2 : Écrivez le programme Logo pour dessiner un carré de côté 70 unités.
POUR carre70
repete 4 [av 70 td 360/4]
FIN
Question 3 : Et pour un très grand carré de côté 120 unités ?
POUR carre120
repete 4 [av 120 td 360/4]
FIN
Étape 2 : L'analyse (Le problème)
Question de réflexion : Regardez vos trois programmes ci-dessus. Qu’est-ce qui reste identique à chaque fois ? Qu’est-ce qui change ?
💡 Si je vous demande de dessiner 100 carrés de tailles différentes, est-ce pratique de créer 100 programmes ?
Étape 3 : La généralisation (Le programme universel)
La Question Défi : Qui peut me donner un programme unique, qui permet de dessiner n'importe quel carré en choisissant simplement la taille au moment de l'exécution ?
POUR CARRE :COTE
REPETE 4 [ AV :COTE TD 360/4 ]
FIN
Activité 3 : Procédure Simple vs Paramétrée
La procédure POUR CARRE (ancienne version) ne dessinait qu'un seul type de carré. La procédure POUR CARRE :COTE peut dessiner plusieurs carrés. Comment appelle-t-on ce type de procédure ?
A) Procédure SimpleB) Procédure InterneC) Procédure Paramétrée
Statut : 0 / 4 activités tentées.
II. Les Procédures Paramétrées
Les procédures paramétrées sont des primitives LOGO définies par l'utilisateur et qui nécessitent de leur fournir des données quand on essaie de les exécuter. Elles sont la clé pour rendre vos programmes flexibles et réutilisables.
1. Définition et Syntaxe
Pour définir une procédure paramétrée, vous ajoutez les paramètres (noms des données attendues) après le nom de la procédure, chacun précédé du symbole deux-points (:).
POUR CARRE :COTE
REPETE 4 [ AV :COTE TD 90 ]
FIN
**Règles Importantes :**
On ne laisse pas d'espace entre le deux-points (:) et le nom du paramètre (COTE).
Le nom du paramètre est utilisé comme une variable à l'intérieur de la procédure (AV :COTE).
Les noms des variables (paramètres) doivent être significatifs et doivent commencer par une lettre ou un souligné (_).
2. Exécution d'une Procédure Paramétrée
Pour exécuter la procédure, il faut fournir la valeur de la donnée (le nombre de pas, le nom, etc.) immédiatement après le nom de la procédure.
Exemple du Carré :
CARRE 10 # Trace un carré de côté 10
CARRE 50 # Trace un carré de côté 50
CARRE 100 # Trace un carré de côté 100
Exemple avec du Texte :
POUR SALUER :NOM
ECRIS "Bienvenue
ECRIS :NOM
FIN
# Exécution :
SALUER "Marie
# Affiche : Bienvenue
# Affiche : Marie
III. Exercices Interactifs sur la Syntaxe
Vérifiez votre compréhension de la syntaxe des procédures paramétrées et de l'appel de données.
Exercice 1 : Syntaxe de Définition Correcte
Quelle ligne de code définit correctement une procédure nommée LIGNE qui prend la longueur L comme paramètre ?
A) POUR LIGNE "LB) POUR LIGNE :LC) DONNE "L 100
Exercice 2 : Utilisation Correcte du Paramètre
La procédure POUR CARRE :C est définie. Quelle est l'instruction correcte pour faire avancer la tortue de la longueur du côté ?
A) AV CB) AV "CC) AV :C
Exercice 3 : Appel Correct de Procédure
Pour exécuter la procédure POUR RECTANGLE :L :l, quelle est la commande d'appel correcte pour un rectangle de L=80 et l=30 ?
A) RECTANGLE 80 30B) RECTANGLE :80 :30C) DONNE "L 80 DONNE "l 30 RECTANGLE
Exercice 4 : Rôle du Deux-Points (:)
Quel est le rôle du symbole deux-points (:) devant le mot COTE dans le corps de la procédure (AV :COTE) ?
A) Définir la variableB) Lire la valeur stockée dans la variable/paramètreC) Indiquer une chaîne de caractères (texte)
Exercice 5 : Conséquence de l'Oubli
Si vous exécutez CARRE sans donner de paramètre, alors que la procédure est définie POUR CARRE :COTE, que se passe-t-il ?
A) LOGO renvoie un message d'erreur : CARRE a besoin d'un argument.B) La tortue trace un carré de taille 1.C) LOGO demande la valeur du paramètre dans la console.
Statut : 0 / 5 exercices interactifs tentés.
IV. Problèmes de Dessin (Procédures Paramétrées)
Créez les procédures demandées pour rendre vos dessins dynamiques et ajustables.
Problème 1 : Rectangle Variable
Écrivez la procédure POUR RECTANGLE :L :l qui dessine un rectangle. :L est la grande longueur et :l est la petite largeur.
Problème 2 : Polygone Général
Créez la procédure POUR POLY :N :C qui dessine n'importe quel polygone régulier. :N est le nombre de côtés et :C est la longueur du côté.
Rappel : L'angle de rotation est 360 / :N.
Problème 3 : Ligne de Points
Écrivez une procédure POUR POINTS :NB qui trace une ligne composée de :NB points (petits segments de 1) espacés de 5 pas.
Utilisez REPETE :NB [...].
Problème 4 : Spirale Paramétrée
Écrivez une procédure POUR SPIRALE :N qui utilise la commande REPETE :N [AV ... TD 90] pour dessiner une spirale. La longueur du segment doit augmenter de 5 à chaque itération (Astuce : utilisez une variable DONNE "C :C + 5).
Problème 5 : Maison Paramétrée
Utilisez les procédures CARRE :T et TRIANGLE :T pour créer la procédure POUR MAISON :T qui dessine une maison complète. Le côté du carré et du triangle doivent tous deux utiliser le paramètre :T pour être de la même taille.
Assurez-vous que le triangle se pose bien sur le carré (rotation avant de tracer le triangle).
Corrections des Problèmes de Dessin
Problème 1 : Correction RECTANGLE
POUR RECTANGLE :L :l
REPETE 2 [
AV :L TD 90
AV :l TD 90
]
FIN
# Appel :
RECTANGLE 120 50
Problème 2 : Correction POLYGONE
POUR POLY :N :C
DONNE "ANGLE 360 / :N
REPETE :N [
AV :C
TD :ANGLE
]
FIN
# Appels :
POLY 6 70 # Hexagone
POLY 8 30 # Octogone
Problème 3 : Correction LIGNE DE POINTS
POUR POINTS :NB
REPETE :NB [
AV 1
LC # Lève crayon
AV 5
BC # Baisse crayon
]
FIN
# Appel :
POINTS 15
Problème 4 : Correction SPIRALE PARAMÉTRÉE
POUR SPIRALE :N
DONNE "C 5
REPETE :N [
AV :C
TD 90
DONNE "C :C + 5 # Augmente la longueur du côté
]
FIN
# Appel :
SPIRALE 20
Problème 5 : Correction MAISON PARAMÉTRÉE
POUR MAISON :T
# 1. Dessiner le carré (les murs de la maison)
REPETE 4 [ AV :T TD 90 ]
# 2. Se placer en haut du carré pour dessiner le toit
TD 90
AV :T
TG 90
# 3. Dessiner le triangle (le toit)
REPETE 3 [ AV :T TD 120 ]
FIN
# Appel de la procédure
MAISON 80
💡 L'art de la paramétrisation sur monirpro.com :
Universalité du Code : Une procédure paramétrée est un outil universel. Au lieu d'écrire "CARRE10" et "CARRE20", vous n'écrivez qu'une seule fois "CARRE :C". C'est le principe DRY (Don't Repeat Yourself), un standard de qualité absolue chez les développeurs professionnels.
Interaction et Dynamisme : Les paramètres permettent de lier les différentes parties de votre programme. Vous pouvez utiliser le résultat d'un calcul pour définir la valeur d'un paramètre, créant ainsi des figures géométriques proportionnelles et harmonieuses sans intervention manuelle répétitive.
Débogage Facilité : En centralisant la logique dans une procédure paramétrée, vous facilitez la maintenance de vos scripts. Si une erreur de calcul survient, vous ne la corrigez qu'à un seul endroit, et tous les appels à cette procédure sur votre plateforme monirpro.com seront automatiquement mis à jour.
Transition vers les Langages Modernes : La compréhension des arguments et des paramètres en Logo est la passerelle directe vers les fonctions en JavaScript ou Python. En maîtrisant ces concepts aujourd'hui, vous construisez les fondations solides de votre futur profil de développeur web ou d'ingénieur logiciel.