Activités préparatoires#
Les bases de la programmation Python
Activité 1 L’ordinateur humain#
exécuter un programme à la main, avant de savoir programmer
Durée : 20 min · Sans ordinateur, crayon et gomme en main, par deux
Consignes
-
Les réponses s’écrivent sur le cahier.
-
Vous êtes l’ordinateur. Vous lisez le programme une ligne à la fois, de haut en bas, et vous faites exactement ce qui est écrit, sans rien deviner.
-
Chaque nom (
a,b,total…) désigne une boîte, que l’on dessine sur le cahier. Une boîte ne contient qu’une seule valeur à la fois : pour en écrire une nouvelle, on gomme l’ancienne. -
print(...)signifie : « écrire à l’écran ce qu’il y a entre les parenthèses ». Ici, l’écran, c’est la ligne « Affichage obtenu : …» que vous écrivez sur le cahier.
Exercice 1 — Des boîtes et une flèche #
Programme 1 :
a = 7
b = a + 3
a = 2
print(a, b)
-
Dessiner sur le cahier deux boîtes
aetb, puis exécuter le programme ligne par ligne en les remplissant (gommer quand une valeur change). -
Quel est l’affichage obtenu ?
-
À la ligne 3, la boîte
achange. La boîteba-t-elle changé elle aussi ? Pourquoi ?
Programme 2 :
n = 5
n = n + 1
print(n)
-
En mathématiques, l’égalité \(n = n + 1\) est impossible. Pourtant l’ordinateur l’exécute sans erreur. Qu’affiche-t-il ?
-
Pour exécuter la ligne 2, par quel côté du signe
=avez-vous commencé : la gauche ou la droite ? Décrire en une phrase ce que fait une ligne de la formenom = calcul.
Corrigé
1. a : \(7\), puis \(2\) (le \(7\) est gommé) ; b : \(10\).
2. Affichage : 2 10.
3. Non : à la ligne 2, on a calculé a + 3 avec la valeur de ce moment-là (\(7\)) et rangé le résultat \(10\) dans b. La boîte b contient un nombre, pas la formule « a + 3 » : modifier a ensuite ne change pas b.
4. Affichage : 6.
5. On commence par la droite : on calcule n + 1 avec le contenu actuel de n (\(5 + 1 = 6\)), puis on range le résultat dans la boîte de gauche, n. Le signe = ne veut pas dire « est égal à » mais « reçoit ».
Exercice 2 — Échanger deux boîtes #
Programme 3 (il est censé échanger les contenus de a et de b) :
a = 1
b = 2
a = b
b = a
print(a, b)
-
Exécuter le programme en dessinant les boîtes
aetbsur le cahier. Quel est l’affichage obtenu ? L’échange a-t-il réussi ? -
Où la valeur
1est-elle passée ? Proposer une correction du programme, en vous autorisant une troisième boîtec.
Corrigé
6. a : \(1\) puis \(2\) ; b : \(2\) puis \(2\). Affichage : 2 2. L’échange a échoué.
7. La valeur 1 a été gommée par a = b : elle est perdue avant d’avoir pu être rangée dans b. Correction avec une troisième boîte :
a = 1
b = 2
c = a # on met la valeur de a a l'abri
a = b
b = c
print(a, b) # 2 1
Image à donner : pour échanger le contenu de deux verres, il faut un troisième verre vide.
Exercice 3 — Répéter sans réécrire #
Nouvelle règle : la ligne for i in range(1, 5): signifie « pour i valant successivement 1, 2, 3, puis 4, exécuter les lignes décalées juste en dessous ». Chaque passage s’appelle un tour.
Programme 4 :
total = 0
for i in range(1, 5):
total = total + i
print(total)
-
Recopier et compléter sur le cahier le tableau suivant : valeurs des boîtes à la fin de chaque tour. Donner ensuite l’affichage obtenu.
avant la boucle tour 1 tour 2 tour 3 tour 4 i— total0 -
Combien de fois la ligne
print(total)a-t-elle été exécutée ? Et la lignetotal = total + i? -
On décale la dernière ligne vers la droite, au même niveau que
total = total + i. Que devient l’affichage ? -
Quelle unique modification faut-il apporter au programme 4 pour calculer \(1 + 2 + \dots + 100\) ?
Corrigé
8.
| avant la boucle | tour 1 | tour 2 | tour 3 | tour 4 | |
|---|---|---|---|---|---|
i |
— | 1 | 2 | 3 | 4 |
total |
0 | 1 | 3 | 6 | 10 |
Affichage : 10.
9. print(total) : une seule fois (elle n’est pas décalée, elle est exécutée après la boucle). total = total + i : quatre fois, une par tour.
10. La ligne fait alors partie de la boucle : elle est exécutée à chaque tour. Affichage : 1, 3, 6, 10 (un nombre par ligne). Le décalage (l’indentation) change le sens du programme.
11. Remplacer range(1, 5) par range(1, 101) : la borne de droite n’est pas atteinte. Le programme affiche alors 5050.
Exercice 4 — Ce qu’on a découvert #
-
Recopier et compléter sur le cahier avec vos mots.
-
Un nom comme
totaldésigne … -
Pour exécuter
nom = calcul, l’ordinateur … -
Les lignes décalées sous un
for…
-
Corrigé
12. Réponse possible :
-
un nom comme
totaldésigne une boîte de la mémoire qui contient une valeur : c’est une variable ; -
pour exécuter
nom = calcul, l’ordinateur calcule d’abord la partie droite avec les valeurs actuelles, puis range le résultat dans la boîte de gauche, en effaçant l’ancienne valeur : c’est l’affectation ; -
les lignes décalées sous un
forsont répétées, une fois par valeur dei: c’est une boucle.