Variables, boucles, conditions, événements
Variables, boucles, conditions, événements
Un programme est une recette pour l'ordinateur : il range des valeurs dans des variables, répète des actions avec des boucles, choisit avec des conditions et réagit à des événements.
Objectifs
- Créer une variable, lui affecter une valeur et suivre son évolution dans un tableau.
- Utiliser une instruction conditionnelle « si… alors… sinon ».
- Utiliser une boucle « répéter n fois » et une boucle « répéter jusqu'à ».
- Déclencher des actions avec des événements (clic, touche, message).
- Tester un programme et corriger ses erreurs (déboguer).
Les exemples sont donnés en blocs (comme dans Scratch) et traduits en Python, les deux langages utilisés au collège.
1. Les variables
Notions clés
Une variable est une case de la mémoire de l'ordinateur qui porte un nom et contient une valeur (un nombre, un mot…). On peut la lire et la modifier pendant le programme.
Affecter une valeur, c'est la ranger dans la variable. En blocs : « mettre prix à 3500 ». En Python :
prix = 3500
quantite = 4
total = prix * quantite # total vaut 14000
quantite = quantite + 1 # quantite vaut maintenant 5
Exemple résolu 1 : suivre une variable
Quelle est la valeur finale de \(x\) après ce programme ?
x = 3
x = x + 2
x = x * 4
x = x - 5
Après « a = 7 », puis « b = a + 1 », puis « a = 2 », que vaut b ?
2. Les conditions
Notions clés
Une instruction conditionnelle exécute des instructions seulement si une condition est vraie. Une condition est une question à laquelle on répond par vrai ou faux, par exemple \(total \geq 10\,000\).
flowchart TD
A[Lire le total] --> B{total au moins 10000 ?}
B -->|Oui| C[total = total - 1000]
B -->|Non| D[Pas de reduction]
C --> E[Afficher le total]
D --> E
En blocs : « si … alors … sinon … ». En Python, les instructions du bloc sont décalées (indentées) :
total = 12500
if total >= 10000:
total = total - 1000
else:
print("Pas de réduction")
print(total) # affiche 11500
Les comparaisons utiles : égal à (en Python ==), différent de (!=), \(<\), \(>\), \(\leq\) (<=), \(\geq\) (>=). On peut combiner deux conditions avec et (and), ou (or).
Exemple résolu 2
Un programme lit la moyenne d'un élève. Si elle est supérieure ou égale à 10, il affiche « Admis » ; sinon « Ajourné ». Qu'affiche-t-il pour une moyenne de 9,5 ? Et de 10 ? Cherche d'abord.
Voir la solution
Pour 9,5 : la condition \(9{,}5 \geq 10\) est fausse, le programme passe dans « sinon » et affiche « Ajourné ».
Pour 10 : la condition \(10 \geq 10\) est vraie (« supérieur ou égal »), il affiche « Admis ».
Avec age = 15, qu'affiche : si age > 18 alors dire « Majeur » sinon dire « Mineur » ?
3. Les boucles
Boucle « répéter n fois »
On connaît à l'avance le nombre de répétitions. Exemple : dessiner un carré de côté 100 avec le lutin.
Tour 1 : le lutin avance de 100 puis tourne de 90°.
Tour 2 : mêmes instructions, il trace le deuxième côté.
Tour 3 : encore les mêmes instructions, troisième côté.
Tour 4 : le carré est fermé. Deux instructions répétées 4 fois remplacent huit lignes.
for i in range(4):
avancer(100)
tourner(90)
Exemple résolu 3 : une somme avec une boucle
s = 0
for i in range(1, 5): # i prend les valeurs 1, 2, 3, 4
s = s + i
print(s)
Boucle « répéter jusqu'à » (ou « tant que »)
On ne sait pas à l'avance combien de fois répéter : on s'arrête quand une condition devient vraie. En blocs : « répéter jusqu'à épargne ≥ 15 000 ». En Python, on écrit l'inverse avec while (« tant que épargne < 15 000 ») :
epargne = 0
semaines = 0
while epargne < 15000:
epargne = epargne + 2000
semaines = semaines + 1
print(semaines)
Kofi met 2 000 F CFA de côté chaque semaine pour s'acheter un ballon à 15 000 F. Combien de semaines affiche le programme ? Cherche d'abord.
Voir la solution
Après 7 semaines : \(7 \times 2\,000 = 14\,000\), encore inférieur à 15 000, la boucle continue. Après 8 semaines : \(16\,000\), la condition « épargne < 15 000 » devient fausse et la boucle s'arrête. Le programme affiche 8.
Combien de fois le lutin dit-il « Bonjour » avec : répéter 3 fois { répéter 2 fois { dire Bonjour } } ?
4. Les événements
Notions clés
Un événement est quelque chose qui se produit pendant que le programme tourne et qui déclenche un script : un clic sur le drapeau vert, l'appui sur une touche, un clic sur un lutin, la réception d'un message envoyé par un autre lutin.
- « Quand le drapeau vert est cliqué » : démarre le programme.
- « Quand la touche espace est pressée » : par exemple, le personnage saute.
- « Quand ce lutin est cliqué » : le lutin réagit.
- « Envoyer à tous [message] » et « Quand je reçois [message] » : un lutin prévient les autres.
Exemple résolu 4 : un petit jeu
On veut que le chat avance vers la droite quand on appuie sur la flèche droite et dise « Gagné ! » s'il touche le ballon. Quels scripts écrire ?
Lequel de ces blocs est un événement ?
5. Mettre au point un programme
Un programme a rarement raison du premier coup. Une erreur s'appelle un bogue ; la corriger, c'est déboguer.
flowchart LR A[Ecrire] --> B[Executer] B --> C[Comparer au resultat attendu] C -->|Different| D[Chercher et corriger] D --> B C -->|Correct| E[Programme pret]
Ce programme devait afficher la somme \(1 + 2 + 3 + 4 + 5 = 15\), mais affiche 10. Trouve le bogue.
s = 0
for i in range(1, 5):
s = s + i
print(s)
Voir la solution
range(1, 5) donne 1, 2, 3, 4 : la valeur 5 n'est jamais ajoutée. Il faut écrire range(1, 6). On obtient alors bien 15.
Un programme « tant que n < 10 : afficher n » ne s'arrête jamais. Quelle est la cause la plus probable ?
Erreurs fréquentes
- Confondre l'affectation (=) et le test d'égalité (== en Python).
- Oublier l'indentation en Python : les instructions de la boucle ou du « si » doivent être décalées.
- Se tromper sur les bornes : range(1, 5) s'arrête à 4.
- Oublier d'initialiser une variable (par exemple s = 0) avant de l'utiliser dans une boucle.
- Écrire une boucle qui ne s'arrête jamais.
Récapitulatif
- Variable : un nom et une valeur qui peut changer ; on lui affecte une valeur.
- Condition : si … alors … sinon, selon qu'un test est vrai ou faux.
- Boucle : répéter n fois (nombre connu) ou répéter jusqu'à / tant que (arrêt par une condition).
- Événement : un signal (clic, touche, message) qui déclenche un script.
- Déboguer : tester, comparer au résultat attendu, corriger.
Teste tes connaissances sur ce cours
Crée ton compte gratuitement pour accéder aux quiz associés et suivre ta progression.
