Matières 📐 Mathématiques Collège Algorithmes et programmation
💻

Algorithmes et programmation

Variables, boucles, conditions, Scratch/Python

Un algorithme est une suite finie et non ambiguë d'instructions permettant de résoudre un problème. Les trois structures fondamentales — séquence, condition, boucle — suffisent à exprimer n'importe quel calcul.

L'affectation xx+1x \leftarrow x + 1 est très différente d'une équation : en maths, x=x+1x = x + 1 est absurde ; en algorithmique, c'est une mise à jour (lire l'ancienne valeur, ajouter 11, stocker le résultat).

Pour déboguer un algorithme : tracer son exécution ligne par ligne dans un tableau de valeurs des variables — une colonne par variable, une ligne par étape.

Deux types de boucles : la boucle bornée (pour\mathtt{pour}) avec un nombre fixé de tours ; la boucle non bornée (tant que\mathtt{tant\ que}) qui continue sous condition.

📖 Vocabulaire clé

Algorithme : Suite finie et non ambiguë d'instructions qui résout un problème donné. Chaque étape doit être suffisamment précise pour être exécutée mécaniquement.
Variable : Espace mémoire nommé qui stocke une valeur. Une variable peut contenir un nombre, du texte, etc. Sa valeur peut changer au cours de l'exécution.
Affectation : Instruction xvaleurx \leftarrow \text{valeur} qui donne une nouvelle valeur à la variable xx. Attention : xx+1x \leftarrow x + 1 n'est pas une équation, c'est une mise à jour.
Boucle : Structure qui répète un bloc d'instructions. La boucle bornée (pour\mathtt{pour}) a un nombre fixé de tours ; la boucle non bornée (tantque\mathtt{tant que}) continue jusqu'à ce qu'une condition devienne fausse.

📋 Les trois structures de base

  1. 1 Séquence : les instructions s'exécutent dans l'ordre, l'une après l'autre. C'est la structure la plus simple.
  2. 2 Condition : si\mathtt{si} (condition) alors\mathtt{alors} (bloc A) sinon\mathtt{sinon} (bloc B). Exécution conditionnelle — un seul des deux blocs s'exécute.
  3. 3 Boucle bornée : pour  i  de  1  aˋ  n  faire\mathtt{pour}\; i\; \mathtt{de}\; 1\; \mathtt{à}\; n\; \mathtt{faire} — nombre de tours fixé à l'avance.
    Boucle non bornée : tant que\mathtt{tant\ que} (condition) — continue jusqu'à ce que la condition devienne fausse.

✅ Exemple résolu

Énoncé : Tracer l'exécution de l'algorithme suivant :
S0S \leftarrow 0
pour  i  de  1  aˋ  3  faire\mathtt{pour}\; i\; \mathtt{de}\; 1\; \mathtt{à}\; 3\; \mathtt{faire}
SS+i2\quad S \leftarrow S + i^2
finpour\mathtt{fin pour}
Démarche :
  1. Initialisation : S=0S = 0.
  2. Tour i=1i = 1 : S0+12=1S \leftarrow 0 + 1^2 = 1.
    Tour i=2i = 2 : S1+22=1+4=5S \leftarrow 1 + 2^2 = 1 + 4 = 5.
    Tour i=3i = 3 : S5+32=5+9=14S \leftarrow 5 + 3^2 = 5 + 9 = 14.
  3. La boucle est terminée (ii a atteint 33). La valeur finale de SS est 14=12+22+3214 = 1^2 + 2^2 + 3^2.
Réponse : S=14S = 14. L'algorithme calcule la somme des carrés de 11 à 33 : 1+4+9=141 + 4 + 9 = 14.

📐 Formules clés

Affectation : x5x \leftarrow 5 (la variable xx prend la valeur 55)
Boucle bornée : pour  i  de  1  aˋ  n  faire  \mathtt{pour}\; i\; \mathtt{de}\; 1\; \mathtt{à}\; n\; \mathtt{faire}\; \ldots
Test : si  (x>0)  alors    sinon  \mathtt{si}\; (x > 0)\; \mathtt{alors}\; \ldots\; \mathtt{sinon}\; \ldots

🎨 Illustration

Algorigramme
Une boucle bornée pas à pas : calculer S = 1² + 2² + 3²

Le même algorithme que dans l'exemple du cours, sous forme d'organigramme normalisé : rectangles pour les actions, losange pour le test de la boucle, terminaux arrondis pour le début et la fin.

Algorigramme de la boucle bornée Organigramme : debut, S recoit 0, i recoit 1, puis tant que i est inferieur ou egal a 3 on execute S recoit S plus i au carre et i recoit i plus 1 en bouclant sur le test, sinon on affiche S et on termine. Le deroulement donne S egal a 14. Début S ← 0 i ← 1 i ≤ 3 ? Oui S ← S + i² i ← i + 1 Non Afficher S Fin
  • 1 Initialisation : S ← 0 puis i ← 1, avant d'entrer dans la boucle.
  • 2 Tant que i ≤ 3 (branche « Oui ») : on exécute S ← S + i² puis i ← i + 1, et on revient tester la condition.
  • 3 Dès que i ≤ 3 devient faux, c'est-à-dire à i = 4 (branche « Non ») : on sort de la boucle et on affiche S.
Ce qu'il faut lire : Suis la boucle « Oui » qui revient sur le losange tant que i ≤ 3 ; dès qu'elle devient fausse, la branche « Non » mène à l'affichage du résultat.
Algorigramme de l'exemple du cours : S0S \leftarrow 0, pour i de 1 aˋ 3\mathtt{pour}\ i\ \mathtt{de}\ 1\ \mathtt{à}\ 3, SS+i2S \leftarrow S + i^2, ce qui donne S=12+22+32=14S = 1^2+2^2+3^2 = 14.

❌ Une erreur, une suggestion

L'erreur fréquente

l'affectation xx+1x \leftarrow x + 1 signifie « prendre la valeur actuelle de xx, y ajouter 11, et stocker le résultat dans xx ».

La suggestion

Ce n'est pas une équation : x=x+1x = x + 1 est impossible en maths, mais parfaitement valide en algorithmique.

💡 À retenir

  • Les trois structures fondamentales sont la séquence, la condition (si/sinon\mathtt{si/sinon}) et la boucle (pour\mathtt{pour} ou tantque\mathtt{tant que}).
  • L'affectation xx+1x \leftarrow x + 1 n'est PAS une équation : c'est une mise à jour qui lit l'ancienne valeur, calcule, et stocke le résultat.
  • Tracer l'exécution dans un tableau (une ligne par étape, une colonne par variable) est la méthode la plus sûre pour comprendre et déboguer.
  • Une boucle bornée (pour\mathtt{pour}) a un nombre de tours fixé à l'avance ; une boucle non bornée (tantque\mathtt{tant que}) peut tourner indéfiniment si la condition ne devient jamais fausse.