Exercices Corrigés En Algorithme – Structure conditionnelle

La meilleure façon d’apprendre quelque chose est de pratiquer des exercices. Nous avons préparer ces exercices corrigés pour les personnes (débutantes ou intermédiaires) qui sont familières avec les algorithmes. Nous espérons que ces exercices vous aideront à améliorer vos compétences sur les structures conditionnelles en algorithmique tels que la boucle ‘Si SiNon’, ‘Selon’, etc…

Vous pouvez lire notre tutoriel sur les algorithmes avant de résoudre les exercices suivants.

 
 

1. Écrire un algorithme permettant d’afficher si un nombre saisi est pair ou impair.

Exemple de sortie:

Entrer un nombre: 8 
Nombre pair
Algorithme  PairImpair
Variables nbr :entier
Début 
  Ecrire("Entrer un nombre:")
  Lire(nbr)
  Si(nbr mod 2 = 0) alors
      Ecrire("Nombre pair")
     SiNon
      Ecrire("Nombre impair")
  FinSi
Fin

Si un nombre est divisible par 2 sans reste, il est pair. Vous pouvez calculer le reste à l’aide de l’opérateur modulo « mod », comme ceci nbr mod 2 = 0. Si un nombre divisé par 2 laisse un reste de 1, le nombre est impair. Vous pouvez le vérifier en utilisant nbr mod 2 = 1. Voici l’organigramme de cet algorithme:

 
 

2. Écrire un algorithme permettant d’afficher le plus grand des 3 nombres saisis au clavier.

Exemple de sortie:

Entrer 1er nombre : 2
Entrer 2éme nombre: 9
Entrer 3éme nombre: 7
Le nombre le plus grand est: 9
Algorithme Max3Nbr
Variables n1,n2,n3,max :entiers
Début
  Ecrire("Entrer 1er nombre :")  
  Lire(n1)
  Ecrire("Entrer 2éme nombre:")  
  Lire(n2)
  Ecrire("Entrer 3éme nombre:")  
  Lire(n3)
   max ← n1  
   Si (n2 >= max) alors
	    max ← n2 
   FinSi
   
   Si(n3 >= max) alors 
      max ← n3 
   FinSi
 Ecrire("Le nombre le plus grand est: ",max)
Fin

Voici l’organigramme de cet algorithme:

 
 

3. Écrire un algorithme qui calcule la valeur absolue d’un nombre saisi par l’utilisateur.

Exemple de sortie:

Entrer un nombre: -5
La valeur absolue de -5 est 5
Algorithme NbrAbsolue
Variable n :entier
Début
   Ecrire("Entrer un nombre :") 
   Lire(n)
   Si(n >= 0) alors
     Ecrire("La valeur absolue de ",n," est ",n)
   SiNon 
     Ecrire("La valeur absolue de ",n," est ",-n)
   FinSi
Fin

Voici l’organigramme de cet algorithme:

 
 

4. Un magasin offre à ses clients 25% de réduction sur les montants d’achat supérieurs à 500 €. Ecrivez un algorithme qui permet d’entrer le prix total hors TVA et de calculer le montant TTC en tenant compte de la remise et du fait que la TVA = 10%.

Exemple de sortie:

Entrer le montant HT: 900
Le montant TTC est: 742.5
Algorithme CalculerTTC
Variables Prix_TTC,Prix_HT: réels
Début
   Ecrire("Entrer le montant HT:")
   Lire(Prix_HT)
   
   Prix_TTC ← Prix_HT + Prix_HT*0.1 
   
    Si(Prix_TTC > 500) alors
        Prix_TTC ← Prix_TTC - Prix_TTC*0.25
        Ecrire("Le montant TTC est:",Prix_TTC)
      SiNon 
        Ecrire("Le montant TTC est:",Prix_TTC)
    FinSi
Fin
 
 

5. Écrire un algorithme qui demande à l’utilisateur deux nombres n1 et n2 et lui indique ensuite si le produit de ces deux nombres est positif ou négatif. On prévoit dans le programme le cas où le produit peut être nul.

Exemple de sortie:

Entrer le 1er nombre:  -1.5
Entrer le 2éme nombre:  3
Le produit est négatif
-----------------------------
Entrer le 1er nombre:   1
Entrer le 2éme nombre:  3
Le produit est positif
-----------------------------
Entrer le 1er nombre:   0
Entrer le 2éme nombre:  3
Le produit est nul
Algorithme ProduitNbr
Variables n1,n2:réels
Début
  Ecrire("Entrer le 1er nombre:") 
  Lire(n1)
  Ecrire("Entrer le 2éme nombre:") 
  Lire(n2)
  
  Si(n1 == 0 ou n2 == 0) alors
      Ecrire("Le produit est nul")
  FinSi

  Si(n1*n2 < 0) alors
      Ecrire("Le produit est négatif")
  FinSi

  Si(n1*n2 > 0) alors  
      Ecrire("Le produit est positif")
  FinSi
Fin
 
 

6. Écrire un algorithme qui permette d’ajouter un commentaire sur le score saisi au clavier (si le score est supérieur à 10 alors il affiche « GOOD! » sinon « NOT GOOD! » (NB: le score est compris entre 0 et 20!).

Exemple de sortie:

Entrer le score: 15.5
GOOD!
------------------
Entrer le score: 5
NOT GOOD!
------------------
Entrer le score: -5
Score invalide!
Algorithme ValidateScore
Variables score :réel
Début
    Ecrire("Entrer le score: ")  
    Lire(score)

    Si(score < 0 ou score > 20) alors
      Ecrire("Score invalide!")
	FinSi
    Si(score >= 0 et score < 10) alors
      Ecrire("NOT GOOD!")
	FinSi
    Si(score >= 10 et score <= 20) alors
      Ecrire("GOOD!")
Fin
 
 

7. Le service de photocopie de votre université facture 0,50 € pour les 10 premières photocopies, 0,45 € pour les 20 suivantes et 0,30 € au-delà de 30 photocopies. Ecrivez un algorithme qui demande à l'utilisateur le nombre de photocopies réalisées et affiche la facture correspondante.

Exemple de sortie:

Entrez le nombre de papies: 25
Le prix total est: 11.25 €
Algorithme ServicePhotocopie
Variables N: entier
          prix: réel
Début
 Ecrire("Entrer le nombre de papies:")
 Lire(N)
   Si(N <= 20) alors 
     prix ← N * 0.50
   FinSi
   Si(N>20 et N<=30) alors 
      prix ← N * 0.45
   FinSi
   Si(N > 30) alors 
     prix ← N * 0.30
   FinSi
   
  Ecrire("Le prix total est: ",prix," €")   
Fin
 
 

8. Écrire un algorithme pour afficher les mois en lettres en fonction du nombre saisi par l'utilisateur.

Exemple de sortie:

Entrer le numéro du mois: 1
Janvier

Entrer le numéro du mois: 3
Mars

Entrer le numéro du mois: 12
Décembre
Algorithme MoisEnLettre
Variables N:entier
Début
 Ecrire("Entrer le numéro du mois:")
 Lire(N)
 Selon N faire
	1: Ecrire("Janvier")
	2: Ecrire("Février")
	3: Ecrire("Mars")
	4: Ecrire("Avril")
	5: Ecrire("Mai")
	6: Ecrire("Juin")
	7: Ecrire("Juille")
	8: Ecrire("Août")
	9: Ecrire("Septembre")
	10: Ecrire("Octobre")
	11: Ecrire("Novembre")
	12: Ecrire("Décembre")
 Sinon
    Ecrire("Aucun mois ne correspondant à N")
 FinSelon
Fin

L'instruction Selon est une instruction de contrôle de flux dans laquelle nous pouvons définir une variable changeante et exécuter ensuite un code différent en fonction de la valeur de la variable changeante. C'est une alternative à Si SiNon.

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *