Exercices corrigés en algorithme – Pratique et solutions pour tous les niveaux
Maîtriser l’algorithmique est une étape clé pour tout étudiant ou passionné d’informatique. Que vous soyez débutant ou en plein parcours universitaire, la pratique à travers des exercices corrigés vous aidera à mieux comprendre les concepts fondamentaux et à développer vos capacités de raisonnement logique. Dans cet article, vous trouverez une série d’exercices d’algorithme classés du plus simple au plus complexe, accompagnés de solutions détaillées. L’objectif est de vous permettre de progresser étape par étape, selon votre niveau.
N’hésitez pas à laisser un commentaire si vous souhaitez d’autres séries d’exercices ou avez une question spécifique !
Exercices corrigés en algorithme – Niveau Débutant
Commencez par maîtriser les bases avec ces exercices simples couvrant les concepts fondamentaux d’algorithme (Notions de base, Les structures alternatives)
Exercice 1
Écrire un algorithme qui permet d’afficher le message « Bonjour ».
Correction de l’exercice 1 :
Algorithme Bonjour
Début
Ecrire("Bonjour")
Fin
Exercice 2
Écrire un algorithme permettant de saisir deux nombres et d’afficher leur produit.
Correction de l’exercice 2 :
Algorithme produit_deux_nombres
Variables m,n,p :réels
Début
Ecrire(" Entrer un nombre:") Lire(m)
Ecrire(" Entrer un nombre:") Lire(n)
p ← m * n
Ecrire("Le produit de ",m,"et",n,"=",p)
Fin
Exercice 3
Écrire un algorithme qui permet d’échange le contenu de deux entiers A et B ( permutation ) saisis par l’utilisateur. et afficher ces entiers après l’échange.
Correction de l’exercice 3 :
Algorithme Echange
Variables A,B,auxiliaire :entiers
Début
Ecrire("Entrer un entier A:") Lire (A)
Ecrire("Entrer un entier B:") Lire (B)
auxiliaire ← A
A ← B
B ← auxiliaire
Ecrire("le contenu de A est:",A)
Ecrire("le contenu de B est:",B)
Fin
Résultat de l’exécution
Entrer un entier A : 8 Entrer un entier B : 3 le contenu de A est: 3 le contenu de B est: 8
Exercice 4
Écrire un algorithme qui permet d’afficher si un nombre entier saisi au clavier (donné par l’utilisateur) est pair ou impair.
Correction de l’exercice 4 :
Algorithme Parité
Variables n :entier
Début
Ecrire("Entrer un entier:")
Lire(n)
Si(n mod 2 = 0) alors
Ecrire(n,"est pair")
SiNon
Ecrire(n,"est impair")
FinSi
Fin
Résultat de l’exécution
Entrer un entier : 9 9 est impair
Exercice 5
Écrire un algorithme qui permet d’afficher le plus grand de trois entiers saisis au clavier.
Correction de l’exercice 5 :
Algorithme Maximum_Trois_nombres
Variables A,B,C,Max :entiers
Début
Ecrire(" Entrer A:") Lire(A)
Ecrire(" Entrer B:") Lire(B)
Ecrire(" Entrer C:") Lire(C)
Max ← A
Si (B >= Max) alors
Max ← B
FinSi
Si(C >= Max) alors
Max ← C
FinSi
Ecrire("Le Max est",Max)
Fin
Résultat de l’exécution
Entrer un entier A : 8 Entrer un entier B : 3 Entrer un entier C : 1 Le Max est : 8
Exercice 6
Écrire un algorithme qui permet d’évaluer une note saisi au clavier ( si la note supérieur à 10 alors il affiche validé sinon non validé (NB: la note doit être comprise entre 0 et 20 ).
Correction de l’exercice 6 :
Algorithme Evaluer_note
Variables note :réel
Début
Ecrire(" Entrer la note : ")
Lire (note)
Si(note < 0 ou note > 20) alors
Ecrire("Erreur !!" )
FinSi
Si( note >= 0 et note < 10) alors
Ecrire(" non Validé" )
FinSi
Si( note >= 10 et note <= 20) alors
Ecrire("Validé" )
FinSi
Fin
Résultat de l’exécution
Entrer la note : 12.5 Validé
Exercice 7
Écrire un algorithme qui demande deux nombres m et n à l’utilisateur et l’informe ensuite si le produit de ces deux nombres est positif ou négatif. On inclut dans le programme le cas où le produit peut être nul.
Correction de l’exercice 7 :
Algorithme Positif_Négatif
Variables m,n:réels
Début
Ecrire(" Entrer un nombre:") Lire(m)
Ecrire(" Entrer un nombre:") Lire(n)
Si( n == 0 ou m == 0) alors
Ecrire("Le produit est nul!!")
FinSi
Si( m*n < 0) alors
Ecrire("Le produit est négatif")
FinSi
Si( m*n > 0) alors
Ecrire("Le produit est positif")
FinSi
Fin
Résultat de l’exécution
Entrer un nombre: -7.4 Entrer un nombre: 2 Le produit est négatif
Exercice 8
Écrire un algorithme qui permet de calculer la valeur absolue d’un entier saisi par l’utilisateur.
Correction de l’exercice 8 :
Algorithme
Variables m :entier
Début
Ecrire("Entrer un nombre :")
Lire(m)
Si( m >= 0) alors
Ecrire("La valeur absolue de",m,"est",m)
SiNon
Ecrire("La valeur absolue de",m,"est",-m)
FinSi
Fin
Résultat de l’exécution
Entrer un nombre: -7 La valeur absolue de -7 est 7
Exercice 9
Écrire un algorithme qui permet de calculer la moyenne de trois entiers saisis par l’utilisateur.
Correction de l’exercice 9 :
Algorithme
Variables A,B,C,moyenne:entiers
Début
Ecrire(" Entrer A:") Lire(A)
Ecrire(" Entrer B:") Lire(B)
Ecrire(" Entrer C:") Lire(C)
moyenne ← (A+B+C) div 3
Ecrire("La moyenne égal à :",moyenne)
Fin
Résultat de l’exécution
Entrer un Entier: 12 Entrer un Entier: 10 Entrer un Entier: 8 La moyenne égal à : 10
Exercice 10
Une boutique propose à ces clients, une réduction de% 15 pour les montants d’achat supérieurs à 200 dinars. Écrire algorithme permettant de saisir le prix total HT et de calculer le montant TTC en prenant en compte la réduction et la TVA=20%.
Correction de l’exercice 10:
Algorithme
Variables Prix_HT,Prix_TTC: réels
Debut
Ecrire(" Entrer le montant HT:")
Lire(Prix_HT)
Prix_TTC ← Prix_HT + Prix_HT*0.2
Si( Prix_TTC > 200 ) alors
Prix_TTC ← Prix_TTC - Prix_TTC*0.15
Ecrire("le montant TTC est: ",Prix_TTC)
SiNon
Ecrire("le montant TTC est:",Prix_TTC)
FinSi
Fin
Résultat de l’exécution
Entrer le montant HT: 180 le montant TTC est: 183.6
Exercice 11
Le centre de photocopie facture 0,25 Dinars pour une photocopie, 0. Ecrire un algorithme qui demande à l’utilisateur de saisir le nombre de photocopies effectuées et qui affiche la facture correspondante.
Correction de l’exercice 11:
Algorithme
Variables Nb_papies:entier
prix : réel
Début
Ecrire("Entrer le nombre de papies:")
Lire(Nb_papies)
Si ( Nb_papies <= 10 ) alors
prix ← Nb_papies *0.25
FinSi
Si(Nb_papies >10 et Nb_papies<=20)alors
prix ← Nb_papies *0.20
FinSi
Si (Nb_papies > 20)alors
prix ← Nb_papies * 0.10
FinSi
Ecrire("Le prix total est:",prix,"Dinars")
Fin
Résultat de l’exécution
le nombre de papies: 17 Le prix total est: 3.4 Dinars
Exercice 12
Écrire algorithme qui demande l’âge d’un enfant et permet d’informer de sa catégorie sachant que les catégories sont les suivantes:
« poussin de 6 a 7 ans »
« pupille de 8 a 9 ans »
« minime de 10 a 11 ans »
» cadet après 12 ans « .
Correction de l’exercice 12:
Algorithme
Variables age :réel
Début
Ecrire("Entrer votre age :")
Lire(age)
Si( age >= 5 et age <= 7) alors
Ecrire(" Vous êtes poussin ")
FinSi
Si( age >= 8 et age <= 9 ) alors
Ecrire(" Vous êtes pupille ")
FinSi
Si( age >= 10 et age <= 11) alors
Ecrire(" Vous êtes minime ")
FinSi
Si ( age >= 12 ) alors
Ecrire(" Vous êtes Cadet ")
FinSi
Fin
Résultat de l’exécution
Entrer votre age : 13 Vous êtes Cadet
Exercices corrigés en Algorithme – Niveau Intermédiaire
Approfondissez vos compétences en abordant des exercices plus complexes sur les structure à choix multiples, les structures répétitives, les tableaux.
Exercice 13
Écrire un algorithme permettant d’afficher le mois en lettre selon le numéro saisi au clavier. ( Si l’utilisateur tape 1 le programme affiche janvier, si 2 affiche février, si 3 affiche mars…)
Correction de l’exercice 13:
Algorithme
Variables mois :entier
Début
Ecrire(" Entrer le numéro du mois:")
Lire (mois)
selon mois faire
1: Ecrire (" janvier ")
2: Ecrire (" février ")
3: Ecrire (" mars ")
4: Ecrire (" Avril")
5: Ecrire (" Mai ")
6: Ecrire (" Juin ")
7: Ecrire (" Juillet ")
8: Ecrire (" Août ")
9: Ecrire (" Septembre ")
10: Ecrire (" Octobre ")
11: Ecrire (" Novembre ")
12: Ecrire ("décembre ")
sinon
Ecrire ("le numéro ne correspondant à aucun mois")
FinSelon
Fin
Résultat de l’exécution
Entrer le numéro du mois:10 Octobre
Exercice 14
Écrire un algorithme qui permet d’afficher le message « Bonsoir » 10 fois. Utilisant la boucle Tant Que.
Correction de l’exercice 14:
Algorithme Bonsoir_10_fois
Variables i: entier
Début
i ← 1
TantQue ( i <= 10 ) faire
Ecrire("Bonsoir")
i ← i+1
FinTantQue
Fin
Résultat de l’exécution
Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir
Exercice 15
Écrire un algorithme permettant de calculer la somme S= 1+2+3+…+ 10. Utilisant la boucle Tant Que.
Correction de l’exercice 15:
Algorithme Somme_de_1_jusqu'au_10
Variables i,S: entiers
Début
i ← 1
S ← 0
TantQue ( i <= 10 ) faire
S ← S + i
i ← i + 1
FinTantQue
Ecrire("La somme de 1 à 10 est:",S)
Fin
Résultat de l’exécution
La somme de 1 à 10 est 55
Exercice 16
Écrire un algorithme permettant de calculer la somme S=1+2+3+…+ N, où N saisi par l’utilisateur. Utilisant la boucle Tant Que.
Correction de l’exercice 16:
Algorithme Somme_de_1_jusqu'au_N
Variables i,S,N: entiers
Debut
i ← 1 S ← 0
Ecrire("Donner un entier:")
Lire (N)
TantQue ( i <= N ) faire
S ← S + i
i ← i + 1
FinTantQue
Ecrire("La somme de 1 à N est:",S)
fin
Résultat de l’exécution
Donner un entier : 6 La somme de 1 à 6 est : 21
Exercice 17
Écrire un algorithme qui permet d’afficher le message « bonjour » 10 fois . Utilisant la boucle Pour.
Correction de l’exercice 17:
Algorithme Bonjour_10_ fois
Variables i: entier
Début
pour i de 1 jusqu'à 10 faire
Ecrire("Bonjour")
FinPour
Fin
Résultat de l’exécution
Bonjour Bonjour Bonjour Bonjour Bonjour Bonjour Bonjour Bonjour Bonjour Bonjour
Exercice 18
Écrire un algorithme qui permet de calculer la somme S=1+2+3+…+ 10. Utilisant la boucle Pour.
Correction de l’exercice 18:
Algorithme Somme_de_1_jusqu'au_10
Variables i,S: entiers
Début
S ← 0
pour i de 1 jusqu'à 10 faire
S ← S + i
FinPour
Ecrire("La somme de 1 à 10 est:", S)
Fin
Résultat de l’exécution
La somme de 1 à 10 est : 55
Exercice 19
Écrire un algorithme qui permet de calculer la somme S=1+2+3+4+….+ N. où N saisi au clavier par l’utilisateur.Utilisant la boucle Pour.
Correction de l’exercice 19:
Algorithme Somme_de_1_jusqu'au_N
Variables i,S,N: entiers
Début
S ← 0
Ecrire("Donner un entier")
Lire (N)
pour i de 1 jusqu'à N faire
S ← S + i
FinPour
Ecrire("La somme est:" , S)
Fin
Résultat de l’exécution
Donner un entier: 17 La somme de 1 à 17 est: 153
Exercice 20
Écrire un algorithme qui permet d’afficher la table de multiplication de 5. Utilisant la boucle Pour.
Correction de l’exercice 20:
Algorithme Table_Multiplication_de_5
Variables i:entier
Début
pour i de 0 jusqu'à 10 faire
Ecrire("5*",i,"=",i*5)
FinPour
Fin
Résultat de l’exécution
5*0=0 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45 5*10=50
Exercice 21
Écrire un algorithme qui permet d’afficher la table de multiplication d’un entier saisie par l’utilisateur, Utilisant la boucle Pour.
Correction de l’exercice 21:
Algorithme Table_Multiplication_de_N
Variables i,N :entiers
Début
Ecrire("Donner un entier:")
Lire (N)
pour i de 0 jusqu'à 10 faire
Ecrire("N*",i,"=",i*N)
FinPour
Fin
Résultat de l’exécution
Donner un entier: 4 4*0 = 0 4*1 = 4 4*2 = 8 4*3 = 12 4*4 = 16 4*5 = 20 4*6 = 24 4*7 = 28 4*8 = 32 4*9 = 36 4*10= 40
Exercice 22
Écrire un algorithme qui permet d’afficher « Bonjour » 10 fois. utilisant la boucle Répéter Jusqu’à .
Correction de l’exercice 22:
Algorithme Bonsoir_10_fois
Variables i: entier
Début
i ← 1
Répéter
Ecrire("Bonsoir")
i ← i+1
Jusqu'à i>10
Fin
Résultat de l’exécution
Bonjour Bonjour Bonjour Bonjour Bonjour Bonjour Bonjour Bonjour Bonjour Bonjour
Exercice 23
Écrire un algorithme qui calcule la somme S= 1+2+3+…+ 10. Utilisant la boucle Répéter Jusqu’à.
Correction de l’exercice 23:
Algorithme Somme_de_1_jusqu'au_10
Variables i,S: entiers
Début
S ← 0 i ← 1
Répéter
S ← S + i
i ← i+1
Jusqu'à i > 10
Ecrire("La somme de 1 à 10 est:" S)
fin
Résultat de l’exécution
La somme de 1 à 10 est: 55
Exercice 24
Écrire un algorithme qui affiche la table de multiplication de 8. Utilisant la boucle Répéter Jusqu’à.
Correction de l’exercice 24:
Algorithme Table_Multiplication_de_8
Variables i:entier
Début
i ← 0
Répéter
Ecrire("8*",i,"=",i*8)
i ← i+1
Jusqu'à i > 10
Fin
Résultat de l’exécution
8*0=0 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 8*9=72 8*10=80
Exercice 25
Écrire un algorithme permettant de saisir 10 entiers et de les stocker dans un tableau nommé Tableau, puis les afficher.
Correction de l’exercice 25:
Algorithme
Variables Tableau[10]:réels
i : entier
Début
pour i de 1 jusqu'à 10 faire
lire(Tableau[i])
FinPour
pour i de 1 jusqu'à 10 faire
Ecrire (Tableau[i])
FinPour
Fin
Résultat de l’exécution
8 2 7 0 9 1 15 2 5 15 8 2 7 0 9 1 15 2 5 15
Exercice 26
Écrire un algorithme permettant de saisir 10 notes et qui affiche la moyenne de ces notes.
Correction de l’exercice 26:
Algorithme Moyenne_Notes
Variables Notes[10], S :réels
i :entier
Début
S ← 0
pour i de 1 jusqu'à 10 faire
Lire (Notes[i])
S ← S + Notes[i]
FinPour
Ecrire ("La moyenne est:",S/10)
Fin
Résultat de l’exécution
2 6 6 7 5 6 1 0 7 1 La moyenne est: 4,1
Exercice 27
Écrire un algorithme permettant de saisir 10 entiers et qui affiche le maximum de ces entiers.
Correction de l’exercice 27:
Algorithme max_tab
Variables Tab[10]: entiers
max,i:entiers
Début
pour i de 1 jusqu'à 10 faire
Ecrire("Entrer un entier:")
Lire(Tab[i])
FinPour
max ← Tab[1]
pour i de 2 jusqu'à 10 faire
Si( Tab[i] > max ) alors
max ← Tab[i]
FinSi
FinPour
Ecrire("le maximum est : ",max)
Fin
Résultat de l’exécution
Entrer un entier : 7 Entrer un entier : 6 Entrer un entier : 14 Entrer un entier : 3 Entrer un entier : 30 Entrer un entier : 1 Entrer un entier : 77 Entrer un entier : 2 Entrer un entier : 9 Entrer un entier : 7 le maximum est : 77
Exercice 28
Écrire un algorithme permettant de saisir 10 entiers dans un tableau, et de calculer le nombre d’occurrences d’un élément N dans ce tableau. Où N saisi par l’utilisateur.
Correction de l’exercice 28:
Algorithme occurrences
Variables Tab[10],nb_rech:réels
nb_occ,i:entiers
Début
nb_occ ← 0
pour i de 1 jusqu'à 10 faire
Ecrire("Entrer un entier:")
Lire(Tab[i])
FinPour
Ecrire("Entrer Le nombre recherché:")
Lire(nb_rech)
pour i de 1 jusqu'à 10 faire
Si( Tab[i] = nb_rech ) alors
nb_occ ← nb_occ +1
FinSi
FinPour
Ecrire("Nombre d’occurrences de",nb_rech,"est",nb_occ)
Fin
Résultat de l’exécution
7 6 3 7 5 6 9 0 7 1 Entrer Le nombre recherché: 7 Nombre d’occurrences de 7 est 3
Exercice 29
Écrire un algorithme permettant de saisir 10 entiers dans un tableau et de trier ce tableau par ordre croissante. puis affiche ce tableau après le tri.
Correction de l’exercice 29:
Algorithme Tri
Variables Tab[10],auxiliaire,i,j:entiers
Début
pour i de 1 jusqu'à 10 faire
Ecrire("Entrer un entier:")
Lire(Tab[i])
FinPour
pour i de 1 jusqu'à 9 faire
pour j de i+1 jusqu'à 10 faire
Si ( Tab[j] < Tab[i]) alors
auxiliaire ← Tab[i]
Tab[i] ← Tab[j]
Tab[j] ← auxiliaire
FinSi
FinPour
FinPour
pour i de 1 jusqu'à 10 faire
Ecrire(Tab[i])
FinPour
Fin
Résultat de l’exécution
7 6 3 5 4 2 8 0 7 1 0 1 2 3 4 5 6 7 7 8
Exercice 30
Écrire un algorithme permettant de calculer le factoriel d’un entier saisi par l’utilisateur. par exemple N = 7 le factoriel de 7 égal à 1*2*3*4*5*6*7 =5040.
Correction de l’exercice 30:
Algorithme Factoriel
Variables i,F,N: entiers
Début
F ← 1
Ecrire("Donner un entier")
Lire (N)
pour ide 1 jusqu'à N faire
F ← F * i
FinPour
Ecrire("Le factoriel de",N,"est:" F)
Fin
Résultat de l’exécution
Donner un entier : 6 Le factoriel de 6 est:720
Exercice 31
Écrire un algorithme permettant d’afficher les nombres paires compris entre 0 et N, où N saisi par l’utilisateur.
Correction de l’exercice 31:
Algorithme paires
Variables i,N : entiers
Début
Ecrire("Entrer un entier : ")
lire(N)
pour i de 0 à N faire
Si( i mod 2 = 0) alors
Ecrire(i)
FinPour
Fin
Résultat de l’exécution
Entrer un entier : 11 0 2 4 6 8 10
Exercice 32
Écrire un algorithme qui permet de calculer la somme d’entiers impaires de 1 jusqu’à un entier N saisi par l’utilisateur. Exemple N=8 Somme = 1 +3+5+7= 16
Correction de l’exercice 32:
Algorithme Somme_Impaires
Variables i,N,somme : entiers
Début
somme ← 0
Ecrire("Entrer un entier:")
Lire(N)
pour i de 1 à N faire
Si ( i mod 2 ≠ 0) alors
somme ← somme + i
FinSi
FinPour
Ecrire (somme)
Fin
Résultat de l’exécution
Entrer un entier : 12 36
Exercice 33
Écrire un algorithme qui permet de calculer le plus grand diviseur commun entre deux entiers saisis par l’utilisateur. Par exemple: M= 15 et N=10 PGCD (15 , 10) = 5
Correction de l’exercice 33:
Algorithme Diviseur_commun
Variables i,N,M,Div_commun : entiers
Début
Ecrire("Entrer deux entiers:")
Lire(N,M)
i ← 1
TantQue(i<=N et i<=M )faire
si( N mod i=0 et M mod i=0) alors
Div_commun ← i
FinSi
i←i+1
FinTantQue
Ecrire("le plus grand diviseur est:",Div_commun)
Fin
Résultat de l’exécution
Entrer deux entiers: 20 15 le plus grand diviseur est : 5
Exercice 34
Ecrire un algorithme qui permet d’afficher un triangle d’entiers, selon un entier saisi par l’utilisateur. Exemple N=4
1
22
333
4444
Correction de l’exercice 34:
Algorithme Triangle_entiers
Variables i,j,N : entiers
Début
Ecrire("donner un entier : ")
Lire(N)
pour i de 1 à N faire
pour j de 1 à i faire
Ecrire(i)
FinPour
Ecrire("\n")
FinPour
Fin
Résultat de l’exécution
donner un entier : 5 1 22 333 4444 55555
Exercice 35
Écrire un algorithme qui permet de calculer le nombre de chiffres d’un entier N saisi par l’utilisateur. Exemple N = 10843
le nombre de chiffres est : 5
Correction de l’exercice 35:
Algorithme Nb_chiffres
Variables i,N,n : entiers
Début
Ecrire("Enter un entier : ")
Lire(N)
i ← 1
TantQue (N div 10 ≠ 0) faire
N ← N div 10 i ← i+1
FinTantQue
Ecrire("Le nombre de chiffres est",i)
Fin
Résultat de l’exécution
Enter un entier : 5187643 Le nombre de chiffres est 7
Exercice 36
Écrire un algorithme qui permet d’inverser les chiffres d’un entier N saisi par l’utilisateur. par exemple N=35672 le résultat affiché doit être 27653
Correction de l’exercice 36:
Algorithme
Variables N,r : entiers
Début
r ← 0
Ecrire("Donner un entier:")
Lire(N)
TantQue ( N > 0 ) faire
r ← r*10
r ← r + N mod 10
N ← N div 10
FinTantQue
Ecrire(r)
Fin
Résultat de l’exécution
Donner un entier: 597012 210795
Exercice 37
Écrire un algorithme qui permet de saisir un entier N et d’afficher le triangle d’étoiles. par exemple N = 4
*
***
*****
*******
Correction de l’exercice 37:
Algorithme
Variables i,j,N : entiers
Début
Ecrire("Donner un entier : ")
Lire(N)
Ecrire("\n")
Pour i de 0 à N-1 faire
pour j de 1 à (N*2)-1 faire
Si (j >= N-i et j <= N+i ) alors
Ecrire("*")
SiNon Ecrire(" ")
FinSi
FinPour
Ecrire("\n")
FinPour
Fin
Résultat de l’exécution
Donner un entier: 4 * *** ***** *******
Exercice 38
Écrire un algorithme qui permet de saisir 10 entiers dans un tableau. puis compter combien y a-t-il d’éléments pairs et impairs.
Correction de l’exercice 38:
Algorithme
Variables i,tab[10],Nb_pair, Nb_impair :entiers
Début
Nb_pair ← 0 ; Nb_impair ← 0
pour i de 1 à 10 faire
Ecrire("donner un entier:")
Lire(tab[i])
FinPour
pour i de 1 à 10 faire (
Si( tab[i] mod 2 = 0 ) alors
Nb_pair ← Nb_pair + 1
else
Nb_impair ← Nb_impair + 1
FinSi
FinPour
Ecrire("Nombre de paires:",Nb_pair)
Ecrire("Nombre d'impaires:",Nb_impair)
Fin
Résultat de l’exécution
1 4 3 6 6 9 0 9 7 1 Nombre de paires : 4 Nombre d'impaires: 6
Exercice 39
Écrire un algorithme qui affiche si un nombre entier N saisi au clavier est Premier ou non.
Correction de l’exercice 39:
Algorithme
Variables i,N:entiers
Début
Ecrire("Entrer un entier:")
Lire(N)
i ← 2
TantQue( N mod i ≠ 0 et i < N)faire
i ← i+1
FinTantQue
Si ( i = N) alors
Ecrire(N," est premier ")
SiNon Ecrire(N," n'est pas premier ")
FinSi
Fin
Résultat de l’exécution
Entrer un entier : 17 17 est premier
Exercice 40
Ecrire un algorithme qui demande la saisie d’un tableau T de 10 entiers, et de mettre les éléments pairs dans un tableau T1 et les éléments impaires dans un tableau T2. Puis afficher T1 et T2
Correction de l’exercice 40:
Algorithme
Variables i,j,k:entiers
T[10],T1[10],T2[10]:tableaux d'entiers
Début
j ← 1 k ← 1
Pour i de 1 à 10 faire
Lire(T[i])
FinPour
Pour i de 1 à 10 faire
Si(T[i] mod 2 = 0)alors
T1[j]← T[i] j← j+1
SiNon T2[k] ← T[i] k ← k+1
FinSi
FinPour
Pour i de 1 à j faire
Ecrire(T1[i])
FinPour
Pour i de 1 à k faire
Ecrire(T2[i])
FinPour
Fin
Résultat de l’exécution
2 0 9 8 7 8 6 5 4 1 2 0 8 8 6 4 9 7 5 1
Exercice 41
Ecrire un algorithme qui permet à l’utilisateur de saisir une suite d’entiers se terminant par 0, et qui affiche à la fin le nombre d’occurrences de 5
Correction de l’exercice 41:
Algorithme
Variables N,i:entiers
Début
i ← 0
Répéter
Lire(N)
Si( N = 5 )alors
i ← i+1
FinSi
jusqu'à (N = 0)
Si ( i ≠ 0) alors
Ecrire(5,"existe",i,"fois")
SiNon Ecrire(5," n'existe pas ")
FinSi
Fin
Résultat de l’exécution
5 9 1 4 1 5 5 6 0 5 existe 3 fois
Exercice 42
Ecrire un algorithme permettant de saisir 10 entiers et dit si ces entiers sont consécutifs ou non.
Correction de l’exercice 42:
Algorithme
Variables i,tab[10],test: entiers
Début
test ← 0
Ecrire(" Entrer un entier:")
Lire(tab[1])
pour i de 2 à 10 faire
Ecrire("Entrer un entier:")
Lire(tab[i])
Si( tab[i] < tab[i-1])
test ← 1
FinSi
FinPour
Si(test = 0) alors
Ecrire("les éléments sont successives ")
SiNon
Ecrire("les éléments ne sont pas successives ")
FinSi
Fin
Résultat de l’exécution
0 1 2 3 4 6 5 7 8 9 les éléments ne sont pas successives
Exercice 43
Ecrire un algorithme qui permet de saisir 10 entiers et qui permet de calculer la différence entre la somme des éléments paires et la somme des éléments impaires par exemple : 1 6 7 4 5 3 1 8 2 5
==> (6+4+8+2) – (1+7+5+3+5+1) = -2
Correction de l’exercice 43:
Algorithme
Variables i,tab[6],somme: entiers
Début
somme ← 0
pour i de 1 à 6 faire
Ecrire(" Entrer un entier:")
Lire(tab[i])
Si( tab[i] mod 2 = 0 ) alors
somme ← somme + tab[i]
SiNon
somme ← somme - tab[i]
FinSi
FinPour
Ecrire("La différence égale à ",somme)
Fin
Résultat de l’exécution
8 5 7 0 2 1 La différence égale à -3
Exercice 44
Ecrire un algorithme permettant, à partir d’un réel x et d’une valeur entière positive n, de calculer x puissance n
Correction de l’exercice 44:
Algorithme
Variables i,n: entiers
puissance,x :réel
Début
puissance ← 1
Ecrire(" Entrer x:") Lire(x)
Ecrire(" Entrer n:") Lire(n)
pour i de 1 à n faire
puissance ← puissance * x
FinPour
Ecrire(x,"puissance", n ," est",puissance)
Fin
Résultat de l’exécution
Entrer x: 4 Entrer n: 2 4 puissance 2 est 16
Exercice 45
Ecrire un algorithme qui permet de tester l’égalité entre deux tableaux d’entiers (tailles 10). Le programme affiche VRAI si les composants des deux tableaux sont correspondent position par position, sinon il affiche FAUX.
Correction de l’exercice 45:
Algorithme
Variables T1[10],T2[10],i,test: entiers
Début
test ← 1
pour i de 1 à 10 faire
Lire(T1[i])
FinPour
pour i de 1 à 10 faire
Lire(T2[i])
FinPour
pour i de 1 à 10 faire
Si( T1[i] ≠ T2[i]) alors
test ← 1
FinSi
FinPour
Si( test = 0) alors
Ecrire("VRAI")
SiNon
Ecrire ("FAUX")
FinSi
Fin
Résultat de l’exécution
1 2 7 9 0 3 1 8 4 6 1 2 7 5 0 3 1 8 4 6 FAUX
Exercice 46
Écrire un algorithme qui compte le nombre d’éléments en double ( deux éléments ou plus ) dans un tableau d’entiers saisie par l’utilisateur.
Correction de l’exercice 46:
Algorithme
Variables test,compteur,i,j: entiers
Début
pour i de 1 à 10 faire
Ecrire("Enter un entier:")
Lire(tab[i])
FinPour
pour i de 1 à 10 faire
test ← 0
pour j de 1 à 10 faire
Si ( tab[i] = tab[j] )alors
test ← test+1
FinSi
FinPour
Si (test > 1) alors
compteur ← compteur+1
FinSi
FinPour
Ecrire("Les éléments en double sont:",compteur/2)
Fin
Résultat de l’exécution
1 6 8 0 6 3 6 0 1 4 Les éléments en double sont: 3
Exercice 47
Le centre de photocopie de votre établissement facture 0,25 Dinars pour les dix premières photocopies, 0,20 Dinars les vingt suivantes et 0,10 Dinars au-delà. Ecrire un algorithme qui demande à l’utilisateur le nombre de photocopies effectuées et qui affiche la facture correspondant.
Correction de l’exercice 47:
Algorithme
Variables Nb_papiers:entier
prix : réel
Début
Ecrire("Entrer le nombre de papiers:")
Lire(Nb_papiers)
Si ( Nb_papiers <= 10 ) alors
prix ← Nb_papiers *0.25
FinSi
Si(Nb_papiers >10 et Nb_papiers<=20)alors
prix ← Nb_papiers *0.20
FinSi
Si (Nb_papiers > 20)alors
prix ← Nb_papiers * 0.10
FinSi
Ecrire("Le prix total est:",prix,"Dinars")
Fin
Résultat de l’exécution
le nombre de papiers: 17 Le prix total est: 3.4 Dinars
Exercice 48
Écrire un algorithme qui permet de lire un caractère et dit s’il s’agit d’une lettre ou non, en cas d’une lettre il dit s’il s’agit d’une lettre minuscule ou majuscule.
Correction de l’exercice 48:
Algorithme
Variables C: caractère
Début
Ecrire("Entrer une lettre:")
Lire(C)
Si(C >= 65 et C <=90 ) alors
Ecrire("cette lettre est Majuscule")
SiNon
Si (C >= 97 et C <= 122 )alors
Ecrire("cette lettre est Minuscule")
SiNon
Ecrire("c'est pas une lettre !!!")
FinSi
FinSi
Fin
Résultat de l’exécution
Entrer une lettre: M cette lettre est Majuscule
Exercice 49
Écrire un algorithme permettant de décaler les valeurs nulles vers la fin du tableau , en gardant l’ordre des éléments.
Exemple 1 2 0 6 9 0 0 8 0 3
Résultat 1 2 6 9 8 3 0 0 0 0
Correction de l’exercice 49:
Algorithme
Variables Tab[10],aide,i,j: Entiers
Début
pour i de 1 à 10 faire
Lire(Tab[i])
FinPour
pour i de 1 à 10 faire
Ecrire(Tab[i])
FinPour
pour i de 1 à 9 faire
Si(Tab[i]=0)alors
j←i+1;
TantQue(Tab[j]=0 et j<9)faire
j← j+1
FinTantQue
aide ← Tab[i]
Tab[i]← Tab[j]
Tab[j]← aide
FinSi
FinPour
pour i de 1 à 10 faire
Ecrire(Tab[i])
FinPour
Fin
Résultat de l’exécution
Résultat de l’exécution 0 9 5 7 0 3 0 1 3 0 9 5 7 3 1 3 0 0 0 0
Exercice 50
Écrire un algorithme permettant d’échanger (permuter) et afficher les valeurs des trois entiers (A, B et C ) saisis par l’utilisateur, selon l’ordre croissant c’est-à-dire (A < B < C ).
Correction de l’exercice 50:
Algorithme
Variables A,B,C,aide: Entiers
Début
Ecrire("Entrer un entier A:")
Lire(A)
Ecrire("Entrer un entier B:")
Lire(B)
Ecrire("Entrer un entier C:")
Lire(C)
Si(A>B) alors
aide ← A A ← B B ← aide
FinSi
Si(A>C) alors
aide ← A A ← C C ← aide
FinSi
Si(B>C) alors
aide ← B B ← C C ← aide
FinSi
Ecrire("le contenu de A est:",A)
Ecrire("le contenu de B est:",B)
Ecrire("le contenu de C est:",C)
Fin
Résultat de l’exécution
Entrer un entier A:9 Entrer un entier B: 1 Entrer un entier C: 3 le contenu de A est: 1 le contenu de B est: 3 le contenu de C est: 9
Exercice 51
Écrire un algorithme qui permet d’échanger les valeurs de deux entiers A et B saisis par l’utilisateur, mais à condition d’utiliser seulement deux variables A et B. ( sans d’utiliser la troisième variable auxiliaire )
Correction de l’exercice 51:
Algorithme Echange
Variables A,B :entiers
Début
Ecrire("Entrer un entier A:") Lire (A)
Ecrire("Entrer un entier B:") Lire (B)
A← A+B
B ← A-B
A ← A-B
Ecrire("le contenu de A est:",A)
Ecrire("le contenu de B est:",B)
Fin
Résultat de l’exécution
Entrer un entier A : 8 Entrer un entier B : 3 le contenu de A est: 3 le contenu de B est: 8
Exercices corrigés en Algorithme– Niveau Avancé
Relevez des défis d’un niveau supérieur avec des exercices destinés aux étudiants avancés : les sous programmes et les fonctions récursives.

Exercice 52
Écrire une fonction qui permet de calculer le prix TTC , cette fonction va recevoir un paramètre de type Réel dont le nom est « prixHT » et un second paramètre de type Réel dont le nom est « tva ».
Correction de l’exercice 52:
Fonction calculPrixTTC( prixHT, tva: réel): réel Variables prixTTC : réel Début prixTTC ← prixHT * (1 + tva / 100) retourner (prixTTC) Fin
Exercice 53
Écrire une procédure qui permet d’afficher si un nombre entier passé en paramètre est pair ou impair
Correction de l’exercice 53:
Procédure parite (nb:entier)
Début
Si (nb mod 2 = 0) alors
Ecrire (nb,"est impair")
Sinon
Ecrire (nb," est pair")
finSi
Fin
Exercice 54
Écrire une fonction qui permet de retourner le nombre de caractères d’une chaîne de caractères passée en paramètre.
Correction de l’exercice 54:
Fonction longueurChaine (chaine[]: tableau de caractères) : entier
Variables longueur : entier
Début
longueur ← 0
Tant que (chaine [longueur] ≠ '\0') faire
longueur ← longueur. + 1
FinTantque
retourner (longueur)
Fin
Exercice 55
Écrire une fonction qui cherche combien de fois un caractère est présent dans une chaîne de caractères. Le caractère à chercher et la chaîne seront passés en paramètres.
Correction de l’exercice 55:
Fonction nombreOccurence(texte[] : tableau de caractères , c : caractère) : entier
Variables nbCar, i : entiers
Début
nbCar ← 0 i ←0
Tantque (texte[i] ≠ '\0') faire
Si (texte[i] = c)
nbCar ←nbCar + 1
i ←i + 1
FinSi
FinTantque
retourner (nbCar)
Fin
Exercice 56
Ecrire une fonction ou procédure qui calcule la valeur absolue d’un nombre.
Correction de l’exercice 56:
Fonction absolue (x : réel) : réel
Début
Si ( x > 0 ) alors
retourner (x)
Sinon
retourner (-x)
Fin
Exercice 57
Ecrire une procédure qui affiche le tableau de multiplication d’un entier positif x .
Correction de l’exercice 57:
Procédure Multiple (x: entier)
Variables i : entier
Début
Pour i de 1 à 10 faire
Ecrire (x, ‘X’, i, ‘= ‘, x*i)
FinPour
Fin
Exercice 58
Ecrire une fonction qui calcule le PGCD de deux entiers strictement positifs.
Correction de l’exercice 58:
Fonction PGCD (a , b : entier) : entier
Début
Tantque (a * b ≠ 0) Faire
Si ( a > b ) Alors
a ← a - b
Sinon
b← b - a
FinSi
FinTantque
Si (a = 0) alors
retourner (b)
Sinon
retourner (a)
FinSi
Fin
Exercice 59
Ecrire une procédure qui permet de lire deux nombres, calculer la somme et le produit et affiche si ces derniers sont positifs ou négatifs.
Correction de l’exercice 59:
Procédure calcul (a,b: réel)
variables som, prod : réels
Début
Lire (a, b)
som ← a + b
prod ← a * b
Si (som ≥ 0) Alors
Ecrire ("la somme est positive")
Sinon
Ecrire ("la somme est négative")
FinSi
Si (prod ≥ 0 ) Alors
Ecrire ("le produit est positif ")
Sinon
Ecrire (" le produit est négatif ")
FinSi
Fin
Exercice 60
Ecrire une procédure qui permet de lire une liste de nombres entiers (N nombres) dont la dernière valeur = -1
et affiche le nombre d’entiers pairs et leur pourcentage par rapport au nombre d’entiers donnés.
Correction de l’exercice 60:
Procédure Nombres
Variables x, N, N_pairs: entiers
pourcent : reel
Début
N ← 0
N_pairs ← 0
Répéter
Lire (x)
N ← N + 1
Si (x mod 2 = 0 ) alors
N_pairs ← N_pairs + 1
FinSi
Jusqu’à (x = -1)
pourcent ← N_pairs * 100 / N
Ecrire ("Nombre de valeurs paires = ", N_pairs, "et leur pourcentage = ", pourcent)
Fin
Exercice 61
Ecrire une procédure qui permet d’entrer deux valeurs M et N et d’afficher toutes les valeurs paires entre M et N si M<N
Correction de l’exercice 61:
Procédure paires (M,N: entiers)
Début
Si (M >= N) Alors
Ecrire ("Erreur !!!!")
Sinon
Tantque (M < N) Faire
Si (M mod 2 = 0 ) Alors
Ecrire (M)
FinSi
M ← M + 1
FinTantque
FinSi
Fin
Exercice 62
Ecrire une procédure qui affiche si un nombre est premier ou non
Correction de l’exercice 62:
Procédure paires (M,N: entiers)
Début
Si (M >= N) Alors
Ecrire ("Erreur !!!!")
Sinon
Tantque (M < N) Faire
Si (M mod 2 = 0 ) Alors
Ecrire (M)
FinSi
M ← M + 1
FinTantque
FinSi
Fin
Exercice 63
Écrire une fonction récursive qui permet de calculer le factorielle d’un entier saisi par l’utilisateur.
Correction de l’exercice 63:
Fonction factorielle (n: entier): entier
Début
Si (n=0 ou n= 1) alors
retourner (1)
Sinon retourner (factorielle (n-1)*n)
FinSi
Fin
Exercice 64
Écrire une fonction récursive qui permet de calculer la somme 1+2+3+…+ N. où N saisi par l’utilisateur.
Correction de l’exercice 64:
Fonction somme ( n: entier): entier
Début
Si (n=0) alors
retourner (0)
Sinon
retourner (somme (n-1)+n)
FinSi
Fin
Exercice 65
Écrire une fonction récursive permettant, à partir d’un réel x et d’une valeur entière positive n, de calculer x puissance n .
Correction de l’exercice 65:
Fonction puissance (r: réel, n: entier): réel
Début
Si (n=0) alors retourner 1
Sinon retourner puissance (r,n-1)*r
FinSi
Fin
Exercice 66
Écrire une fonction récursive qui permet d’afficher les entiers de 0 à 10 .utilisant un seul paramètre.
Correction de l’exercice 66:
Procédure compteur (i: entier)
Début
Ecrire (10-i,"\n")
Si (i>0) alors
i← i+1
compteur (i)
FinSi
Fin
Exercice 67
Écrire une fonction récursive qui permet d’afficher les entiers de A à B . Où A et B sont des paramètres de cette fonction.
Correction de l’exercice 67:
Procédure compteur (i: entier, n: entier)
Début
Ecrire (i,"\n")
Si (i<n) alors
i← i+1
compteur (i,n)
FinSi
Fin
Exercice 68
Écrire une fonction récursive qui permet de calculer le PGCD de deux entiers passés en paramètres,( utiliser l’algorithme d’Euclide).
Correction de l’exercice 68:
Fonction Euclide(a: entier,b:entier): entier
Début
Si( b = 0) alors
retourner a
FinSi
retourner (Euclide (b, a mod b))
Fin
Exercice 69
Écrire une fonction récursive qui permet d’afficher les éléments d’une matrice passée en paramètre.
Correction de l’exercice 69:
Procédure affiche(tab[3][4]: tableau d'entiers, a: entier, b: entier)
Début
Si( a < 3 ) alors
Si(b < 4) alors
Ecrire (tab[a][b])
affiche(tab,a,b+1)
Sinon
printf("\n")
affiche(tab,a+1,0)
FinSi
FinSi
Fin
Exercice 70
Écrire une fonction récursive qui permet de calculer l’image d’un entier (passé en paramètre) par une suite de Fibonacci. Suite de Fibonacci est une suite d’entiers dans laquelle chaque terme est la somme des deux termes qui le précèdent. F(0)=F(1)=
Correction de l’exercice 70:
Fonction Fibonacci (n: entier): entier
Début
Si(n =0 ou n =1) alors
Retourner 1
Sinon
Retourner Fibonacci(n-2)+ Fibonacci(n-1)
FinSi
Fin
Pourquoi pratiquer régulièrement ?
S’entraîner régulièrement avec des exercices corrigés est l’une des meilleures méthodes pour progresser en [matière].
Cela permet de consolider les acquis, de repérer ses erreurs et de développer des réflexes de résolution efficaces.
Pensez à varier les types d’exercices pour mieux préparer vos examens !
L’algorithmique ne s’apprend pas uniquement en lisant des cours, mais surtout en résolvant des problèmes concrets. Grâce à cette série d’exercices progressifs, vous avez pu aborder des situations variées, des plus simples aux plus complexes, pour renforcer votre compréhension et vos compétences. Continuez à vous exercer régulièrement pour gagner en aisance et réussir vos examens ou projets.
« Ces documents sont fournis à titre éducatif. Pour plus d’informations, consultez nos Conditions d’utilisation. »

bonjour,
Bonjour, j’espère que vous avez trouvé cet article utile. N’hésitez pas à laisser un commentaire si vous avez des questions ou des suggestions. Merci !
POUR L’EXERCICE 27 . LA QUESTION DOIT ETRE DONNER LE NOMBRE D’OCCURENCE DE L’ELEMENT RECHERCHE
Merci infiniment pour votre œil attentif ! Grâce à votre remarque, j’ai pu corriger la solution afin qu’elle corresponde parfaitement à l’énoncé. N’hésitez pas à signaler d’autres points ou à partager vos suggestions, vos retours sont toujours les bienvenus !