Guide de Pseudocode selon les Conventions Algorithmiques
Tunisiennes
Ministère de l'Éducation - Tunisie
Direction Générale des Programmes et de la Formation Continue
Destiné aux enseignants et élèves du secondaire
Année scolaire 2024/2025
Table des matières
1. Le pseudocode dans les épreuves
2. Variables, constantes et types de données
3. Les tableaux
4. Les enregistrements
5. Opérations communes
6. Structures de contrôle conditionnelles
7. Structures de contrôle itératives
8. Les modules (Procédures et Fonctions)
9. Gestion des fichiers
1. Le pseudocode dans les épreuves
1.1 Style et présentation
Le pseudocode est présenté avec une police à espacement fixe pour garantir une lisibilité optimale. La
taille de la police reste cohérente dans tout le document.
1.2 Indentation
Les lignes sont indentées (généralement par trois espaces) pour indiquer qu'elles sont contenues dans
une instruction d'une ligne précédente. L'indentation améliore la lisibilité du code et met en évidence la
structure logique de l'algorithme.
1.3 Casse et conventions
Les mots-clés sont en majuscules : SI , POUR , PROCÉDURE , ALGORITHME
Les identificateurs utilisent la notation mixte avec des majuscules pour marquer le début des
nouveaux mots : NombreEtudiants , MoyenneClasse
Les commentaires sont précédés par //
1.4 Numérotation des lignes
Lorsqu'il est nécessaire de numéroter les lignes pour s'y référer, les numéros de ligne sont présentés à
gauche du pseudocode avec un espacement suffisant.
1.5 Commentaires
Les commentaires sont précédés par deux barres obliques // . Le commentaire continue jusqu'à la fin de
la ligne.
Exemple - Commentaires :
// Ce module calcule la moyenne d'une classe
// et affiche le résultat
PROCÉDURE CalculerMoyenne()
DEBUT
Somme ← 0 // Initialiser la somme des notes
// Boucle pour saisir les notes
PROCÉDURE
2. Variables, constantes et types de données
2.1 Types de données simples
Les types de données de base reconnus sont :
Entier : un nombre entier
Réel : un nombre pouvant contenir une partie fractionnaire
Caractère : un seul caractère
Chaîne de caractères : une séquence de zéro ou plusieurs caractères
Booléen : les valeurs logiques Vrai et Faux
2.2 Littéraux
Les littéraux des types de données ci-dessus s'écrivent comme suit :
Entier : Écrit normalement en base décimale, par exemple 5, -3
Réel : Toujours écrit avec au moins un chiffre de chaque côté de la virgule, par exemple 4,7, 0,3, -4,0
Caractère : Un seul caractère délimité par des apostrophes, par exemple 'x', 'A', '@'
Chaîne : Délimitée par des guillemets, par exemple "Ceci est une chaîne", ""
Booléen : Vrai, Faux
2.3 Identificateurs
Les identificateurs (noms donnés aux variables, constantes, procédures et fonctions) utilisent la casse
mixte. Ils ne peuvent contenir que des lettres (A-Z, a-z), des chiffres (0-9) et le caractère de soulignement
(_). Ils doivent commencer par une lettre.
2.4 Déclaration des objets - TDO (Tableau de Déclaration des Objets)
Il est obligatoire de déclarer explicitement toutes les variables dans un TDO.
Format du TDO :
TDO
Objet Type/Nature
Nom_variable Type_variable
Exemple - TDO simple :
TDO
Objet Type/Nature
Compteur Entier
NoteMoyenne Réel
EstReussi Booléen
NomEtudiant Chaîne de caractères
2.5 Forme générale d'un algorithme
ALGORITHME Nom_Algorithme
TDO
Objet Type/Nature
Variable1 Type1
Variable2 Type2
DEBUT
Traitements
FIN
Exemple complet :
ALGORITHME CalculerMoyenneEtudiant
TDO
Objet Type/Nature
Note1 Réel
Note2 Réel
Note3 Réel
Moyenne Réel
DEBUT
Écrire("Saisir la première note :")
Lire(Note1)
Écrire("Saisir la deuxième note :")
Lire(Note2)
Écrire("Saisir la troisième note :")
Lire(Note3)
Moyenne ← (Note1 + Note2 + Note3) / 3
Écrire("La moyenne est :", Moyenne)
FIN
2.6 Affectations
L'opérateur d'affectation est ← .
Format :
Identificateur ← Valeur
Exemples :
Compteur ← 0
Compteur ← Compteur + 1
MontantTotal ← NbHeures * TauxHoraire
3. Les tableaux
3.1 Déclaration des tableaux
Les tableaux sont des structures de longueur fixe composées d'éléments de type identique, accessibles
par des indices consécutifs. L'indice du premier élément est généralement 0.
TDO pour les tableaux :
Tableau à une dimension :
TDO
Objet Type/Nature
Nom_tableau Tableau de N Type_élément
Tableau à deux dimensions :
TDO
Objet Type/Nature
Nom_tableau Tableau de N lignes * M colonnes Type_élément
Exemples de déclarations :
TDO
Objet Type/Nature
NotesEtudiants Tableau de 30 Réel
Damier Tableau de 8 lignes * 8 colonnes Caractère
3.2 Utilisation des tableaux
Les valeurs d'index des tableaux peuvent être des valeurs littérales ou des expressions qui s'évaluent à
une valeur entière valide.
Exemple - Utilisation des tableaux :
ALGORITHME GestionNotes
TDO
Objet Type/Nature
NotesEtudiants Tableau de 5 Réel
i Entier
Somme Réel
Moyenne Réel
DEBUT
// Saisie des notes
Pour i de 0 à 4 Faire
Écrire("Entrer la note de l'étudiant", i+1, ":")
Lire(NotesEtudiants[i])
Fin Pour
// Calcul de la moyenne
Somme ← 0
Pour i de 0 à 4 Faire
Somme ← Somme + NotesEtudiants[i]
Fin Pour
Moyenne ← Somme / 5
Écrire("La moyenne de la classe est :", Moyenne)
FIN
4. Les enregistrements
4.1 Définition des enregistrements
Un enregistrement est un type de données composé qui peut contenir plusieurs champs de types
différents.
TDO pour les enregistrements :
TDO
Objet Type/Nature
Nom_enregistrement Enregistrement
Nom_champ1 : Type_champ1
Nom_champ2 : Type_champ2
...
Fin
Exemple de déclaration :
TDO
Objet Type/Nature
Etudiant Enregistrement
Nom : Chaîne de caractères
Prenom : Chaîne de caractères
Age : Entier
Moyenne : Réel
Fin
4.2 Utilisation des enregistrements
Les champs individuels sont accessibles en utilisant la notation pointée.
Exemple - Utilisation des enregistrements :
ALGORITHME GestionEtudiant
TDO
Objet Type/Nature
Etudiant1 Enregistrement
Nom : Chaîne de caractères
Prenom : Chaîne de caractères
Age : Entier
Moyenne : Réel
Fin
Etudiant2 Enregistrement
Nom : Chaîne de caractères
Prenom : Chaîne de caractères
Age : Entier
Moyenne : Réel
Fin
DEBUT
// Saisie des informations du premier étudiant
Écrire("Nom de l'étudiant :")
Lire([Link])
Écrire("Prénom de l'étudiant :")
Lire([Link])
Écrire("Âge de l'étudiant :")
Lire([Link])
Écrire("Moyenne de l'étudiant :")
Lire([Link])
// Copie complète de l'enregistrement
Etudiant2 ← Etudiant1
// Affichage
Écrire("Informations copiées :")
Écrire("Nom :", [Link])
Écrire("Prénom :", [Link])
FIN
5. Opérations communes
5.1 Entrée et sortie
Entrée :
Lire(Objet)
Sortie :
Écrire("Message", Objet, Expression)
Écrire_nl("Message", Objet, Expression) // avec retour à la ligne
Exemple :
ALGORITHME ExempleEntreeSortie
TDO
Objet Type/Nature
Reponse Entier
Score Entier
Vies Entier
DEBUT
Lire(Reponse)
Écrire(Score)
Écrire("Il vous reste", Vies, "vies")
FIN
5.2 Opérations arithmétiques
Les symboles d'opérateurs arithmétiques standard sont utilisés :
Opération Opérateur
Addition +
Soustraction -
Multiplication *
Division /
Division entière Div
Reste de division Mod
5.3 Opérations de comparaison
Opération Opérateur
Égal =
Différent ≠
Supérieur >
Supérieur ou égal ≥
Inférieur <
Inférieur ou égal ≤
5.4 Opérateurs logiques
Les opérateurs logiques utilisés sont : Et, Ou, Non
5.5 Fonctions prédéfinies
Fonctions sur les chaînes de caractères
Fonction Rôle
Long(ch) Retourne la longueur de la chaîne
Pos(ch1, ch2) Retourne la position de ch1 dans ch2
Sous_chaine(ch, d, f) Retourne une partie de la chaîne
Majus(ch) Convertit en majuscules
Exemple :
ALGORITHME ManipulationChaines
TDO
Objet Type/Nature
Texte Chaîne de caractères
Longueur Entier
SousChaine Chaîne de caractères
DEBUT
Texte ← "Bonjour Tunisia"
Longueur ← Long(Texte)
SousChaine ← Sous_chaine(Texte, 0, 7)
Écrire("Texte :", Texte)
Écrire("Longueur :", Longueur)
Écrire("Sous-chaîne :", SousChaine)
FIN
6. Structures de contrôle conditionnelles
6.1 Structure conditionnelle simple
Si Condition Alors
Traitement
FinSi
6.2 Structure conditionnelle complète
Si Condition Alors
Traitement1
Sinon
Traitement2
FinSi
Exemple :
ALGORITHME VerificationAge
TDO
Objet Type/Nature
Age Entier
DEBUT
Écrire("Entrez votre âge :")
Lire(Age)
Si Age ≥ 18 Alors
Écrire("Vous êtes majeur")
Sinon
Écrire("Vous êtes mineur")
FinSi
FIN
6.3 Structure conditionnelle généralisée
Si Condition1 Alors
Traitement1
Sinon Si Condition2 Alors
Traitement2
Sinon Si Condition3 Alors
Traitement3
Sinon
TraitementN
FinSi
6.4 Structure à choix multiples
Selon Sélecteur
Valeur1 : Traitement1
Valeur2 : Traitement2
Valeur3 . . Valeur5 : Traitement3
Sinon TraitementN
Fin Selon
Exemple :
ALGORITHME MenuCalculatrice
TDO
Objet Type/Nature
Choix Caractère
A Réel
B Réel
Resultat Réel
DEBUT
Écrire("Entrez deux nombres :")
Lire(A)
Lire(B)
Écrire("Choisissez l'opération (+, -, *, /) :")
Lire(Choix)
Selon Choix
'+' : Resultat ← A + B
'-' : Resultat ← A - B
'*' : Resultat ← A * B
'/' : Si B ≠ 0 Alors
Resultat ← A / B
Sinon
Écrire("Division par zéro impossible")
FinSi
Sinon Écrire("Opération non reconnue")
Fin Selon
Écrire("Résultat :", Resultat)
FIN
7. Structures de contrôle itératives
7.1 Boucle Pour (itération complète)
Pour Compteur de Début à Fin [Pas = valeur_pas] Faire
Traitement
Fin Pour
Exemple :
ALGORITHME TableMultiplication
TDO
Objet Type/Nature
Nombre Entier
i Entier
DEBUT
Écrire("Entrez un nombre :")
Lire(Nombre)
Écrire("Table de multiplication de", Nombre)
Pour i de 1 à 10 Faire
Écrire(Nombre, "x", i, "=", Nombre * i)
Fin Pour
FIN
7.2 Boucle Tant que (pré-condition)
Tant que Condition Faire
Traitement
Fin Tant que
7.3 Boucle Répéter (post-condition)
Répéter
Traitement
Jusqu'à Condition
Exemple :
ALGORITHME JeuDevinette
TDO
Objet Type/Nature
NombreSecret Entier
Proposition Entier
Tentatives Entier
DEBUT
NombreSecret ← Aléa(1, 100)
Tentatives ← 0
Écrire("Devinez le nombre entre 1 et 100")
Répéter
Écrire("Votre proposition :")
Lire(Proposition)
Tentatives ← Tentatives + 1
Si Proposition > NombreSecret Alors
Écrire("Trop grand !")
Sinon Si Proposition < NombreSecret Alors
Écrire("Trop petit !")
FinSi
Jusqu'à Proposition = NombreSecret
Écrire("Bravo ! Trouvé en", Tentatives, "tentatives")
FIN
8. Les modules (Procédures et Fonctions)
8.1 Les Procédures
Déclaration :
Procédure Nom_procédure (pf1 : type1, pf2 : type2, ..., pfn : typen)
TDO
Objet Type/Nature
Variable_locale Type_variable
DEBUT
Traitement
FIN
Appel :
Nom_procédure (pe1, pe2, ..., pen)
Exemple :
Procédure AfficherInfosEtudiant (Nom : Chaîne de caractères, Moyenne : Réel)
TDO
Objet Type/Nature
Mention Chaîne de caractères
DEBUT
Si Moyenne ≥ 16 Alors
Mention ← "Très Bien"
Sinon Si Moyenne ≥ 14 Alors
Mention ← "Bien"
Sinon Si Moyenne ≥ 12 Alors
Mention ← "Assez Bien"
Sinon Si Moyenne ≥ 10 Alors
Mention ← "Passable"
Sinon
Mention ← "Insuffisant"
FinSi
Écrire("Étudiant :", Nom)
Écrire("Moyenne :", Moyenne)
Écrire("Mention :", Mention)
FIN
// Algorithme principal
ALGORITHME PrincipalEtudiant
TDO
Objet Type/Nature
NomEtudiant Chaîne de caractères
MoyenneEtudiant Réel
DEBUT
Écrire("Nom de l'étudiant :")
Lire(NomEtudiant)
Écrire("Moyenne :")
Lire(MoyenneEtudiant)
AfficherInfosEtudiant(NomEtudiant, MoyenneEtudiant)
FIN
8.2 Les Fonctions
Déclaration :
Fonction Nom_fonction (pf1 : type1, pf2 : type2, ..., pfn : typen) : Type_résultat
TDO
Objet Type/Nature
Variable_locale Type_variable
DEBUT
Traitement
Retourner Résultat
FIN
Appel :
Objet ← Nom_fonction (pe1, pe2, ..., pen)
Exemple :
Fonction CalculerMoyenne (Note1 : Réel, Note2 : Réel, Note3 : Réel) : Réel
TDO
Objet Type/Nature
Somme Réel
Moyenne Réel
DEBUT
Somme ← Note1 + Note2 + Note3
Moyenne ← Somme / 3
Retourner Moyenne
FIN
// Algorithme principal
ALGORITHME UtilisationFonction
TDO
Objet Type/Nature
N1 Réel
N2 Réel
N3 Réel
MoyenneCalculee Réel
DEBUT
Écrire("Entrez trois notes :")
Lire(N1)
Lire(N2)
Lire(N3)
MoyenneCalculee ← CalculerMoyenne(N1, N2, N3)
Écrire("La moyenne est :", MoyenneCalculee)
FIN
8.3 Passage de paramètres
Par valeur : paramètre standard
Par référence : précédé du symbole @
Exemple avec passage par référence :
Procédure EchangerValeurs (@A : Entier, @B : Entier)
TDO
Objet Type/Nature
Temp Entier
DEBUT
Temp ← A
A←B
B ← Temp
FIN
9. Gestion des fichiers
9.1 Fichiers texte
Les fichiers texte consistent en lignes de texte lues ou écrites consécutivement sous forme de chaînes.
TDO pour fichiers :
TDO
Objet Type/Nature
Nom_fichier Fichier Texte
Opérations principales :
Ouvrir("Chemin\Nom_physique", Nom_logique, "Mode")
Lire(Nom_logique, ch) ou Lire_ligne(Nom_logique, ch)
Écrire(Nom_logique, ch) ou Écrire_nl(Nom_logique, ch)
Fin_fichier(Nom_logique)
Fermer(Nom_logique)
Modes d'ouverture :
"r" : Lecture
"w" : Écriture (création)
"a" : Ajout à la fin
Exemple :
ALGORITHME GestionFichierNotes
TDO
Objet Type/Nature
FichierNotes Fichier Texte
Ligne Chaîne de caractères
NomEtudiant Chaîne de caractères
Note Réel
DEBUT
Ouvrir("C:\Ecole\[Link]", FichierNotes, "w")
Répéter
Écrire("Nom de l'étudiant (ou 'fin' pour terminer) :")
Lire(NomEtudiant)
Si NomEtudiant ≠ "fin" Alors
Écrire("Note :")
Lire(Note)
Ligne ← NomEtudiant + " : " + Convch(Note)
Écrire_nl(FichierNotes, Ligne)
FinSi
Jusqu'à NomEtudiant = "fin"
Fermer(FichierNotes)
Écrire("Fichier sauvegardé avec succès")
FIN
9.2 Fichiers de données
Les fichiers de données contiennent des enregistrements de longueur fixe.
TDO pour fichiers de données :
TDO
Objet Type/Nature
Nom_fichier Fichier de Type_élément
Modes d'ouverture :
"rb" : Lecture (pointer au début)
"wb" : Écriture (création)
"ab" : Ajout à la fin
Exemple :
ALGORITHME GestionFichierEtudiants
TDO
Objet Type/Nature
FichierEtudiants Fichier de Enregistrement
Nom : Chaîne de caractères
Prenom : Chaîne de caractères
Moyenne : Réel
Fin
UnEtudiant Enregistrement
Nom : Chaîne de caractères
Prenom : Chaîne de caractères
Moyenne : Réel
Fin
DEBUT
Ouvrir("C:\Ecole\[Link]", FichierEtudiants, "wb")
Répéter
Écrire("Nom de l'étudiant (ou 'fin' pour terminer) :")
Lire([Link])
Si [Link] ≠ "fin" Alors
Écrire("Prénom :")
Lire([Link])
Écrire("Moyenne :")
Lire([Link])
Écrire(FichierEtudiants, UnEtudiant)
FinSi
Jusqu'à [Link] = "fin"
Fermer(FichierEtudiants)
FIN
Index des mots-clés et symboles
Symbole/Mot-clé Usage
← Affectation
+ Addition
- Soustraction
* Multiplication
/ Division
Div Division entière
Mod Modulo
= Égalité
≠ Différent
> Supérieur
≥ Supérieur ou égal
< Inférieur
≤ Inférieur ou égal
Et Conjonction logique
Ou Disjonction logique
Non Négation logique
ALGORITHME Début d'algorithme
DEBUT Début de traitement
FIN Fin de traitement
TDO Tableau de Déclaration d'Objets
Si...Alors...FinSi Structure conditionnelle
Selon...Fin Selon Choix multiples
Pour...Fin Pour Boucle déterminée
Tant que...Fin Tant que Boucle pré-conditionnelle
Répéter...Jusqu'à Boucle post-conditionnelle
Procédure Déclaration de procédure
Fonction Déclaration de fonction
Retourner Retour de fonction
Lire Opération d'entrée
Écrire Opération de sortie
// Commentaire
© Ministère de l'Éducation - Tunisie 2024
Ce guide est destiné à l'usage pédagogique dans les établissements scolaires tunisiens.