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 :
- Comprendre le problème.
- Définir les entrées (ce qu'on donne à l'algorithme) et les sorties (ce qu'on attend).
- Écrire les étapes de résolution en langage clair.
- 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().
C'est souvent la première ligne de code que l'on apprend !print("Bonjour le monde !")
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 être14). 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.
Une variable contient toujours la dernière valeur qu'on lui a affectée.nombre = 5 print(nombre) # Affiche 5 nombre = 10 # La valeur de nombre est maintenant 10 print(nombre) # Affiche 10
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) soitFalse(faux). Utilisé pour les conditions.
Connaître le type d'une variable est crucial car cela détermine les opérations que l'on peut effectuer dessus.est_majeur = True a_faim = False
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().
Python ajoute automatiquement un espace entre chaque élément séparé par une virgule.age = 14 print("J'ai", age, "ans.") # Affiche J'ai 14 ans. - Concaténation de chaînes : Pour coller des chaînes de caractères ensemble, on utilise l'opérateur
+.
Attention, la concaténation avecprenom = "Léa" nom = "Martin" nom_complet = prenom + " " + nom # Ajoute un espace entre les deux print(nom_complet) # Affiche Léa Martin+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 * 4donne11(pas20).
- Ex:
-
Utilisation de parenthèses : Pour modifier l'ordre des opérations ou rendre un calcul plus clair.
- Ex:
(3 + 2) * 4donne20.
- Ex:
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 fonctionlen()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+.
Si vous voulez concaténer un nombre et une chaîne avecage = 15 texte_age = "J'ai " + str(age) + " ans." print(texte_age)+, vous DEVEZ convertir le nombre en chaîne avecstr().
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 parinput()en un type numérique.
Ou en une seule ligne :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.")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 :
- Demander le nom.
- Afficher un bonjour personnalisé.
- Demander l'âge.
- Calculer l'année de naissance.
- 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 :
- Lire le message d'erreur : Comprendre le type d'erreur et la ligne concernée.
- Vérifier la ligne indiquée : Regarder le code autour de cette ligne.
- Utiliser
print(): Ajouter desprint()temporaires pour afficher les valeurs des variables à différents points du programme et voir si elles correspondent à ce que vous attendez. - Exécuter pas à pas : Imaginer le déroulement du programme.
- 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 : (poids en kg, taille en mètres).
- Saisie de poids et taille : Utiliser
input()et convertir enfloat(). - 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.
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.