Algorithmique et programmation — cours de 4e
Algorithme et programme, Variables, Boucles, Conditions (instructions conditionnelles) Lecture ≈ 4 min.
1. Algorithme et programme
DéfinitionUn algorithme est une suite finie d'instructions, précises et ordonnées, permettant de résoudre un problème ou d'accomplir une tâche (comme une recette de cuisine). Un programme est la traduction d'un algorithme dans un langage compréhensible par un ordinateur. Au collège, on utilise le langage par blocs Scratch.
Propriété (structure d'un programme Scratch)Un script commence par un événement déclencheur (« quand le drapeau vert est cliqué », « quand la touche espace est pressée », « quand ce sprite est cliqué »). Les instructions s'exécutent ensuite dans l'ordre, de haut en bas (séquence).
2. Variables
DéfinitionUne variable est une « boîte » nommée dans laquelle on stocke une valeur (un nombre ou un texte) qui peut changer au cours de l'exécution du programme. On peut :
- la créer (catégorie « Variables », bouton « Créer une variable ») ;
- l'initialiser :
mettre [score] à (0); - la modifier :
ajouter (1) à [score](ajoute 1 à la valeur actuelle) ; - l'utiliser dans un calcul ou un affichage :
dire (score).
Exemple (programme de calcul)« Choisir un nombre, le multiplier par 3, ajouter 5, puis multiplier le résultat par 2. »
quand le drapeau vert est cliqué demander [Choisis un nombre] et attendre mettre [nombre] à (réponse) mettre [résultat] à ((((nombre) * (3)) + (5)) * (2)) dire (regrouper [Le résultat est ] (résultat))Avec le calcul littéral, ce programme calcule 2(3x + 5) = 6x + 10. Si l'utilisateur répond 4, le programme affiche 34.
3. Boucles
DéfinitionUne boucle permet de répéter plusieurs fois un groupe d'instructions. Scratch propose :
répéter (10) fois: répétition un nombre de fois connu à l'avance ;répéter indéfiniment: répétition sans fin (jusqu'à l'arrêt du programme) ;répéter jusqu'à < condition >: répétition tant que la condition est fausse.
Exemple (tracer un carré)
quand le drapeau vert est cliqué
effacer tout
stylo en position d'écriture
répéter (4) fois
avancer de (100)
tourner ↻ de (90) degrés
fin
Pour un polygone régulier à n côtés, on répète n fois « avancer, tourner de 360n degrés ». Exemple : triangle équilatéral : répéter 3 fois, tourner de 120°. Hexagone : répéter 6 fois, tourner de 60°.Exemple (somme des entiers de 1 à 100)
mettre [somme] à (0)
mettre [i] à (1)
répéter (100) fois
ajouter (i) à [somme]
ajouter (1) à [i]
fin
dire (somme)
Le programme affiche 5050.4. Conditions (instructions conditionnelles)
DéfinitionUne instruction conditionnelle permet d'exécuter des instructions seulement si une condition est vraie. Une condition est une expression qui vaut « vrai » ou « faux » : comparaison (
<, =, >), test de touche pressée, contact avec une couleur... On peut combiner des conditions avec et, ou, non.
si < condition > alors ... finsi < condition > alors ... sinon ... fin
Exemple (jeu du nombre mystère)L'ordinateur choisit un nombre au hasard entre 1 et 100, le joueur doit le deviner.
quand le drapeau vert est cliqué
mettre [mystère] à (nombre aléatoire entre (1) et (100))
mettre [essais] à (0)
répéter jusqu'à < (réponse) = (mystère) >
demander [Quel est le nombre ?] et attendre
ajouter (1) à [essais]
si < (réponse) < (mystère) > alors
dire [Trop petit !] pendant (2) secondes
sinon
si < (réponse) > (mystère) > alors
dire [Trop grand !] pendant (2) secondes
fin
fin
fin
dire (regrouper [Bravo ! Trouvé en ] (regrouper (essais) [ essais.]))
Exemple (test de parité)
demander [Entre un nombre entier] et attendre
si < ((réponse) modulo (2)) = (0) > alors
dire [Ce nombre est pair.]
sinon
dire [Ce nombre est impair.]
fin
L'opérateur modulo donne le reste de la division euclidienne : 17 modulo 2 = 1, 24 modulo 2 = 0.5. Procédures : blocs personnalisés
DéfinitionUn bloc personnalisé (ou procédure) est un nouveau bloc créé par le programmeur (catégorie « Mes Blocs », bouton « Créer un bloc ») qui regroupe une suite d'instructions. Il peut avoir des paramètres (des valeurs d'entrée). Il permet de :
- ne pas réécrire plusieurs fois le même code ;
- rendre le programme plus lisible en le découpant en tâches ;
- réutiliser une tâche avec des valeurs différentes, sans la réécrire.
Exemple (bloc « carré » avec paramètre)
définir carré (côté)
répéter (4) fois
avancer de (côté)
tourner ↻ de (90) degrés
fin
Utilisation dans le script principal pour dessiner une frise de carrés :
quand le drapeau vert est cliqué
effacer tout
aller à x: (-200) y: (0)
stylo en position d'écriture
répéter (5) fois
carré (40)
relever le stylo
avancer de (60)
stylo en position d'écriture
fin
On obtient 5 carrés de côté 40 alignés, espacés de 20 : c'est une frise obtenue par translation.Exemple (bloc « polygone » à deux paramètres)
définir polygone (n) (longueur)
répéter (n) fois
avancer de (longueur)
tourner ↻ de ((360) / (n)) degrés
fin
polygone (3) (80) trace un triangle équilatéral, polygone (8) (30) un octogone. En appelant polygone (6) (50) puis en tournant de 60° et en recommençant 6 fois, on obtient une rosace (rotation).6. Lire et corriger un programme
MéthodePour comprendre ce que fait un programme, on l'exécute « à la main » avec un tableau d'état des variables : une colonne par variable, une ligne par étape.
ExempleQue fait ce script ?
Le script affiche 19.
mettre [a] à (5)
mettre [b] à (2)
répéter (3) fois
mettre [a] à ((a) + (b))
mettre [b] à ((b) * (2))
fin
dire (a)
| Étape | a | b |
|---|---|---|
| Départ | 5 | 2 |
| Tour 1 | 7 | 4 |
| Tour 2 | 11 | 8 |
| Tour 3 | 19 | 16 |