Exercices corrigés en algorithme
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
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 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 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
Les Fonctions et les procédure
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
Fonctions récursives
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