Aller au contenu

Algorithmique et programmation — cours de 5e

Algorithme et programme, L'environnement Scratch, Événements, Instructions de mouvement et d'apparence Lecture ≈ 5 min.

1. Algorithme et programme

Définition

Un algorithme est une suite finie d'instructions précises, exécutées dans un ordre donné, permettant de résoudre un problème ou d'accomplir une tâche.

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.

Exemple un algorithme de la vie courante

Recette : « Casser 3 œufs dans un bol. Battre les œufs. Verser dans la poêle chaude. Attendre 2 minutes. Servir. » L'ordre des instructions compte : on ne peut pas battre les œufs avant de les casser !

2. L'environnement Scratch

Définition
  • La scène est la zone où les lutins (personnages, objets) se déplacent et s'affichent. Elle est repérée par des coordonnées : x de −240 à 240, y de −180 à 180, avec l'origine (0 ; 0) au centre.
  • Un script est un assemblage de blocs qui décrit ce que fait un lutin.
  • Les blocs sont classés par catégories : Mouvement, Apparence, Son, Événements, Contrôle, Capteurs, Opérateurs, Variables.

3. Événements

Définition

Un événement est ce qui déclenche l'exécution d'un script. Les blocs d'événements sont des « chapeaux » placés en haut du script.

  • quand le drapeau vert est cliqué
  • quand la touche [espace] est pressée
  • quand ce lutin est cliqué
  • quand je reçois [message]

4. Instructions de mouvement et d'apparence

Exemple blocs courants
  • avancer de (10) pas — déplace le lutin dans sa direction.
  • tourner de (90) degrés
  • aller à x: (0) y: (0) — place le lutin aux coordonnées données.
  • s'orienter à (90) — 90 = vers la droite, 0 = vers le haut, −90 = vers la gauche, 180 = vers le bas.
  • stylo en position d'écriture / relever le stylo — pour tracer des figures.
  • dire [Bonjour] pendant (2) secondes
  • attendre (1) secondes

5. Boucles

Définition

Une boucle permet de répéter plusieurs fois un groupe d'instructions sans avoir à les réécrire.

  • répéter (n) fois { ... } : répète un nombre fixé de fois.
  • répéter indéfiniment { ... } : répète sans fin (jusqu'à l'arrêt du programme).
  • répéter jusqu'à < condition > { ... } : répète jusqu'à ce que la condition devienne vraie.
Exemple tracer un carré de côté 100
quand le drapeau vert est cliqué
effacer tout
aller à x: (-50) y: (-50)
s'orienter à (90)
stylo en position d'écriture
répéter (4) fois
    avancer de (100) pas
    tourner de (90) degrés
fin répéter
relever le stylo

La boucle exécute 4 fois « avancer puis tourner ». Sans boucle, il aurait fallu écrire ces deux instructions 4 fois.

Exemple tracer un triangle équilatéral ou un polygone régulier

Pour un triangle équilatéral, on tourne de 120° à chaque sommet (360 ÷ 3). Pour un polygone régulier à n côtés, on répète n fois : avancer de (L) pas puis tourner de (360 / n) degrés. L'angle de rotation est l'angle extérieur, pas l'angle intérieur.

6. Variables

Définition

Une variable est une « boîte » nommée dans laquelle le programme range une valeur (un nombre ou un texte). Cette valeur peut changer au cours de l'exécution.

  • mettre [score] à (0) : donne une valeur à la variable.
  • ajouter (1) à [score] : augmente la valeur de la variable.
  • Le bloc arrondi (score) permet d'utiliser la valeur dans un calcul ou un test.
Exemple compteur
quand le drapeau vert est cliqué
mettre [compteur] à (0)
répéter (10) fois
    ajouter (1) à [compteur]
    dire (compteur) pendant (0.5) secondes
fin répéter

Le lutin affiche successivement 1, 2, 3, ..., 10.

Exemple programme de calcul

Traduire le programme « Choisir un nombre, le multiplier par 3, ajouter 5 » :

quand le drapeau vert est cliqué
demander [Choisis un nombre] et attendre
mettre [nombre] à (réponse)
mettre [résultat] à ((nombre) * (3) + (5))
dire (résultat)

Si l'utilisateur tape 4, le lutin affiche 17. C'est l'expression littérale 3x + 5 du chapitre 4.

7. Conditions (instructions conditionnelles)

Définition

Une instruction conditionnelle permet d'exécuter des instructions seulement si une condition est vraie.

  • si < condition > alors { ... }
  • si < condition > alors { ... } sinon { ... }

Une condition est une expression qui est soit vraie soit fausse : < (score) > (10) >, < touche [espace] pressée ? >, < couleur [rouge] touchée ? >, < (réponse) = (17) >. On peut combiner des conditions avec et, ou, non.

Exemple pair ou impair
quand le drapeau vert est cliqué
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 si

Le bloc modulo donne le reste de la division euclidienne : 14 modulo 2 = 0 (pair), 15 modulo 2 = 1 (impair).

Exemple jeu : deviner un nombre
quand le drapeau vert est cliqué
mettre [secret] à (nombre aléatoire entre (1) et (20))
mettre [essais] à (0)
demander [Devine le nombre entre 1 et 20] et attendre
ajouter (1) à [essais]
répéter jusqu'à < (réponse) = (secret) >
    si < (réponse) < (secret) > alors
        dire [Trop petit !] pendant (1) secondes
    sinon
        dire [Trop grand !] pendant (1) secondes
    fin si
    demander [Devine le nombre entre 1 et 20] et attendre
    ajouter (1) à [essais]
fin répéter
dire (regrouper [Bravo ! Essais : ] (essais))

Ce script utilise une variable (secret, essais), une boucle (répéter jusqu'à) et des conditions (si... sinon).

8. Déplacement et interaction

Exemple déplacer un lutin avec les flèches
quand la touche [flèche droite] est pressée
    s'orienter à (90)
    avancer de (10) pas

quand la touche [flèche gauche] est pressée
    s'orienter à (-90)
    avancer de (10) pas

Chaque script est déclenché par un événement différent. On peut aussi écrire un seul script avec répéter indéfiniment et des tests si < touche [flèche droite] pressée ? > alors.

9. Lire et corriger un script

Méthode comprendre ce que fait un script
  1. Repérer l'événement déclencheur.
  2. Exécuter les instructions une à une « à la main », en notant la valeur des variables à chaque étape (on peut faire un tableau).
  3. Pour une boucle, compter le nombre de répétitions et ce qui change à chaque tour.
Exemple
mettre [a] à (2)
répéter (3) fois
    mettre [a] à ((a) * (2))
fin répéter
dire (a)
ÉtapeValeur de a
Départ2
Après le tour 14
Après le tour 28
Après le tour 316

Le lutin dit 16.