0 XP
?
Fondamentaux de l'algorithmique/Qu'est-ce qu'un algorithme ?
Débutant30 min20 XP

Objectifs de cette leçon

  • Définir ce qu'est un algorithme
  • Identifier les étapes d'un algorithme du quotidien
  • Comprendre la pensée computationnelle

Qu'est-ce qu'un algorithme ? 🧠

Définition

Un algorithme est une suite d'instructions qui, exécutées dans un certain ordre, permettent de résoudre un problème. C'est comme une recette de cuisine :

  • Les ingrédients sont les données d'entrée
  • Les étapes de la recette sont les instructions
  • Le plat cuisiné est le résultat

🧑‍🍳 Recette du gâteau au chocolat → mélanger les œufs et le sucre, ajouter la farine, verser dans un moule, enfourner à 180°C → gâteau !

💻 Algorithme → instructions étape par étape → résultat

Pourquoi c'est important ?

Un algorithme doit être :

PropriétéExplicationAnalogue en cuisine
FiniIl doit s'arrêter après un certain nombre d'étapesOn ne remet pas indéfiniment au four
PrécisChaque étape est claire et sans ambiguïté"Une pincée" c'est vague — "5g" c'est précis
EfficaceIl résout le problème sans gâcher de ressourcesUtiliser le bon nombre d'œufs, pas 50
GénéralIl fonctionne pour toutes les entrées validesLa recette marche pour 2 ou 6 personnes

Les briques de base de tout algorithme

Tous les algorithmes sont construits avec seulement 3 structures :

StructureExplicationCode
SéquencesLes instructions s'enchaînent l'une après l'autreInstruction 1 → Instruction 2 → Instruction 3
ConditionsOn choisit entre deux chemins selon une questionSi l'eau bout → verser, sinon → attendre
BouclesOn répète une action tant qu'une condition est vraieTant que la cafetière n'a pas fini → attendre

Ces 3 structures suffisent à écrire n'importe quel programme — même un système de navigation GPS ou un moteur de recherche !

Exemple pas à pas : Algorithme du café

Voyons un algorithme simple avec des commentaires expliquant chaque ligne comme si on était en classe :

Le pseudo-code ci-dessous est un langage inventé pour décrire un algorithme simplement, sans se soucier de la syntaxe d'un vrai langage. Chaque ligne est expliquée :

Exécution pas à pas

pseudo
1/14
🟢
DEBUT ⬅ J'annonce le début de mon programme
DÉPARTLe programme démarre, toutes les variables sont prêtes.

Le programme démarre. Tout est initialisé, prêt à exécuter les instructions.

🔍 Observation : Dans cet algorithme, on trouve les 3 structures essentielles :

  • Séquence : les lignes s'exécutent dans l'ordre (remplir → mettre → allumer → …)
  • Boucle : TANT QUE café_pas_prêt FAIRE … FIN TANT QUE répète l'attente
  • Condition : `SI sucre_demandé ALORS … FIN SI) choisit selon la réponse

Maintenant, le même algorithme écrit en Python (un vrai langage de programmation) :

def faire_cafe():
    remplir_cafetiere("eau")
    mettre_cafe("moulu")
    allumer_cafetiere()
    while not cafe_pret():      # 🔄 Boucle : tant que pas prêt…
        attendre()              #   …j'attends
    verser_dans_tasse()
    if input("Sucre ? (o/n) : ") == "o":  # ❓ Condition
        ajouter_sucre()
    print("Dégustez !")         # 😊

Compare le pseudo-code et le Python : vois-tu les ressemblances ? TANT QUE = while, SI = if, FIN = fin du bloc. Le pseudo-code sert à réfléchir avant de coder !



Exercice pour toi 🎯

Prends une activité de ton quotidien et écris-la en algorithme :

  1. Se brosser les dents
  2. Prendre le bus pour aller au collège
  3. Préparer des pâtes

Pour chaque activité, écris les étapes en pseudo-code avec :

  • Un DEBUT et un FIN
  • Au moins une condition (SI)
  • Au moins une boucle (TANT QUE)

💡 Astuce : Commence par écrire les étapes en français simple, puis traduis-les en pseudo-code. Ne cherche pas la perfection du premier coup — on améliore toujours son algorithme !

Méthode de travail

  1. Comprendre le concept sur papier avant de coder
  2. Implémenter sans aide, puis comparer avec une solution
  3. Analyser la complexité de chaque solution
  4. Refaire les exercices une semaine plus tard

Exécution pas à pas

↓ début↓ vérifier✓ Oui✗ Non✓ Oui✗ Non↓ suivant↓ suivant↺ retour↓ fin
0/16

État de la mémoire

4 variables
Variable
Valeur
Type
Addr.
max
3
int
0x7fff0010
liste
[3, 7, 2, 9]
list
0x7fff0020
nombre
7
int
0x7fff0030
index
1
int
0x7fff0040
Aucune variable active
max0x7fff0010
3
int
liste0x7fff0020
[3, 7, 2, 9]
list
nombre0x7fff0030
7
int
index0x7fff0040
1
int

Pile d'appels

2 appels
trouver_max()ligne 5
liste=[3, 7, 2, 9]
max=3
main()ligne 12
resultat=?
trouver_max()ligne 5
liste=[3, 7, 2, 9]
max=3
main()ligne 12
resultat=?
▸ pile d'appels (haut = en cours)

⚡ Simulateur — Algorithme Café

Étape 1/13
📝 Pseudo-code
1DEBUT
2 remplir_cafetière(eau)
3 mettre_café(moulu)
4 allumer_cafetière()
5 TANT QUE café_pas_prêt FAIRE
6 attendre()
7 FIN TANT QUE
8 verser(tasse)
9 SI sucre_demandé ALORS
10 ajouter(sucre)
11 FIN SI
12 déguster()
13FIN
⚙️ Exécution
📦 Mémoire
Aucune variable
🔀 Flux d'exécution
Début
3

Le programme commence. On annonce le début de l'algorithme.