Objectif général du module
À la fin de ce module, tu dois être capable de comprendre un problème, de le transformer en algorithme, puis de le traduire en programme informatique structuré. Tu dois aussi savoir utiliser des variables, des conditions, des boucles, des fonctions, des tableaux, des structures et des fichiers.
10.1 Analyser une situation problème et modéliser la solution sous forme d’algorithme
1. Qu’est-ce qu’un algorithme ?
Un algorithme est une suite d’instructions ordonnées qui permet de résoudre un problème.
Exemple simple :
Problème : calculer le prix total d’un achat.
Données : prix unitaire et quantité.
Traitement : prix unitaire × quantité.
Résultat : prix total.
Algorithme :
Début
Demander le prix unitaire
Demander la quantité
Calculer total = prix unitaire × quantité
Afficher total
Fin
2. Structure d’un algorithme
Un algorithme est généralement organisé ainsi :
Début
Déclaration des variables
Entrée des données
Traitement
Sortie des résultats
Fin
3. La séquence
Une séquence est une liste d’instructions exécutées dans l’ordre.
Exemple :
Lire a
Lire b
somme ← a + b
Afficher somme
Les instructions sont exécutées de haut en bas.
4. L’imbrication
On parle d’imbrication lorsqu’une structure est placée à l’intérieur d’une autre.
Exemple :
Si âge >= 18 Alors
Si permis = vrai Alors
Afficher "Vous pouvez conduire"
Sinon
Afficher "Vous devez avoir le permis"
Fin Si
Sinon
Afficher "Vous êtes mineur"
Fin Si
Ici, un Si est placé dans un autre Si.
10.2 Traduire un algorithme dans un langage informatique structuré
Un algorithme peut être traduit dans un langage de programmation comme Python, JavaScript, Java, C#, etc.
Dans ce cours, les exemples seront surtout en Python, car sa syntaxe est simple.
1. Exemple de traduction
Algorithme :
Début
Lire nom
Afficher "Bonjour", nom
Fin
Programme Python :
nom = input("Entrez votre nom : ")
print("Bonjour", nom)
2. Syntaxe
La syntaxe correspond aux règles d’écriture d’un langage.
Exemple correct en Python :
age = 18
print(age)
Exemple incorrect :
age = 18
print age
Cette deuxième version produit une erreur de syntaxe.
3. Identificateurs
Un identificateur est le nom donné à une variable, une fonction ou une constante.
Exemples valides :
prenom
age
prix_total
note1
Exemples invalides :
2note
prix-total
nom complet
Règles générales :
- ne pas commencer par un chiffre ;
- ne pas utiliser d’espace ;
- éviter les accents ;
- utiliser des noms clairs ;
- ne pas utiliser les mots réservés du langage.
4. Mots-clés
Les mots-clés sont des mots réservés par le langage.
En Python, par exemple :
if
else
while
for
def
return
True
False
On ne peut pas utiliser ces mots comme noms de variables.
5. Notion de compilation
Certains langages doivent être compilés avant d’être exécutés.
La compilation transforme le code écrit par l’humain en langage compréhensible par la machine.
Exemples de langages compilés :
C
C++
Java
C#
Python est plutôt un langage interprété : le programme est lu et exécuté directement par l’interpréteur.
6. Indentation
L’indentation correspond aux espaces placés au début d’une ligne.
En Python, l’indentation est obligatoire.
Exemple :
age = 20
if age >= 18:
print("Majeur")
else:
print("Mineur")
Mauvaise indentation :
if age >= 18:
print("Majeur")
Cela provoque une erreur.
7. Commentaires
Un commentaire sert à expliquer le code. Il n’est pas exécuté.
En Python :
# Demander l'âge de l'utilisateur
age = int(input("Entrez votre âge : "))
Les commentaires doivent être utiles, courts et clairs.
10.3 Déclarer les variables d’exécution du programme
1. Variable
Une variable est un espace mémoire qui stocke une valeur.
Exemple :
age = 18
nom = "Alice"
prix = 12.50
La valeur peut changer pendant le programme.
score = 10
score = score + 5
La variable score vaut maintenant 15.
2. Constante
Une constante est une valeur qui ne doit pas changer.
En Python, on écrit souvent les constantes en majuscules :
TVA = 0.21
PI = 3.14159
3. Types de données
Un type indique la nature de la valeur stockée.
| Type | Exemple | Description |
|---|---|---|
| entier | 12 | nombre sans virgule |
| réel | 12.5 | nombre avec décimales |
| chaîne | "Bonjour" | texte |
| booléen | True ou False | vrai ou faux |
Exemples :
age = 20 # entier
prix = 9.99 # réel
nom = "Lucas" # chaîne de caractères
est_majeur = True # booléen
4. Initialisation
Initialiser une variable signifie lui donner une première valeur.
compteur = 0
total = 0
nom = ""
10.4 Écrire une séquence avec des instructions d’entrée et de sortie
1. Entrée
Une entrée permet à l’utilisateur de donner une information au programme.
En Python :
nom = input("Entrez votre nom : ")
Attention : input() retourne toujours du texte. Pour obtenir un nombre, il faut convertir.
age = int(input("Entrez votre âge : "))
prix = float(input("Entrez le prix : "))
2. Sortie
Une sortie permet d’afficher une information.
print("Bonjour")
print("Le résultat est", resultat)
3. Exemple complet
prix = float(input("Prix unitaire : "))
quantite = int(input("Quantité : "))
total = prix * quantite
print("Total à payer :", total, "€")
4. Formatage de sortie
On peut choisir le nombre de décimales affichées.
prix = 12.5678
print(f"Prix : {prix:.2f} €")
Résultat :
Prix : 12.57 €
5. Ordonner les instructions
L’ordre des instructions est important.
Correct :
a = int(input("Nombre 1 : "))
b = int(input("Nombre 2 : "))
somme = a + b
print(somme)
Incorrect :
somme = a + b
a = int(input("Nombre 1 : "))
b = int(input("Nombre 2 : "))
print(somme)
Ici, a et b sont utilisés avant d’avoir été créés.
10.5 Traduire une opération ou une fonction en langage de programmation
1. Opérations arithmétiques
| Opération | Symbole Python | Exemple |
|---|---|---|
| addition | + | a + b |
| soustraction | - | a - b |
| multiplication | * | a * b |
| division | / | a / b |
| division entière | // | a // b |
| modulo | % | a % b |
| puissance | ** | a ** b |
2. Exemple : somme de deux nombres
a = int(input("Entrez un premier nombre : "))
b = int(input("Entrez un deuxième nombre : "))
somme = a + b
print("La somme vaut", somme)
3. Le modulo
Le modulo donne le reste d’une division.
reste = 10 % 3
print(reste)
Résultat :
1
Car 10 divisé par 3 donne 3, reste 1.
Le modulo est souvent utilisé pour savoir si un nombre est pair.
nombre = int(input("Entrez un nombre : "))
if nombre % 2 == 0:
print("Le nombre est pair")
else:
print("Le nombre est impair")
4. Fonctions mathématiques
En Python, certaines fonctions mathématiques se trouvent dans la bibliothèque math.
import math
racine = math.sqrt(25)
print(racine)
Résultat :
5.0
Autres exemples :
import math
print(math.sqrt(16)) # racine carrée
print(math.log(10)) # logarithme
print(math.pi) # valeur de pi
5. Échange de deux variables
Problème : échanger les valeurs de a et b.
Méthode classique :
a = 5
b = 10
temp = a
a = b
b = temp
print(a, b)
Résultat :
10 5
10.6 Écrire un programme avec des structures alternatives et répétitives
1. Structure alternative simple
Une structure alternative permet de faire un choix.
Pseudo-code :
Si condition Alors
instruction
Fin Si
Python :
age = int(input("Âge : "))
if age >= 18:
print("Vous êtes majeur")
2. Structure alternative avec sinon
Pseudo-code :
Si condition Alors
instruction 1
Sinon
instruction 2
Fin Si
Python :
age = int(input("Âge : "))
if age >= 18:
print("Majeur")
else:
print("Mineur")
3. Plusieurs conditions
note = float(input("Note : "))
if note >= 16:
print("Très bien")
elif note >= 12:
print("Bien")
elif note >= 10:
print("Suffisant")
else:
print("Insuffisant")
4. Conditions imbriquées
age = int(input("Âge : "))
permis = input("Avez-vous le permis ? oui/non : ")
if age >= 18:
if permis == "oui":
print("Vous pouvez conduire")
else:
print("Vous devez passer le permis")
else:
print("Vous êtes trop jeune")
5. Structure répétitive : boucle while
Une boucle while répète une instruction tant qu’une condition est vraie.
compteur = 1
while compteur <= 5:
print(compteur)
compteur = compteur + 1
Résultat :
1
2
3
4
5
6. Structure répétitive : boucle for
Une boucle for est utilisée quand on connaît le nombre de répétitions.
for i in range(5):
print(i)
Résultat :
0
1
2
3
4
Pour afficher de 1 à 5 :
for i in range(1, 6):
print(i)
7. Exemple : somme d’une liste de nombres
total = 0
for i in range(5):
nombre = int(input("Entrez un nombre : "))
total = total + nombre
print("Somme :", total)
8. Exemple : rechercher un maximum
maximum = None
for i in range(5):
nombre = int(input("Entrez un nombre : "))
if maximum is None or nombre > maximum:
maximum = nombre
print("Le maximum est", maximum)
9. Exemple : compter les nombres positifs
compteur = 0
for i in range(5):
nombre = int(input("Entrez un nombre : "))
if nombre > 0:
compteur = compteur + 1
print("Nombre de valeurs positives :", compteur)
10.7 Construire un programme modulaire
1. Modularité
Un programme modulaire est divisé en plusieurs parties plus petites.
Ces parties peuvent être des procédures ou des fonctions.
Cela rend le programme :
- plus lisible ;
- plus facile à corriger ;
- plus facile à réutiliser.
2. Fonction
Une fonction effectue un traitement et retourne généralement une valeur.
def addition(a, b):
return a + b
Appel de la fonction :
resultat = addition(5, 3)
print(resultat)
Résultat :
8
3. Procédure
Une procédure effectue une action mais ne retourne pas forcément de valeur.
En Python, on utilise aussi def.
def dire_bonjour(nom):
print("Bonjour", nom)
Appel :
dire_bonjour("Alice")
4. Paramètres
Un paramètre est une valeur envoyée à une fonction.
def afficher_carre(nombre):
print(nombre * nombre)
afficher_carre(4)
Résultat :
16
5. Variable locale
Une variable locale existe seulement dans une fonction.
def exemple():
message = "Bonjour"
print(message)
exemple()
La variable message n’existe pas en dehors de la fonction.
6. Variable globale
Une variable globale est créée en dehors des fonctions.
taux_tva = 0.21
def calculer_tva(prix):
return prix * taux_tva
Il faut éviter d’abuser des variables globales, car elles rendent le programme plus difficile à comprendre.
7. Valeur de retour
Une fonction peut renvoyer une valeur avec return.
def calculer_total(prix, quantite):
return prix * quantite
total = calculer_total(12.5, 4)
print(total)
10.8 Manipuler les tableaux
En Python, on utilise souvent des listes pour représenter les tableaux.
1. Déclaration d’un tableau
notes = [12, 15, 9, 18]
2. Indices
Chaque élément possède un indice.
Attention : en Python, les indices commencent à 0.
notes = [12, 15, 9, 18]
print(notes[0]) # 12
print(notes[1]) # 15
3. Modifier un élément
notes[2] = 10
La liste devient :
[12, 15, 10, 18]
4. Ajouter un élément
notes.append(14)
5. Supprimer un élément
notes.remove(15)
Ou par indice :
del notes[0]
6. Parcourir un tableau
notes = [12, 15, 9, 18]
for note in notes:
print(note)
7. Calculer une moyenne
notes = [12, 15, 9, 18]
total = 0
for note in notes:
total = total + note
moyenne = total / len(notes)
print("Moyenne :", moyenne)
8. Rechercher une valeur
nombres = [4, 8, 15, 16, 23, 42]
recherche = int(input("Nombre à chercher : "))
trouve = False
for nombre in nombres:
if nombre == recherche:
trouve = True
if trouve:
print("Nombre trouvé")
else:
print("Nombre non trouvé")
9. Trier un tableau
Méthode simple avec Python :
nombres = [5, 2, 9, 1]
nombres.sort()
print(nombres)
Résultat :
[1, 2, 5, 9]
10.9 Manipuler les structures d’enregistrement
1. Structure d’enregistrement
Une structure permet de regrouper plusieurs informations sur un même objet.
Exemple : un étudiant possède :
nom
prénom
âge
moyenne
En Python, on peut utiliser un dictionnaire.
etudiant = {
"nom": "Dupont",
"prenom": "Lucas",
"age": 18,
"moyenne": 14.5
}
2. Accéder aux données
print(etudiant["nom"])
print(etudiant["moyenne"])
3. Modifier une donnée
etudiant["moyenne"] = 15.2
4. Tableau de structures
Un tableau de structures est une liste contenant plusieurs enregistrements.
etudiants = [
{"nom": "Dupont", "prenom": "Lucas", "moyenne": 14},
{"nom": "Martin", "prenom": "Emma", "moyenne": 16},
{"nom": "Durand", "prenom": "Lina", "moyenne": 11}
]
Afficher les étudiants :
for etudiant in etudiants:
print(etudiant["prenom"], etudiant["nom"], etudiant["moyenne"])
5. Rechercher dans un tableau de structures
nom_recherche = input("Nom à rechercher : ")
for etudiant in etudiants:
if etudiant["nom"] == nom_recherche:
print("Étudiant trouvé :", etudiant)
10.10 Création, accès et mise à jour d’un fichier par programmation
1. Notion de fichier
Un fichier permet de sauvegarder des données de manière permanente.
Sans fichier, les données disparaissent quand le programme s’arrête.
Exemples de fichiers :
contacts.txt
notes.csv
clients.json
2. Chemin d’accès
Le chemin indique l’emplacement d’un fichier.
Chemin absolu :
C:/Users/Pascal/Documents/fichier.txt
Chemin relatif :
data/fichier.txt
Un chemin relatif dépend du dossier dans lequel se trouve le programme.
3. Ouvrir et fermer un fichier
En Python :
fichier = open("contacts.txt", "r")
contenu = fichier.read()
fichier.close()
Mais on préfère utiliser with, car le fichier est fermé automatiquement.
with open("contacts.txt", "r") as fichier:
contenu = fichier.read()
4. Modes d’ouverture
| Mode | Signification |
|---|---|
"r" | lecture |
"w" | écriture, écrase le contenu |
"a" | ajout à la fin |
"r+" | lecture et écriture |
5. Écrire dans un fichier
with open("contacts.txt", "w") as fichier:
fichier.write("Alice;0470123456\n")
fichier.write("Lucas;0488998877\n")
6. Lire un fichier
with open("contacts.txt", "r") as fichier:
contenu = fichier.read()
print(contenu)
7. Lire ligne par ligne
with open("contacts.txt", "r") as fichier:
for ligne in fichier:
print(ligne)
8. Ajouter une donnée
with open("contacts.txt", "a") as fichier:
fichier.write("Emma;0499887766\n")
9. Exemple : carnet d’adresses simple
def ajouter_contact():
nom = input("Nom : ")
telephone = input("Téléphone : ")
with open("contacts.txt", "a") as fichier:
fichier.write(nom + ";" + telephone + "\n")
def afficher_contacts():
with open("contacts.txt", "r") as fichier:
for ligne in fichier:
donnees = ligne.strip().split(";")
nom = donnees[0]
telephone = donnees[1]
print(nom, "-", telephone)
choix = ""
while choix != "3":
print("1. Ajouter un contact")
print("2. Afficher les contacts")
print("3. Quitter")
choix = input("Votre choix : ")
if choix == "1":
ajouter_contact()
elif choix == "2":
afficher_contacts()
elif choix == "3":
print("Au revoir")
else:
print("Choix invalide")
Exercices d’entraînement
Exercice 1 : somme de deux nombres
Écris un programme qui demande deux nombres à l’utilisateur, calcule leur somme et affiche le résultat.
Exercice 2 : pair ou impair
Écris un programme qui demande un nombre et affiche s’il est pair ou impair.
Exercice 3 : moyenne de notes
Écris un programme qui demande 5 notes, calcule la moyenne et l’affiche avec deux décimales.
Exercice 4 : maximum
Écris un programme qui demande 10 nombres et affiche le plus grand.
Exercice 5 : compteur
Écris un programme qui demande 10 nombres et compte combien sont positifs.
Exercice 6 : fonction de calcul
Crée une fonction calculer_total(prix, quantite) qui retourne le prix total.
Exercice 7 : tableau
Crée une liste de notes, affiche toutes les notes, puis calcule la moyenne.
Exercice 8 : structure
Crée une structure représentant un client avec :
nom
prenom
email
telephone
Puis affiche toutes les informations du client.
Exercice 9 : fichier
Écris un programme qui demande un nom et un numéro de téléphone, puis les enregistre dans un fichier contacts.txt.
Synthèse du module
À retenir :
| Notion | Rôle |
|---|---|
| Algorithme | Décrire une solution étape par étape |
| Variable | Stocker une valeur |
| Constante | Stocker une valeur qui ne change pas |
| Entrée | Recevoir une donnée de l’utilisateur |
| Sortie | Afficher une information |
| Condition | Faire un choix |
| Boucle | Répéter des instructions |
| Fonction | Regrouper un traitement réutilisable |
| Tableau | Stocker plusieurs valeurs |
| Structure | Regrouper plusieurs informations liées |
| Fichier | Sauvegarder des données durablement |
Ce module sert de base pour apprendre à programmer proprement, structurer sa pensée et résoudre des problèmes de manière logique.


