Cours 1 · Les fondations — Séance 1 / 4

Écris comme le bac
te corrige

La convention officielle : ALGORITHME, DEBUT, FIN, le TDO, les types — et exactement la même chose en Python. Les deux épreuves, décodées.

Prépa Bac Informatique · sections scientifiques
À la fin de cette séance, tu sauras

Ce que tu repars avec

MarQentiCours 1 · Bases · S.1
La carte du terrain

Ton bac info = deux épreuves, même poids

L'écrit · coef 0.5
  • 1h30 — sur copie
  • Pseudo-code uniquement. Aucun Python.
  • Ex.1 3,25 · Ex.2 3,75 · Problème 13
La pratique · coef 0.5
  • 1h — sur machine
  • Python + PyQt5 uniquement. Aucun pseudo-code.
  • Interface 3 · Programme 17
Total informatique : 0.5 + 0.5 = coefficient 1. La pratique n'est pas un bonus — c'est la moitié de ta note.
MarQentiCours 1 · Bases · S.1
Pourquoi on écrit tout en double
L'algorithme, c'est l'écrit.
Python, c'est la pratique.
Le raisonnement est le même.

Ce n'est pas deux matières. C'est une seule idée, notée dans deux langues — et le bac te demande les deux. Dans ce cours, chaque exercice est corrigé dans les deux, côte à côte, jusqu'à ce que la traduction devienne un réflexe.

MarQentiCours 1 · Bases · S.1
La structure officielle

ALGORITHME · DEBUT · FIN

Algorithme
ALGORITHME Somme
DEBUT
    Lire (a)
    Lire (b)
    s ← a + b
    Écrire ("La somme est ", s)
FIN
Python
a = int(input("a : "))
b = int(input("b : "))
s = a + b
print("La somme est ", s)
DEBUT et FIN en majuscules, sans accent. L'affectation est une flèche ← , jamais un « = ».
MarQentiCours 1 · Bases · S.1
Le tableau qui rapporte des points

Le T.D.O.

Chaque objet que tu utilises doit être déclaré : deux colonnes, Objet et Type/Nature. Le sujet précise toujours s'il le demande — lis le N.B.

T.D.O. de l'algorithme Somme
ObjetType/Nature
aEntier
bEntier
sEntier
Le réflexe qui coûte cher : le sujet écrit soit « le candidat est appelé à dresser les tableaux… » (⇒ tu les écris, ils sont notés), soit « le candidat n'est pas appelé à… » (⇒ tu ne les écris pas, tu gagnes 5 minutes). Les deux phrases sont dans le sujet 2025.
MarQentiCours 1 · Bases · S.1
Le second tableau

Le nouveau type (T.D.N.T.)

Dès que tu utilises un tableau, tu lui donnes un nom de type. C'est ce nom que tu écriras ensuite dans l'en-tête de tes modules.

Tableau de déclaration des nouveaux types
Nouveau type
TAB = Tableau de 15 Entier
Exemple réel — sujet du bac pratique 2026. Le type s'appelle ensuite dans l'en-tête : Procédure Termes (@ T : TAB, n, x : Entier)
MarQentiCours 1 · Bases · S.1
Les 5 types du programme

Algorithme ⇄ Python

Entier → int

nombres sans virgule : 0, 42, −7.

Réel → float

nombres à virgule : 3.14, 12.5.

Booléen → bool

Vrai / Faux — True / False.

Caractère & Chaîne → str

en Python, un caractère est une chaîne de longueur 1.

MarQentiCours 1 · Bases · S.1
Le piège n°1 de la pratique
input() te rend
toujours une chaîne.
Faux
n = input("n : ")
# n vaut "5", pas 5
print(n + 1)   # ERREUR
Juste
n = int(input("n : "))
# n vaut 5, un entier
print(n + 1)   # 6
En algorithmique, Lire (n) connaît déjà le type de n grâce au TDO. Python, lui, ne devine rien : tu convertis toi-même.
MarQentiCours 1 · Bases · S.1

À toi.
Les deux langues.

Neuf exercices dans l'esprit du bac, puis un vrai sujet tombé en 2026. Chaque correction est donnée en algorithme et en Python.

Exercice 1 · l'échauffement
Exercice 12 ptsesprit bac
Écrire un algorithme qui saisit deux entiers a et b, calcule leur produit, et l'affiche. Dresser le T.D.O., puis traduire en Python.
Algorithme
ALGORITHME Produit
DEBUT
    Lire (a)
    Lire (b)
    p ← a * b
    Écrire ("Produit = ", p)
FIN
Python
a = int(input("a : "))
b = int(input("b : "))
p = a * b
print("Produit = ", p)
T.D.O. → a : Entier · b : Entier · p : Entier
MarQentiCours 1 · Bases · S.1
Exercice 2 · les réels
Exercice 22 ptsesprit bac
Saisir la longueur et la largeur d'un rectangle (des réels), puis afficher son périmètre et sa surface.
Algorithme
ALGORITHME Rectangle
DEBUT
    Lire (L)
    Lire (l)
    p ← 2 * (L + l)
    s ← L * l
    Écrire ("Périmètre = ", p)
    Écrire ("Surface = ", s)
FIN
Python
L = float(input("Longueur : "))
l = float(input("Largeur : "))
p = 2 * (L + l)
s = L * l
print("Périmètre = ", p)
print("Surface = ", s)
T.D.O. → L : Réel · l : Réel · p : Réel · s : Réel  ·  des réels ⇒ float, pas int
MarQentiCours 1 · Bases · S.1
Exercice 3 · les chaînes
Exercice 31,5 ptesprit bac
Saisir le nom d'un élève et son âge, puis afficher : Bonjour Amine, tu as 18 ans.
Algorithme
ALGORITHME Salut
DEBUT
    Lire (nom)
    Lire (age)
    Écrire ("Bonjour ", nom,
            ", tu as ", age, " ans.")
FIN
Python
nom = input("Nom : ")
age = int(input("Âge : "))
print("Bonjour ", nom,
      ", tu as ", age, " ans.")
nom est une chaîne ⇒ pas de conversion. age est un Entier ⇒ int().
MarQentiCours 1 · Bases · S.1
Exercice 4 · la moyenne
Exercice 42 ptsesprit bac
Saisir trois notes réelles et afficher leur moyenne arrondie à deux décimales.
Algorithme
ALGORITHME Moyenne
DEBUT
    Lire (n1)
    Lire (n2)
    Lire (n3)
    m ← (n1 + n2 + n3) / 3
    Écrire ("Moyenne = ", Arrondi (m, 2))
FIN
Python
n1 = float(input("n1 : "))
n2 = float(input("n2 : "))
n3 = float(input("n3 : "))
m = (n1 + n2 + n3) / 3
print("Moyenne = ", round(m, 2))
Arrondi(x, n) ⇄ round(x, n). Attention aux parenthèses : (n1+n2+n3) / 3, pas n1+n2+n3/3.
MarQentiCours 1 · Bases · S.1
Exercice 5 · le classique
Exercice 52 ptsesprit bac
Saisir deux entiers a et b, échanger leurs valeurs, puis les afficher. Indice : il te faut un troisième objet.
Algorithme
ALGORITHME Echange
DEBUT
    Lire (a)
    Lire (b)
    aux ← a
    a ← b
    b ← aux
    Écrire (a, b)
FIN
Python
a = int(input("a : "))
b = int(input("b : "))
aux = a
a = b
b = aux
print(a, b)
Sans aux, la première affectation écrase a : tu obtiendrais b et b.
MarQentiCours 1 · Bases · S.1
Exercice 5 · l'échange en direct

Pourquoi la variable aux ? (a=3, b=8)

MarQentiCours 1 · Bases · S.1
Exercice 6 · lecture inverse
Exercice 62 ptsesprit bac
Voici un algorithme. Dresse son T.D.O. et dis quel est son rôle.
Algorithme
ALGORITHME Inconnu
DEBUT
    Lire (ch)
    n ← Long (ch)
    Écrire (Majus (ch), n)
FIN
ObjetType/Nature
chChaîne de caractères
nEntier
Rôle : saisir une chaîne, puis afficher cette chaîne en majuscules suivie de son nombre de caractères.
MarQentiCours 1 · Bases · S.1
Exercice 7 · la chasse aux fautes
Exercice 73 ptsesprit bac
Cet algorithme contient 4 fautes de convention. Trouve-les et corrige-les.
Algorithme
ALGORITHME Test
Debut
    Lire x
    s = 0
    Pour i de 1 à 5 Faire
        s ← s + i
    FinPour
    Écrire (s)
FIN
1. DebutDEBUT (majuscules, sans accent)  ·  2. Lire x → Lire (x) (parenthèses)  ·  3. s = 0 → s ← 0 (le « = » est un test, pas une affectation)  ·  4. FinPourFin Pour (en deux mots — alors que FinSi s'écrit en un seul)
MarQentiCours 1 · Bases · S.1
Exercice 8 · traduction inverse
Exercice 82 ptsesprit bac
Voici du Python (épreuve pratique). Réécris-le en algorithme (épreuve écrite), et donne le T.D.O.
Python
r = float(input("Rayon : "))
per = 2 * 3.14 * r
print("Périmètre = ", per)
Algorithme
ALGORITHME Cercle
DEBUT
    Lire (r)
    per ← 2 * 3.14 * r
    Écrire ("Périmètre = ", per)
FIN
T.D.O. → r : Réel · per : Réel  ·  le float() disparaît : c'est le T.D.O. qui porte le type.
MarQentiCours 1 · Bases · S.1
Exercice 9 · vrai ou faux
Exercice 92 ptsesprit bac
Coche ce qui est vrai.
À l'épreuve écrite, on peut répondre en Python.
L'affectation s'écrit ; le = sert à tester l'égalité.
Fin Pour s'écrit en deux mots, FinSi en un seul.
Le T.D.O. est toujours obligatoire, même si le sujet ne le demande pas.
input() rend une chaîne de caractères.
Vrai : 2, 3, 5.  —  1 : faux, l'écrit est en pseudo-code uniquement (le Python ne rapporte rien).  4 : faux, le sujet dit explicitement s'il le demande ou non.
MarQentiCours 1 · Bases · S.1
À voir une fois, puis à oublier

Ce que ton vieux livre t'enseigne (et qui est mort)

Ancien — avant 2022
Analyse du programme
Résultat : Écrire (s)
Traitement : ...
0) DEF FN Somme (a, b : entier)
1) Somme ← a + b
2) Fin Somme
# chaînes indexées à partir de 1
Officiel — aujourd'hui
(plus d'Analyse du tout)
Fonction Somme (a, b : Entier) : Entier
DEBUT
    Retourner (a + b)
FIN
# chaînes indexées à partir de 0
Pourquoi c'est important : la convention a changé en 2022. La plupart des livres, des fiches photocopiées et des sites tunisiens enseignent encore la colonne de gauche. Si tu la reconnais, tu sauras l'ignorer.
MarQentiCours 1 · Bases · S.1
Les 4 fautes qui coûtent des points

Ce que le correcteur voit en premier

Le « = » au lieu de ←

l'affectation est une flèche. Toujours.

Fin Pour / FinSi

deux mots pour Pour, Tant que et Selon. Un seul pour Si.

Le N.B. non lu

le TDO est demandé, ou explicitement pas. Lis-le.

Le Python sur la copie

à l'écrit, il ne rapporte rien. Zéro.

MarQentiCours 1 · Bases · S.1
Le vrai sujet · bac 2026, épreuve pratique
Sujet du bacréelSession 2026 · sections scientifiques
Voici la procédure Termes, telle qu'elle est imprimée sur le sujet. Dresse son T.D.O.L et son nouveau type, sachant que le tableau contient au maximum 15 entiers.
Algorithme — donné par le sujet
Procédure Termes (@ T : TAB, n, x : Entier)
DEBUT
    T[0] ← x
    Pour i de 1 à n-1 Faire
        T[i] ← T[i-1] + (T[0] Mod 3) - 1
    Fin Pour
FIN
T.D.O.L
ObjetType/Nature
iEntier
Nouveau type
Nouveau type
TAB = Tableau de 15 Entier
C'est mot pour mot la correction imprimée sur le sujet officiel 2026. Seul i est local : T, n et x sont des paramètres, ils ne vont pas au T.D.O.L.
MarQentiCours 1 · Bases · S.1
Le vrai sujet · ce que fait Termes

La procédure remplit le tableau (x = 8)

MarQentiCours 1 · Bases · S.1
Récapitulatif

La séance en une phrase

Deux épreuves de même poids : l'écrit en pseudo-code, la pratique en Python. Un seul raisonnement. Écris ALGORITHME/DEBUT/FIN, l'affectation , le T.D.O. quand le sujet le demande — et traduis.

MarQentiCours 1 · Bases · S.1
Le correcteur ne lit pas ton intention.
Il lit ta notation.
Séance 2 → Les conditionnelles