Éducation nationale françaiseMathématiques4ème15 min de lecture

Algorithmique et programmation avec variables

Une version article du chapitre pour comprendre l'essentiel rapidement, vérifier si le niveau correspond, puis basculer vers Wilo pour la pratique guidée et le suivi.

Lecture

5 chapitres

Un parcours éditorialisé et navigable.

Pratique

12 questions

Quiz et cartes mémoire à ouvrir après la lecture.

Objectif

4ème

Format rapide pour vérifier si le chapitre correspond.

Chapitre 1

Introduction à l'Algorithmique et au Langage Python

Qu'est-ce qu'un algorithme ?

Un algorithme est une série finie et non ambiguë d'instructions ou d'opérations permettant de résoudre un problème donné ou d'accomplir une tâche. C'est comme une recette de cuisine : chaque étape est claire et doit être suivie dans l'ordre pour obtenir le résultat souhaité.

  • Définition d'un algorithme : Une séquence d'étapes précises pour atteindre un objectif.
  • Séquence d'instructions : Les étapes doivent être exécutées dans un ordre spécifique.
  • Résolution de problèmes : L'objectif principal d'un algorithme est de trouver une solution à un problème.
  • Exemples de la vie courante :
    • Prendre le bus : marcher jusqu'à l'arrêt, attendre le bus, monter, payer, descendre à l'arrêt.
    • Faire un gâteau : casser les œufs, ajouter la farine, mélanger, cuire.

Du langage naturel au pseudo-code

Pour créer un algorithme, on commence souvent par l'écrire en langage naturel (comme le français), puis on le transforme en pseudo-code.

  • Étapes de conception d'un algorithme :
    1. Comprendre le problème.
    2. Définir les entrées (ce qu'on donne à l'algorithme) et les sorties (ce qu'on attend).
    3. Écrire les étapes de résolution en langage clair.
    4. Traduire ces étapes en pseudo-code.
  • Pseudo-code : C'est un langage intermédiaire entre le langage naturel et un langage de programmation. Il utilise des mots clés simples (LIRE, AFFICHER, SI...ALORS, TANT QUE...) pour décrire les actions, sans se soucier des détails techniques d'un langage spécifique.
  • Clarté et précision : Le pseudo-code doit être suffisamment précis pour qu'une personne puisse comprendre comment l'algorithme fonctionne.
  • Structure simple : Il est souvent présenté sous forme de liste d'instructions numérotées ou indentées.

Exemple de pseudo-code :

ALGORITHME CalculSomme
    DEBUT
        LIRE nombre1
        LIRE nombre2
        somme = nombre1 + nombre2
        AFFICHER somme
    FIN

Découverte de l'environnement Python

Python est un langage de programmation très populaire, facile à apprendre et puissant. Nous l'utiliserons pour traduire nos algorithmes en programmes informatiques.

  • Présentation de Python : Langage interprété, multi-plateforme, très utilisé en science, web, IA.
  • Interpréteur Python : C'est le programme qui lit et exécute nos instructions Python. On peut l'utiliser pour tester des commandes ligne par ligne.
  • Éditeur de code : C'est un logiciel où l'on écrit et sauvegarde nos programmes Python (ex: IDLE, PyCharm, VS Code, ou même un simple éditeur de texte).
  • Premiers pas : afficher un message Pour afficher du texte à l'écran, on utilise la fonction print().
    print("Bonjour le monde !")
    
    C'est souvent la première ligne de code que l'on apprend !

Chapitre 2

Les Variables : Stocker l'Information

Comprendre la notion de variable

En programmation, une variable est un espace de stockage temporaire dans la mémoire de l'ordinateur. Elle permet de conserver des informations qui pourront être utilisées ou modifiées pendant l'exécution du programme.

  • Définition d'une variable : Un emplacement nommé en mémoire pour stocker une valeur.
  • Conteneur de données : Imaginez une variable comme une boîte étiquetée. L'étiquette est le nom de la variable, et ce qu'il y a dans la boîte est sa valeur.
  • Nom de variable : C'est l'identifiant que vous donnez à la variable (ex: age, nom, prix_ht). Il doit être significatif et suivre certaines règles (pas d'espaces, pas de caractères spéciaux sauf _, ne pas commencer par un chiffre).
  • Valeur d'une variable : C'est l'information stockée dans la variable (ex: pour age, la valeur pourrait être 14). Cette valeur peut changer.

Déclarer et affecter une variable

En Python, on n'a pas besoin de "déclarer" explicitement le type d'une variable avant de l'utiliser. On l'affecte directement.

  • Syntaxe d'affectation en Python : nom_de_la_variable = valeur
  • Opérateur d'affectation (=) : Le signe = ne signifie pas "égal" au sens mathématique, mais "affecte la valeur de droite à la variable de gauche".
  • Initialisation d'une variable : C'est la première fois qu'on donne une valeur à une variable.
    mon_age = 14  # mon_age est initialisée à 14
    prenom = "Alice" # prenom est initialisée à "Alice"
    
  • Modification de la valeur : On peut changer la valeur d'une variable à tout moment.
    nombre = 5
    print(nombre) # Affiche 5
    nombre = 10   # La valeur de nombre est maintenant 10
    print(nombre) # Affiche 10
    
    Une variable contient toujours la dernière valeur qu'on lui a affectée.

Types de données simples

Les variables peuvent stocker différents types d'informations. Python reconnaît automatiquement le type de données.

  • Nombres entiers (int) : Pour les nombres sans virgule (ex: 10, -3, 0).
    quantite = 15
    
  • Nombres décimaux (float) : Pour les nombres à virgule (ex: 3.14, -0.5). La virgule est représentée par un point en Python.
    prix = 19.99
    
  • Chaînes de caractères (str) : Pour le texte. Elles sont toujours entourées de guillemets simples (') ou doubles (").
    message = "Bonjour !"
    lettre = 'A'
    
  • Type booléen (bool) : Pour représenter une valeur de vérité, qui peut être soit True (vrai) soit False (faux). Utilisé pour les conditions.
    est_majeur = True
    a_faim = False
    
    Connaître le type d'une variable est crucial car cela détermine les opérations que l'on peut effectuer dessus.

Afficher la valeur d'une variable

La fonction print() est essentielle pour voir le contenu de nos variables et le résultat de nos programmes.

  • Fonction print() : Utilisée pour afficher des informations dans la console.
  • Affichage de variables seules :
    nom = "Dupont"
    print(nom) # Affiche Dupont
    
  • Affichage de variables et de texte : On peut combiner du texte (chaînes de caractères) et des variables dans un même print().
    age = 14
    print("J'ai", age, "ans.") # Affiche J'ai 14 ans.
    
    Python ajoute automatiquement un espace entre chaque élément séparé par une virgule.
  • Concaténation de chaînes : Pour coller des chaînes de caractères ensemble, on utilise l'opérateur +.
    prenom = "Léa"
    nom = "Martin"
    nom_complet = prenom + " " + nom # Ajoute un espace entre les deux
    print(nom_complet) # Affiche Léa Martin
    
    Attention, la concaténation avec + ne fonctionne qu'avec des chaînes. Si on mélange nombres et chaînes, il faut convertir.

Chapitre 3

Opérations et Expressions avec les Variables

Opérations arithmétiques de base

Les variables numériques peuvent être utilisées dans des calculs.

  • Addition (+) : resultat = a + b

  • Soustraction (-) : resultat = a - b

  • Multiplication (*) : resultat = a * b

  • Division (/) : resultat = a / b (donne toujours un float)

  • Division entière (//) : resultat = a // b (donne la partie entière du quotient)

  • Modulo (%) : resultat = a % b (donne le reste de la division entière)

  • Puissance (**) : resultat = a ** b (a élevé à la puissance b)

  • Priorité des opérations : Comme en mathématiques, la multiplication et la division sont prioritaires sur l'addition et la soustraction.

    • Ex: 3 + 2 * 4 donne 11 (pas 20).
  • Utilisation de parenthèses : Pour modifier l'ordre des opérations ou rendre un calcul plus clair.

    • Ex: (3 + 2) * 4 donne 20.
x = 10
y = 3
somme = x + y      # 13
produit = x * y    # 30
division = x / y   # 3.333...
reste = x % y      # 1 (car 10 = 3*3 + 1)
print(somme, produit, division, reste)

Opérations sur les chaînes de caractères

Les chaînes de caractères ont leurs propres opérations.

  • Concaténation (+) : Pour joindre deux chaînes.
    salut = "Bonjour"
    nom = "toi"
    message = salut + " " + nom + " !" # "Bonjour toi !"
    print(message)
    
  • Répétition (*) : Pour répéter une chaîne un certain nombre de fois.
    etoiles = "*" * 5 # "*****"
    print(etoiles)
    
  • Longueur d'une chaîne (len()) : La fonction len() renvoie le nombre de caractères dans une chaîne.
    phrase = "Ceci est une phrase."
    longueur = len(phrase) # 20
    print(longueur)
    
  • Conversion de type (str()) : Pour convertir un nombre en chaîne de caractères, nécessaire pour la concaténation avec +.
    age = 15
    texte_age = "J'ai " + str(age) + " ans."
    print(texte_age)
    
    Si vous voulez concaténer un nombre et une chaîne avec +, vous DEVEZ convertir le nombre en chaîne avec str().

Saisie d'informations par l'utilisateur

Les programmes deviennent plus interactifs si l'utilisateur peut entrer des données.

  • Fonction input() : Permet au programme de demander une information à l'utilisateur et de la récupérer.
  • Message d'invite : On peut passer un message à input() qui sera affiché à l'utilisateur pour lui indiquer ce qu'il doit entrer.
    prenom = input("Quel est votre prénom ? ")
    print("Bonjour", prenom)
    
  • Récupération de la saisie : La fonction input() renvoie toujours la saisie de l'utilisateur sous forme de chaîne de caractères (str), même si l'utilisateur tape un nombre.
  • Conversion de type (int(), float()) : Si vous attendez un nombre, vous devez convertir la chaîne de caractères renvoyée par input() en un type numérique.
    annee_naissance_str = input("En quelle année êtes-vous né(e) ? ")
    annee_naissance_int = int(annee_naissance_str) # Convertit en entier
    age = 2024 - annee_naissance_int
    print("Vous avez environ", age, "ans.")
    
    Ou en une seule ligne :
    taille = float(input("Entrez votre taille en mètres : ")) # Convertit en décimal
    print("Votre taille est :", taille, "mètres.")
    

Chapitre 4

Algorithmes Séquentiels et Variables

Écrire un programme séquentiel simple

Un programme séquentiel est un programme dont les instructions sont exécutées l'une après l'autre, dans l'ordre où elles sont écrites.

  • Enchaînement d'instructions : Chaque ligne de code est une instruction qui est exécutée à la suite de la précédente.
  • Ordre d'exécution : L'ordre est crucial. Changer l'ordre peut modifier le comportement ou le résultat du programme.
  • Déroulement pas à pas : Pour comprendre un programme séquentiel, imaginez que vous suivez chaque instruction pas à pas, en notant les valeurs des variables.
  • Exemples concrets :
    1. Demander le nom.
    2. Afficher un bonjour personnalisé.
    3. Demander l'âge.
    4. Calculer l'année de naissance.
    5. Afficher l'année de naissance.

Application : Calculs et affichage

Les variables sont parfaites pour stocker des valeurs intermédiaires dans des calculs.

  • Calcul de périmètre/aire :
    longueur = float(input("Entrez la longueur du rectangle : "))
    largeur = float(input("Entrez la largeur du rectangle : "))
    perimetre = 2 * (longueur + largeur)
    aire = longueur * largeur
    print("Le périmètre est :", perimetre)
    print("L'aire est :", aire)
    
  • Calcul de moyenne :
    note1 = float(input("Entrez la première note : "))
    note2 = float(input("Entrez la deuxième note : "))
    note3 = float(input("Entrez la troisième note : "))
    moyenne = (note1 + note2 + note3) / 3
    print("La moyenne est :", round(moyenne, 2)) # round() pour arrondir à 2 décimales
    
  • Conversion d'unités :
    euros = float(input("Montant en euros : "))
    taux_dollar = 1.08 # Exemple de taux
    dollars = euros * taux_dollar
    print(euros, "euros valent", round(dollars, 2), "dollars.")
    
  • Utilisation de variables intermédiaires : C'est une bonne pratique de stocker les résultats partiels des calculs dans des variables pour plus de clarté.

Débogage simple et erreurs courantes

Le débogage est l'art de trouver et corriger les erreurs (appelées "bugs") dans un programme.

  • Erreurs de syntaxe (SyntaxError) : Le programme ne respecte pas les règles de grammaire du langage Python. L'interpréteur Python ne peut même pas commencer à exécuter le code.
    • Ex: Oubli d'une parenthèse, d'un guillemet, mot clé mal orthographié.
    • Python indique la ligne où l'erreur a été détectée.
    # Exemple d'erreur de syntaxe
    print("Bonjour" # Manque la parenthèse fermante
    
  • Erreurs d'exécution (RuntimeError, TypeError, ValueError, etc.) : Le programme respecte la syntaxe, mais une erreur se produit pendant son exécution.
    • Ex: Tenter de diviser par zéro, essayer d'additionner un nombre avec une chaîne de caractères sans conversion.
    # Exemple d'erreur d'exécution (TypeError)
    nombre = 5
    texte = "Hello"
    resultat = nombre + texte # Ne peut pas additionner int et str
    
    # Exemple d'erreur d'exécution (ValueError)
    age = int(input("Votre âge : ")) # Si l'utilisateur tape "vingt"
    
  • Messages d'erreur Python : Lisez-les attentivement ! Ils indiquent le type d'erreur et souvent la ligne où elle s'est produite. C'est votre meilleur ami pour déboguer.
  • Stratégies de débogage :
    1. Lire le message d'erreur : Comprendre le type d'erreur et la ligne concernée.
    2. Vérifier la ligne indiquée : Regarder le code autour de cette ligne.
    3. Utiliser print() : Ajouter des print() temporaires pour afficher les valeurs des variables à différents points du programme et voir si elles correspondent à ce que vous attendez.
    4. Exécuter pas à pas : Imaginer le déroulement du programme.
    5. Simplifier le code : Mettre en commentaire des parties du code pour isoler le problème. Ne craignez pas les erreurs, elles font partie de l'apprentissage !

Chapitre 5

Projets Pratiques avec Variables

Création d'un programme de calcul d'IMC

L'IMC (Indice de Masse Corporelle) est calculé avec la formule : IMC=poidstaille2IMC = \frac{poids}{taille^2} (poids en kg, taille en mètres).

  • Saisie de poids et taille : Utiliser input() et convertir en float().
  • Formule de l'IMC : Appliquer la formule en Python.
  • Affichage du résultat : Utiliser print() pour montrer l'IMC calculé.
  • Gestion des types : S'assurer que poids et taille sont bien des nombres pour le calcul.
print("--- Calculateur d'IMC ---")
poids_str = input("Veuillez entrer votre poids en kg : ")
taille_str = input("Veuillez entrer votre taille en mètres : ")

poids = float(poids_str)
taille = float(taille_str)

imc = poids / (taille ** 2)

print("Votre IMC est de :", round(imc, 2)) # Arrondi à 2 décimales

Développement d'un convertisseur de devises

Convertir une somme d'argent d'une devise à une autre.

  • Saisie d'un montant : Demander le montant à convertir (en float).
  • Taux de conversion fixe : Définir une variable pour le taux de change (ex: taux_euro_dollar = 1.08).
  • Calcul du montant converti : montant_converti = montant_initial * taux.
  • Affichage formaté : Présenter le résultat de manière claire avec les unités.
print("--- Convertisseur Euro vers Dollar ---")
montant_euros_str = input("Entrez le montant en euros à convertir : ")
montant_euros = float(montant_euros_str)

taux_euro_dollar = 1.08 # 1 Euro = 1.08 Dollars

montant_dollars = montant_euros * taux_euro_dollar

print(montant_euros, "euros correspondent à", round(montant_dollars, 2), "dollars.")

Jeu simple : Devine mon nombre

Un premier pas vers des jeux plus complexes, introduisant la notion de hasard et de comparaison.

  • Génération d'un nombre aléatoire (introduction) : Pour cela, nous utiliserons le module random.
    import random # Importe la bibliothèque random
    nombre_secret = random.randint(1, 10) # Génère un entier entre 1 et 10 inclus
    
  • Saisie de la proposition : L'utilisateur entre son nombre.
  • Comparaison (introduction aux conditions) : Pour l'instant, on peut juste afficher si le nombre est deviné ou non, sans dire s'il est trop grand/petit (cela viendra avec les structures conditionnelles if/else).
  • Affichage de messages : "Bravo !" ou "Ce n'est pas le bon nombre."
import random

print("--- Jeu : Devine mon nombre ! ---")
print("J'ai choisi un nombre entre 1 et 10.")

nombre_secret = random.randint(1, 10) # Le programme choisit un nombre

proposition_str = input("Quelle est votre proposition ? ")
proposition = int(proposition_str)

# Pour l'instant, sans condition, on ne peut que vérifier si c'est égal
# Nous verrons les structures conditionnelles pour dire "trop grand" ou "trop petit" plus tard.
print("Le nombre secret était :", nombre_secret)
print("Votre proposition était :", proposition)
# Imaginez ici qu'on aurait une condition pour dire si c'est juste ou non.
# Par exemple, si proposition == nombre_secret: print("Bravo !")

Après la lecture

Passe à la pratique avec deux blocs bien visibles

Une fois le cours lu, ouvre soit le quiz pour vérifier la compréhension, soit les flashcards pour mémoriser les idées importantes. Les deux s'ouvrent dans une fenêtre dédiée.

Quiz + Flashcards

Suite naturelle

Tu veux aller plus loin que l'article ?

Retrouve le même chapitre dans Wilo avec la suite des questions, la répétition espacée, les corrigés complets et une progression suivie dans le temps.