FSEG Tunis

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

Les fonction en algorithme

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
0 0 votes
Évaluation de l'article
S’abonner
Notification pour

0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
Bouton retour en haut de la page
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x