Accroche et réactivation didactique
« Calculer la distance euclidienne entre l'origine (0,0) et un point (X, Y) généré aléatoirement entre -10 et 10, puis déterminer si son arrondi entier est un nombre pair. »
Décomposition de la résolution :
-
1
Génération aléatoire : X ∈ [-10, 10] et Y ∈ [-10, 10].
-
2
Distance euclidienne : Formule mathématique d = √(X2 + Y2).
-
3
Arrondi entier : Rapprochement à l'entier le plus proche (
d_arrondi). -
4
Test de parité : Vérification si
d_arrondi Mod 2 = 0.
est_pair ⇔ (Arrondi(d) Mod 2 = 0)
Questions orales d'accroche (cliquez pour afficher la réponse didactique) :
Synthèse des correspondances normatives : Algorithmique ↔ Python
Présentation au tableau des équivalences normatives officielles issues des conventions 2024-2025 de l'Inspection Générale :
| Notion / Opération | Algorithmique (Norme Officielle) | Python (Conventions 2024-2025) |
|---|---|---|
| Entrée / Sortie | Lire(x)Écrire(x) |
x = int(input()) / x = float(input())print(x) |
| Division entière & Reste | q ← a Div br ← a Mod b |
q = a // br = a % b |
| Racine carrée | RacineCarré(x) |
sqrt(x) via from math import
sqrt |
| Entier aléatoire | Aléa(vi, vf) |
randint(vi, vf) via from random
import randint |
| Arrondi / Partie entière | Arrondi(x)Ent(x) |
round(x)int(x) |
| Valeur absolue | Abs(x) |
abs(x) |
Rappel clé fondamental (Différence conceptuelle majeure) :
Toute variable manipulée en algorithmique doit impérativement être recensée et typée
dans le T.D.O. (Tableau de Déclaration des Objets).
À l'inverse, en Python, les variables ne sont pas déclarées au préalable : c'est
l'affectation dynamique qui définit automatiquement leur type en mémoire selon la
valeur reçue.
Détails et subtilités d'usage :
L'intervalle est fermé : les deux bornes vi et vf font
partie intégrante des valeurs possibles.
x = randint(-10, 10)
Arrondi(x) cherche l'entier le plus proche, alors que Ent(x) tronque la
partie décimale.
Ent(4.6) = 4 | int(4.6) = 4
La division euclidienne dans les entiers relie dividende, diviseur, quotient et reste :
a = b * q + r.
14 Mod 3 = 2 | 14 % 3 = 2
Élaboration de l'Algorithme et du T.D.O. Standard
Construction collective au tableau : écriture formelle respectant la casse, l'indentation et la nomenclature conventionnelle.
ALGORITHME DistancePoint
DEBUT
x ← Aléa(-10, 10)
y ← Aléa(-10, 10)
d ← RacineCarré(x * x + y * y)
d_arrondi ← Arrondi(d)
est_pair ← (d_arrondi Mod 2 = 0)
Écrire("Coordonnées : (", x, ", ", y, ")")
Écrire("Distance réelle : ", d)
Écrire("Distance arrondie : ", d_arrondi)
Écrire("Distance paire ? ", est_pair)
FIN
| Objet | Type / Nature |
|---|---|
| x, y, d_arrondi | Entier |
| d | Réel |
| est_pair | Booléen |
- Entier : Coordonnées aléatoires sans virgule et distance arrondie.
- Réel : La racine carrée peut donner un nombre décimal flottant.
- Booléen : Résultat d'une assertion logique ne prenant que
VraiouFaux.
Implémentation sur machine, Débogage & Laboratoire
Les élèves saisissent et exécutent le code Python dans leur IDE (Thonny, VS Code ou IDLE).
from math import sqrt
from random import randint
# Tirage aléatoire des coordonnées entre -10 et 10
x = randint(-10, 10)
y = randint(-10, 10)
# Traitement arithmétique
d = sqrt(x * x + y * y)
d_arrondi = round(d)
est_pair = (d_arrondi % 2 == 0)
# Affichage des résultats
print("Coordonnées : (", x, ",", y, ")")
print("Distance réelle :", d)
print("Distance arrondie :", d_arrondi)
print("Distance paire ? :", est_pair)
NameError: name 'sqrt' is not defined
→ Correction : Ajouter impérativement
from math import sqrt et from random import randint en haut de
fichier.
NameError: name 'Round' is not defined
→ Correction : Python distingue strictement minuscules et majuscules. Écrire
round, sqrt, abs en
minuscules.
→ Le test d'égalité s'écrit
== et non
=. Le reste s'exprime avec % et non mod.
d_arrondi = round(d)) :
{{ simDistRounded }}
d_arrondi % 2 == 0) :
{{ simIsEven ? 'PAIR (Vrai / True)' : 'IMPAIR (Faux / False)' }}