Algorithmique et Scratch en 4ème : cours complet
En quatrième, tu approfondis Scratch avec des boucles imbriquées, des conditions multiples, des fonctions (blocs personnalisés) et tu commences à programmer des jeux complets. Tu te rapproches de la programmation « classique ».
Rappels — Algorithme et programmation
Un algorithme est une suite ordonnée d'instructions pour résoudre un problème. Un programme est la traduction de cet algorithme dans un langage de programmation (Scratch, Python, etc.).
Variables
Types de variables
- Numériques : score, vies, temps, position.
- Texte (chaînes de caractères) : nom du joueur, message.
- Booléennes : vrai / faux (par exemple, « game over »).
Opérations courantes
- Affecter une valeur :
mettre score à 0.
- Incrémenter :
ajouter 1 à score.
- Décrémenter :
ajouter -1 à vies (ou ajouter 1 à vies avec -1).
- Lire : utiliser le bloc variable directement.
Boucles
Boucle « répéter nn fois »
répéter 10 fois
avancer de 20 pas
tourner de 36 degrés
→ Dessine un décagone.
Boucle « répéter indéfiniment »
répéter indéfiniment
...
→ Tourne sans fin (utilisé pour les jeux, animations).
Boucle « répéter jusqu'à »
répéter jusqu'à ce que vies = 0
...
→ Tourne tant que la condition n'est pas remplie.
Boucles imbriquées
Une boucle à l'intérieur d'une autre boucle.
répéter 4 fois
répéter 6 fois
avancer de 60
tourner de 60 degrés
tourner de 90 degrés
→ Dessine une figure composée de plusieurs hexagones.
Conditions
Bloc « si … alors »
si touche le bord ? alors
rebondir
Bloc « si … alors … sinon »
si score > 100 alors
dire "Champion !"
sinon
dire "Continue à jouer."
Conditions multiples
On peut combiner avec et, ou, non :
si (score > 100) et (vies > 0) alors
...
si (touche [rouge] ?) ou (touche [vert] ?) alors
...
Les fonctions (blocs personnalisés)
Créer un bloc
Dans la catégorie Mes blocs, tu peux créer un bloc personnalisé (avec ou sans paramètres).
Exemple — Bloc dessiner polygone
définir dessiner polygone (côtés) (longueur)
répéter (côtés) fois
avancer de (longueur)
tourner de (360 / côtés) degrés
Ensuite, dans le programme principal, on appelle :
dessiner polygone (6) (50) → hexagone de côté 50
dessiner polygone (8) (40) → octogone de côté 40
Avantage
Les fonctions évitent la répétition de code et rendent le programme plus clair.
Programmes typiques
Programme 1 — Calculatrice simple
demander "Premier nombre :" et attendre
mettre a à réponse
demander "Deuxième nombre :" et attendre
mettre b à réponse
demander "Opération (+, -, *, /) :" et attendre
si réponse = "+" alors
dire (a + b)
si réponse = "-" alors
dire (a - b)
…
Programme 2 — Jeu de hasard
mettre cible à nombre aléatoire entre 1 et 100
répéter jusqu'à ce que essai = cible
demander "Devine le nombre :" et attendre
mettre essai à réponse
si essai < cible alors
dire "Plus grand !"
sinon
si essai > cible alors
dire "Plus petit !"
dire "Bravo, c'était bien" rejoint cible
Programme 3 — Pong simplifié
Deux lutins : une balle qui rebondit, une raquette contrôlée au clavier. Si la balle touche le bord du bas : « Game over ».
Algorithmes en pseudo-code
À partir de la 4ème, on commence à écrire en pseudo-code (texte naturel, indépendant du langage) :
Variables : score, choix
Début
score ← 0
Pour i de 1 à 10
Demander à l'utilisateur de choisir un nombre
Si choix = 7 alors
score ← score + 1
Fin Pour
Afficher score
Fin
Erreurs fréquentes à éviter
- Oublier d'initialiser une variable :
mettre score à 0 au début.
- Mal imbriquer les blocs : un bloc dans une boucle doit être glissé dans la boucle.
- Boucle infinie sans sortie : prévoir une condition d'arrêt.
- Mauvaise variable : vérifier le nom (sensible à la casse).
- Confondre
= (test) et ← (affectation) en pseudo-code.
FAQ — Algorithmique et Scratch en 4ème
Pourquoi écrire des fonctions ?
Pour réutiliser du code, éviter les répétitions, et rendre le programme plus lisible et plus court.
Qu'est-ce qu'une boucle imbriquée ?
C'est une boucle à l'intérieur d'une autre boucle. Très utile pour les motifs géométriques ou les tableaux.
À quoi sert le pseudo-code ?
À réfléchir à l'algorithme avant de coder, en s'affranchissant des détails d'un langage. Le même pseudo-code peut être codé en Scratch, Python, ou ailleurs.
Comment savoir si mon programme est bon ?
Tu le testes avec différentes entrées, y compris des cas limites (zéro, valeurs négatives, valeurs très grandes). Un bon programme fonctionne dans tous les cas prévus.