COURS D’ALGORITHME
PROGRAMME
1- Définition et structure de l’algorithme,
2- Notion de programmation
3- Syntaxe générale d’un algorithme,
4- Notions d’instructions, opérateurs, signes - Fonctions courantes,
5- Longueur des chaînes, Fonctions sous – chaînes, Fonction de concaténation
- Algorithme et résolution d’une équation du 2e degré,
6- Traduction en turbo pascal,
7- Organigramme –
8- Structures alternatives (Boucles, structure conditionnelle, tableaux Etc.)
Algorithmes de tri dans les tableaux, les matrices, les fonctions, la
récursivité - Conception et modélisation des bases de données.
INGENIEUR ADATE Kokou M. 1 CS LA VOLONTE
COURS D’ALGORITHME
Cours sur les Algorithmes
1. Qu'est-ce qu'un algorithme ?
Un algorithme est une suite finie et ordonnée d'instructions permettant de
résoudre un problème ou d'effectuer une tâche. C'est comme une recette de cuisine
pour l'ordinateur.
Caractéristiques d'un bon algorithme :
Précis : chaque étape doit être claire et sans ambiguïté
Fini : il doit se terminer après un nombre fini d'étapes
Efficace : il doit résoudre le problème en un temps raisonnable
Général : il doit fonctionner pour tous les cas du problème
2. Structures de base
2.1 Les variables
Les variables stockent des données en mémoire.
Entier age ← 25
Réel prix ← 19.99
Chaîne nom ← "Alice"
Booléen estMajeur ← Vrai
2.2 Les opérations de base
Affectation : x ← 10
Lecture : Lire(x)
Écriture : Écrire(x)
Opérations arithmétiques : +, -, *, /, %
Opérations logiques : ET, OU, NON
Comparaisons : =, ≠, <, >, ≤, ≥
3. Structures de contrôle
3.1 Structure séquentielle
Les instructions s'exécutent les unes après les autres.
Algorithme CalculMoyenne
Début
Lire(note1)
INGENIEUR ADATE Kokou M. 2 CS LA VOLONTE
COURS D’ALGORITHME
Lire(note2)
moyenne ← (note1 + note2) / 2
Écrire("La moyenne est : ", moyenne)
Fin
3.2 Structure conditionnelle (SI...ALORS...SINON)
Algorithme TestMajorite
Début
Lire(age)
Si age ≥ 18 Alors
Écrire("Vous êtes majeur")
Sinon
Écrire("Vous êtes mineur")
FinSi
Fin
3.3 Structure de choix multiple (SELON...CAS)
Algorithme MenuRestaurant
Début
Lire(choix)
Selon choix Faire
Cas 1: Écrire("Entrée")
Cas 2: Écrire("Plat principal")
Cas 3: Écrire("Dessert")
Défaut: Écrire("Choix invalide")
FinSelon
Fin
3.4 Structure répétitive - POUR
Algorithme AffichageNombres
Début
Pour i de 1 à 10 Faire
Écrire(i)
FinPour
Fin
3.5 Structure répétitive - TANT QUE
Algorithme CompteARebours
Début
compteur ← 10
TantQue compteur > 0 Faire
Écrire(compteur)
compteur ← compteur - 1
INGENIEUR ADATE Kokou M. 3 CS LA VOLONTE
COURS D’ALGORITHME
FinTantQue
Écrire("Décollage !")
Fin
3.6 Structure répétitive - RÉPÉTER...JUSQU'À
Algorithme SaisieValide
Début
Répéter
Écrire("Entrez un nombre entre 1 et 10 : ")
Lire(nombre)
Jusqu'à (nombre ≥ 1 ET nombre ≤ 10)
Fin
4. Les tableaux
Un tableau stocke plusieurs valeurs du même type.
Algorithme SommeTableau
Variables
T : Tableau[1..5] d'Entiers
somme, i : Entiers
Début
somme ← 0
Pour i de 1 à 5 Faire
Lire(T[i])
somme ← somme + T[i]
FinPour
Écrire("La somme est : ", somme)
Fin
5. Les procédures et fonctions
5.1 Procédure (ne retourne pas de valeur)
Procédure AfficherMessage(message : Chaîne)
Début
Écrire("*** ", message, " ***")
INGENIEUR ADATE Kokou M. 4 CS LA VOLONTE
COURS D’ALGORITHME
Fin
5.2 Fonction (retourne une valeur)
Fonction Carre(x : Entier) : Entier
Début
Retourner x * x
Fin
6. Complexité algorithmique
La complexité mesure l'efficacité d'un algorithme.
Notation Big O :
O(1) : Temps constant (très rapide)
O(log n) : Logarithmique (recherche dichotomique)
O(n) : Linéaire (parcours d'un tableau)
O(n log n) : Quasi-linéaire (tri fusion)
O(n²) : Quadratique (tri à bulles)
O(2ⁿ) : Exponentielle (très lent)
7. Algorithmes classiques
7.1 Recherche linéaire
Fonction RechercheLineaire(T: Tableau, valeur: Entier) : Entier
Variables
i : Entier
Début
Pour i de 1 à longueur(T) Faire
Si T[i] = valeur Alors
Retourner i
FinSi
FinPour
Retourner -1 // Non trouvé
Fin
INGENIEUR ADATE Kokou M. 5 CS LA VOLONTE
COURS D’ALGORITHME
7.2 Tri à bulles
Procédure TriBulles(T: Tableau, n: Entier)
Variables
i, j, temp : Entiers
Début
Pour i de 1 à n-1 Faire
Pour j de 1 à n-i Faire
Si T[j] > T[j+1] Alors
temp ← T[j]
T[j] ← T[j+1]
T[j+1] ← temp
FinSi
FinPour
FinPour
Fin
7.3 Recherche du maximum
Fonction TrouverMax(T: Tableau, n: Entier) : Entier
Variables
max, i : Entiers
Début
max ← T[1]
Pour i de 2 à n Faire
Si T[i] > max Alors
max ← T[i]
FinSi
FinPour
Retourner max
INGENIEUR ADATE Kokou M. 6 CS LA VOLONTE
COURS D’ALGORITHME
Fin
8. Conseils pour écrire un algorithme
1. Comprendre le problème : Analyser ce qui est demandé
2. Identifier les entrées et sorties : Quelles données en entrée ? Quel
résultat attendu ?
3. Décomposer le problème : Diviser en sous-problèmes plus simples
4. Choisir les structures appropriées : Tableaux, boucles, conditions...
5. Écrire l'algorithme en pseudo-code : Utiliser un langage naturel
structuré
6. Tester avec des exemples : Vérifier avec différents cas
7. Optimiser si nécessaire : Améliorer la complexité
9. Exemple complet
Algorithme GestionNotes
// Programme pour calculer la moyenne et trouver la meilleure note
Variables
notes : Tableau[1..5] de Réels
i : Entier
somme, moyenne, max : Réels
Début
// Saisie des notes
Pour i de 1 à 5 Faire
Écrire("Entrez la note ", i, " : ")
Lire(notes[i])
FinPour
// Calcul de la somme et recherche du maximum
somme ← 0
max ← notes[1]
INGENIEUR ADATE Kokou M. 7 CS LA VOLONTE
COURS D’ALGORITHME
Pour i de 1 à 5 Faire
somme ← somme + notes[i]
Si notes[i] > max Alors
max ← notes[i]
FinSi
FinPour
// Calcul et affichage de la moyenne
moyenne ← somme / 5
Écrire("Moyenne : ", moyenne)
Écrire("Meilleure note : ", max)
// Déterminer la mention
Si moyenne ≥ 16 Alors
Écrire("Mention : Très Bien")
SinonSi moyenne ≥ 14 Alors
Écrire("Mention : Bien")
SinonSi moyenne ≥ 12 Alors
Écrire("Mention : Assez Bien")
SinonSi moyenne ≥ 10 Alors
Écrire("Mention : Passable")
Sinon
Écrire("Résultat : Insuffisant")
FinSi
Fin
INGENIEUR ADATE Kokou M. 8 CS LA VOLONTE
COURS D’ALGORITHME
Conclusion
Les algorithmes sont au cœur de la programmation. Maîtriser ces concepts
fondamentaux vous permettra de résoudre efficacement des problèmes de plus en
plus complexes.
Cours d'Algorithmique avec Exercices
1. Qu'est-ce qu'un algorithme ?
Un algorithme est une suite finie et ordonnée d'instructions permettant de
résoudre un problème ou d'effectuer une tâche.
Caractéristiques d'un bon algorithme :
Précis : chaque étape claire et sans ambiguïté
Fini : se termine après un nombre fini d'étapes
Efficace : résout le problème en temps raisonnable
Général : fonctionne pour tous les cas du problème
2. Structures de base
2.1 Les variables et types de données
Entier age ← 25
Réel prix ← 19.99
Chaîne nom ← "Alice"
Booléen estMajeur ← Vrai
2.2 Opérations de base
Affectation : x ← 10
Lecture : Lire(x)
Écriture : Écrire(x)
Arithmétiques : +, -, *, /, % (modulo)
Logiques : ET, OU, NON
Comparaisons : =, ≠, <, >, ≤, ≥
INGENIEUR ADATE Kokou M. 9 CS LA VOLONTE
COURS D’ALGORITHME
EXERCICE 1 : Variables et opérations
Énoncé : Écrire un algorithme qui lit deux nombres et affiche leur somme,
différence, produit et quotient.
Solution :
Algorithme Operations
Variables
a, b : Réels
Début
Écrire("Entrez le premier nombre : ")
Lire(a)
Écrire("Entrez le deuxième nombre : ")
Lire(b)
Écrire("Somme : ", a + b)
Écrire("Différence : ", a - b)
Écrire("Produit : ", a * b)
Si b ≠ 0 Alors
Écrire("Quotient : ", a / b)
Sinon
Écrire("Division impossible")
FinSi
Fin
3. Structures conditionnelles
3.1 Structure SI...ALORS...SINON
Si condition Alors
// instructions si vrai
Sinon
INGENIEUR ADATE Kokou M. 10 CS LA VOLONTE
COURS D’ALGORITHME
// instructions si faux
FinSi
📝 EXERCICE 2 : Nombre pair ou impair
Énoncé : Déterminer si un nombre est pair ou impair.
Solution :
Algorithme PairOuImpair
Variables
nombre : Entier
Début
Écrire("Entrez un nombre : ")
Lire(nombre)
Si nombre % 2 = 0 Alors
Écrire(nombre, " est pair")
Sinon
Écrire(nombre, " est impair")
FinSi
Fin
📝 EXERCICE 3 : Calculatrice de notes
Énoncé : Lire une note sur 20 et afficher la mention correspondante.
Note ≥ 16 : Très Bien
Note ≥ 14 : Bien
Note ≥ 12 : Assez Bien
Note ≥ 10 : Passable
Note < 10 : Insuffisant
Solution :
INGENIEUR ADATE Kokou M. 11 CS LA VOLONTE
COURS D’ALGORITHME
Algorithme CalculMention
Variables
note : Réel
Début
Écrire("Entrez la note sur 20 : ")
Lire(note)
Si note < 0 OU note > 20 Alors
Écrire("Note invalide")
SinonSi note ≥ 16 Alors
Écrire("Mention : Très Bien")
SinonSi note ≥ 14 Alors
Écrire("Mention : Bien")
SinonSi note ≥ 12 Alors
Écrire("Mention : Assez Bien")
SinonSi note ≥ 10 Alors
Écrire("Mention : Passable")
Sinon
Écrire("Résultat : Insuffisant")
FinSi
Fin
📝 EXERCICE 4 : Maximum de trois nombres
Énoncé : Trouver le maximum de trois nombres.
Solution :
Algorithme MaxTroisNombres
Variables
INGENIEUR ADATE Kokou M. 12 CS LA VOLONTE
COURS D’ALGORITHME
a, b, c, max : Entiers
Début
Lire(a)
Lire(b)
Lire(c)
max ← a
Si b > max Alors
max ← b
FinSi
Si c > max Alors
max ← c
FinSi
Écrire("Le maximum est : ", max)
Fin
4. Structures répétitives (Boucles)
4.1 Boucle POUR
Pour i de début à fin Faire
// instructions
FinPour
📝 EXERCICE 5 : Table de multiplication
Énoncé : Afficher la table de multiplication d'un nombre donné.
Solution :
Algorithme TableMultiplication
INGENIEUR ADATE Kokou M. 13 CS LA VOLONTE
COURS D’ALGORITHME
Variables
nombre, i : Entiers
Début
Écrire("Entrez un nombre : ")
Lire(nombre)
Pour i de 1 à 10 Faire
Écrire(nombre, " x ", i, " = ", nombre * i)
FinPour
Fin
📝 EXERCICE 6 : Somme des N premiers nombres
Énoncé : Calculer la somme de 1 + 2 + 3 + ... + N.
Solution :
Algorithme SommeNombres
Variables
N, i, somme : Entiers
Début
Écrire("Entrez N : ")
Lire(N)
somme ← 0
Pour i de 1 à N Faire
somme ← somme + i
FinPour
Écrire("La somme est : ", somme)
INGENIEUR ADATE Kokou M. 14 CS LA VOLONTE
COURS D’ALGORITHME
Fin
4.2 Boucle TANT QUE
TantQue condition Faire
// instructions
FinTantQue
📝 EXERCICE 7 : Nombre de chiffres
Énoncé : Compter le nombre de chiffres d'un entier.
Solution :
Algorithme CompteChiffres
Variables
nombre, compteur : Entiers
Début
Écrire("Entrez un nombre : ")
Lire(nombre)
Si nombre = 0 Alors
compteur ← 1
Sinon
compteur ← 0
TantQue nombre ≠ 0 Faire
nombre ← nombre DIV 10
compteur ← compteur + 1
FinTantQue
FinSi
Écrire("Nombre de chiffres : ", compteur)
INGENIEUR ADATE Kokou M. 15 CS LA VOLONTE
COURS D’ALGORITHME
Fin
📝 EXERCICE 8 : Factorielle
Énoncé : Calculer la factorielle de N (N! = 1 × 2 × 3 × ... × N).
Solution :
Algorithme Factorielle
Variables
N, i, factorielle : Entiers
Début
Écrire("Entrez N : ")
Lire(N)
factorielle ← 1
i←1
TantQue i ≤ N Faire
factorielle ← factorielle * i
i←i+1
FinTantQue
Écrire(N, "! = ", factorielle)
Fin
📝 EXERCICE 9 : Suite de Fibonacci
Énoncé : Afficher les N premiers termes de la suite de Fibonacci (0, 1, 1, 2, 3, 5,
8...).
Solution :
Algorithme Fibonacci
Variables
INGENIEUR ADATE Kokou M. 16 CS LA VOLONTE
COURS D’ALGORITHME
N, i, a, b, temp : Entiers
Début
Écrire("Combien de termes ? ")
Lire(N)
a←0
b←1
Pour i de 1 à N Faire
Écrire(a)
temp ← a + b
a←b
b ← temp
FinPour
Fin
5. Les tableaux
📝 EXERCICE 10 : Remplir et afficher un tableau
Énoncé : Remplir un tableau de 10 entiers et l'afficher.
Solution :
Algorithme RemplirTableau
Variables
T : Tableau[1..10] d'Entiers
i : Entier
Début
// Remplissage
INGENIEUR ADATE Kokou M. 17 CS LA VOLONTE
COURS D’ALGORITHME
Pour i de 1 à 10 Faire
Écrire("Entrez l'élément ", i, " : ")
Lire(T[i])
FinPour
// Affichage
Écrire("Contenu du tableau : ")
Pour i de 1 à 10 Faire
Écrire(T[i], " ")
FinPour
Fin
📝 EXERCICE 11 : Moyenne d'un tableau
Énoncé : Calculer la moyenne des éléments d'un tableau.
Solution :
Algorithme MoyenneTableau
Variables
T : Tableau[1..5] de Réels
i : Entier
somme, moyenne : Réels
Début
somme ← 0
Pour i de 1 à 5 Faire
Écrire("Note ", i, " : ")
Lire(T[i])
somme ← somme + T[i]
INGENIEUR ADATE Kokou M. 18 CS LA VOLONTE
COURS D’ALGORITHME
FinPour
moyenne ← somme / 5
Écrire("La moyenne est : ", moyenne)
Fin
📝 EXERCICE 12 : Recherche dans un tableau
Énoncé : Rechercher un élément dans un tableau et afficher sa position.
Solution :
Algorithme RechercheElement
Variables
T : Tableau[1..10] d'Entiers
i, valeur : Entiers
trouve : Booléen
Début
// Remplissage
Pour i de 1 à 10 Faire
Lire(T[i])
FinPour
Écrire("Valeur à rechercher : ")
Lire(valeur)
trouve ← Faux
i←1
TantQue (i ≤ 10) ET (NON trouve) Faire
Si T[i] = valeur Alors
INGENIEUR ADATE Kokou M. 19 CS LA VOLONTE
COURS D’ALGORITHME
Écrire("Trouvé à la position ", i)
trouve ← Vrai
FinSi
i←i+1
FinTantQue
Si NON trouve Alors
Écrire("Élément non trouvé")
FinSi
Fin
📝 EXERCICE 13 : Inverser un tableau
Énoncé : Inverser l'ordre des éléments d'un tableau.
Solution :
Algorithme InverserTableau
Variables
T : Tableau[1..10] d'Entiers
i, temp : Entiers
Début
// Remplissage
Pour i de 1 à 10 Faire
Lire(T[i])
FinPour
// Inversion
Pour i de 1 à 5 Faire
temp ← T[i]
INGENIEUR ADATE Kokou M. 20 CS LA VOLONTE
COURS D’ALGORITHME
T[i] ← T[11-i]
T[11-i] ← temp
FinPour
// Affichage
Pour i de 1 à 10 Faire
Écrire(T[i], " ")
FinPour
Fin
6. Algorithmes de tri
📝 EXERCICE 14 : Tri à bulles
Énoncé : Trier un tableau par ordre croissant avec le tri à bulles.
Solution :
Algorithme TriBulles
Variables
T : Tableau[1..10] d'Entiers
i, j, temp, n : Entiers
Début
n ← 10
// Remplissage
Pour i de 1 à n Faire
Lire(T[i])
FinPour
INGENIEUR ADATE Kokou M. 21 CS LA VOLONTE
COURS D’ALGORITHME
// Tri à bulles
Pour i de 1 à n-1 Faire
Pour j de 1 à n-i Faire
Si T[j] > T[j+1] Alors
temp ← T[j]
T[j] ← T[j+1]
T[j+1] ← temp
FinSi
FinPour
FinPour
// Affichage
Écrire("Tableau trié : ")
Pour i de 1 à n Faire
Écrire(T[i], " ")
FinPour
Fin
📝 EXERCICE 15 : Tri par sélection
Énoncé : Trier un tableau avec le tri par sélection.
Solution :
Algorithme TriSelection
Variables
T : Tableau[1..10] d'Entiers
i, j, posMin, temp, n : Entiers
Début
n ← 10
INGENIEUR ADATE Kokou M. 22 CS LA VOLONTE
COURS D’ALGORITHME
// Remplissage
Pour i de 1 à n Faire
Lire(T[i])
FinPour
// Tri par sélection
Pour i de 1 à n-1 Faire
posMin ← i
Pour j de i+1 à n Faire
Si T[j] < T[posMin] Alors
posMin ← j
FinSi
FinPour
// Échange
Si posMin ≠ i Alors
temp ← T[i]
T[i] ← T[posMin]
T[posMin] ← temp
FinSi
FinPour
// Affichage
Pour i de 1 à n Faire
Écrire(T[i], " ")
FinPour
INGENIEUR ADATE Kokou M. 23 CS LA VOLONTE
COURS D’ALGORITHME
Fin
7. Fonctions et procédures
📝 EXERCICE 16 : Fonction nombre premier
Énoncé : Créer une fonction qui teste si un nombre est premier.
Solution :
Fonction EstPremier(n : Entier) : Booléen
Variables
i : Entier
Début
Si n ≤ 1 Alors
Retourner Faux
FinSi
Pour i de 2 à n DIV 2 Faire
Si n % i = 0 Alors
Retourner Faux
FinSi
FinPour
Retourner Vrai
Fin
Algorithme TestPremier
Variables
nombre : Entier
INGENIEUR ADATE Kokou M. 24 CS LA VOLONTE
COURS D’ALGORITHME
Début
Écrire("Entrez un nombre : ")
Lire(nombre)
Si EstPremier(nombre) Alors
Écrire(nombre, " est premier")
Sinon
Écrire(nombre, " n'est pas premier")
FinSi
Fin
📝 EXERCICE 17 : Fonction puissance
Énoncé : Créer une fonction qui calcule a^b.
Solution :
Fonction Puissance(a, b : Entiers) : Entier
Variables
i, resultat : Entiers
Début
resultat ← 1
Pour i de 1 à b Faire
resultat ← resultat * a
FinPour
Retourner resultat
Fin
Algorithme TestPuissance
Variables
INGENIEUR ADATE Kokou M. 25 CS LA VOLONTE
COURS D’ALGORITHME
base, exposant : Entiers
Début
Lire(base)
Lire(exposant)
Écrire(base, " ^ ", exposant, " = ", Puissance(base, exposant))
Fin
8. Exercices de synthèse
📝 EXERCICE 18 : Jeu du nombre mystère
Énoncé : Le programme choisit un nombre entre 1 et 100. L'utilisateur doit le
deviner. Le programme indique "Plus grand" ou "Plus petit".
Solution :
Algorithme NombreMystere
Variables
secret, proposition, essais : Entiers
Début
secret ← 42 // Ou générer aléatoirement
essais ← 0
Écrire("Devinez le nombre entre 1 et 100")
Répéter
Écrire("Votre proposition : ")
Lire(proposition)
essais ← essais + 1
Si proposition < secret Alors
INGENIEUR ADATE Kokou M. 26 CS LA VOLONTE
COURS D’ALGORITHME
Écrire("Plus grand !")
SinonSi proposition > secret Alors
Écrire("Plus petit !")
FinSi
Jusqu'à (proposition = secret)
Écrire("Bravo ! Trouvé en ", essais, " essais")
Fin
📝 EXERCICE 19 : Statistiques sur un tableau
Énoncé : Calculer min, max, moyenne, et écart-type d'un tableau.
Solution :
Algorithme StatistiquesTableau
Variables
T : Tableau[1..10] de Réels
i, n : Entiers
min, max, somme, moyenne : Réels
Début
n ← 10
somme ← 0
// Saisie
Pour i de 1 à n Faire
Lire(T[i])
somme ← somme + T[i]
FinPour
INGENIEUR ADATE Kokou M. 27 CS LA VOLONTE
COURS D’ALGORITHME
// Calculs
min ← T[1]
max ← T[1]
Pour i de 2 à n Faire
Si T[i] < min Alors
min ← T[i]
FinSi
Si T[i] > max Alors
max ← T[i]
FinSi
FinPour
moyenne ← somme / n
// Affichage
Écrire("Minimum : ", min)
Écrire("Maximum : ", max)
Écrire("Moyenne : ", moyenne)
Fin
📝 EXERCICE 20 : Palindrome
Énoncé : Vérifier si un mot est un palindrome.
Solution :
Algorithme TestPalindrome
Variables
mot : Chaîne
INGENIEUR ADATE Kokou M. 28 CS LA VOLONTE
COURS D’ALGORITHME
i, longueur : Entiers
estPalindrome : Booléen
Début
Écrire("Entrez un mot : ")
Lire(mot)
longueur ← Longueur(mot)
estPalindrome ← Vrai
Pour i de 1 à longueur DIV 2 Faire
Si mot[i] ≠ mot[longueur - i + 1] Alors
estPalindrome ← Faux
FinSi
FinPour
Si est Palindrome Alors
Écrire(mot, " est un palindrome")
Sinon
Écrire(mot, " n'est pas un palindrome")
FinSi
Fin
Conseils pour résoudre les exercices
1. Lire attentivement l'énoncé : Bien comprendre ce qui est demandé
2. Identifier les données : Entrées et sorties
3. Décomposer le problème : En étapes simples
4. Choisir les bonnes structures : Conditions, boucles, tableaux
5. Écrire l'algorithme : Étape par étape
INGENIEUR ADATE Kokou M. 29 CS LA VOLONTE
COURS D’ALGORITHME
6. Tester mentalement : Avec des exemples
7. Optimiser si possible : Améliorer l'efficacité
Bonne pratique !
INGENIEUR ADATE Kokou M. 30 CS LA VOLONTE