Initiation à l'algorithmique

Les structures de contrôle conditionnelles

Un programme est donc une suite d'instructions exécutées par la machine. Ces instructions peuvent s'exécuter dans certains cas et pas dans d'autres, on parle alors de structure alternative ;

I. L'alternative SI-ALORS-SINON

Une alternative s'exprime par si … Sinon…

1. Alternative  Simple

Syntaxe1:

Si<conditions>   alors
             <Instruction1>
    …
             <Instruction N>
Fin Si

Exemple

Si (a<0) alors
        Ecrire( "la valeur de a et négatif");
Fin Si

Syntaxe 2:


Si <expression booléenne>  alors
              <Instruction1>
              …
             <Instruction N>
Sinon
             <Instruction1>
             …
              <Instruction N>
Fin si

Exemple :

Si (a<b) alors
        max <- b
Sinon
        max <-  a 
Fin si

2. Qu’est ce qu’une condition ?

Une condition est composée de trois éléments :

  • une valeur, un opérateur de comparaison, une autre valeur

Les valeurs peuvent être a priori de n’importe quel type (numériques, caractères…). Mais si l’on veut que la comparaison ait un sens, il faut que les deux valeurs de la comparaison soient du même type !

Type
Exemple
Opérations possibles
symbole
Réel
-15.69, 0.49
Addition
Soustraction
Multiplication
Division
Exposant
Pourcentage
comparaisons
+
-
*
/
^
%
<,<=,>,>=,=,…
Entier
-10, 4, 768
Addition
Soustraction
Multiplication
Division
Modulo
Exposant
Pourcentage
+
-
*
DIV
MOD
^
%
caractère
‘B’, ‘\n’
comparaisons
<,<=,>,>=,=,…
Booléen
Vrai, Faux
Comparaison
Négation
Conjonction
disjonction
<,<=,>,>=,=,…
NON
ET
OU


Exemple

  • ‘t’ < ‘w’          VRAI
  • 5>6                FAUX
  • 2< 3               VRAI

Exercice 1:

Ecrire un algorithme qui permet d’afficher le message « non admis » si la note de l’étudiant et inférieure a 10 et admis dans le cas ou la note supérieure à 10

Corrigé :

Algorithme   admission  :
   Variable note : réel ;
Début
   Ecrire ("Saisir une note : ") ;        
   Lire(note) ;
   SI note < 10 ALORS
      Ecrire("Non admis")
   SINON
      Ecrire("Admis")
   FIN SI
Fin

3. Conditions composées  :

Certains problèmes exigent parfois de formuler des conditions composées liées entre eux par les opérateurs logiques suivants : ET, OU, NON, et XOR.

  • Condition1 ET Condition2 : VRAI,  si Condition1 est VRAI et Condition2 est VRAI.
  • Condition1 OU Condition2 :  VRAI, si Condition1 est VRAI ou bien  Condition2 est VRAI.
  • le NON inverse une condition : NON(Condition1) est VRAI si Condition1 est FAUX, et il sera FAUX si Condition1 est VRAI.
  • Le XOR (ou OU exclusif)
    • Condition1 XOR Condition2 : VRAI, si Condition1 est  VRAI, ou bien Condition2 est VRAI.
    • Mais si toutes les deux sont fausses, ou que toutes les deux sont VRAI, alors le résultat global est considéré comme FAUX.

tables de vérité (C1 et C2 représentent deux conditions, et on envisage à chaque fois les quatre cas possibles) :

4. Tests  imbriqués: 

Dans les cas précédents on a seulement deux situation possibles (jour et nuit) , (admin, non admis) mais si il y’a plusieurs situations par exemple dans la mention (non admin, passable, assez bien, bien, très bien) une structure alternative simple ne suffit pas, donc pour traiter ce cas on doit passer par plusieurs structures alternative on parle ( test imbriqué)

Syntaxe :

Si <condition 1>   alors
             <Instruction1>
Sinon Si <condition 2>   alors
             <Instruction1>
...
Sinon
             <Instruction1>
             <Instruction N>
Fin Si

Exercice 2 :

Ecrire un algorithme qui permet de tester le signe d’un nombre ;

Corrigé :

Dans le cas de signe d’un nombre on a trois situation : (négatif, nul, positif)

Algorithme   signe_nombre  :
   Variables nb: entier ;
Début
   Ecrire ("Saisir un nombre : ") ;        
   Lire(nb) ;
   SI nb<0 ALORS
       Ecrire("le nombre est négatif")
   SINON SI nb > 0 ALORS
       Ecrire("le nombre est positif")
   SINON
       Ecrire("le nombre est nul")
   FIN SI
Fin

Exercice 3

Écrire un algorithme qui demande l’âge d’un enfant à l’utilisateur.  Ensuite, il l’informe de sa catégorie :

  •  « Poussin » de 6 à 7 ans
  •  « Pupille » de 8 à 9 ans
  •  « Minime » de 10 à 11 ans
  •  « Cadet » après 12 ans

Corrigé :

Solution 1

Algorithme   categorie_enfant  :
   Variable age : entier ;
Début
   Ecrire ("Saisir l'age: ") ;        
   Lire(age) ;
   SI age < 6 ALORS
      Ecrire("Saisir un age supérieur ou égal 6")
   SINON SI age <=7 ALORS
      Ecrire("Poussin")
   SINON SI age <=9 ALORS
      Ecrire("Pupille")
   SINON SI age <=11 ALORS
      Ecrire("Minime")
   SINON
      Ecrire("Cadet")
   FIN SI
Fin

Solution 2

Algorithme   categorie_enfant  :
   Variable age : entier ;
Début
   Ecrire ("Saisir l'age: ") ;        
   Lire(age) ;
   SI age < 6 ALORS
      Ecrire("Saisir un age supérieur ou égal 6")
   SINON SI age >=6 ET age <=7 ALORS
      Ecrire("Poussin")
   SINON SI age >=8 ET age <=9 ALORS
      Ecrire("Pupille")
   SINON SI age >=10 ET age <=11 ALORS
      Ecrire("Minime")
   SINON
      Ecrire("Cadet")
   FIN SI
Fin

Exercice 4

Ecrivez un algorithme qui lira au clavier l’heure et les minutes, et il affichera l’heure qu’il sera une minute plus tard.

Par exemple, si l'utilisateur tape 21 puis 32, l'algorithme doit répondre : "Dans une minute, il sera 21 heure(s) 33".

NB : on suppose que l'utilisateur entre une heure valide. Pas besoin donc de la vérifier.

Corrigé :

Algorithme   heure_a_minute  :
   Variables heure,minute : entiers ;
Début
   Ecrire ("Saisir l'heure et la minute : ") ;        
   Lire(heure,minute) ;
   SI heure = 23 ALORS
       SI minute=59 ALORS
          heure <- 0;
          minute <- 0;
       SINON
          minute <- minute+1;
       FIN SI
   SINON
       SI minute=59 ALORS
          heure <- heure+1;
          minute <- 0;
       SINON
          minute <- minute+1;
       FIN SI
   FIN SI   
   Ecrire("Dans une minute, il sera ",heure," heure(s) ",minute);
Fin

Exercice 5

Écrire un algorithme qui à partir d’un nombre compris entre 1 et 7 affiche le jour correspondant ?

Corrigé :

Algorithme   jour_semaine  :
   Variable jour: entier ;
Début
   Ecrire ("Saisir un jour : ") ;        
   Lire(nb) ;
   SI jour=1 ALORS
       Ecrire("Lundi")
   SINON SI jour=2 ALORS
       Ecrire("Mardi")
   SINON SI jour=3 ALORS
       Ecrire("Mercredi")
   SINON SI jour=4 ALORS
       Ecrire("Jeudi")
   SINON SI jour=5 ALORS
       Ecrire("Vendredi")
   SINON SI jour=6 ALORS
       Ecrire("Samedi")
   SINON SI jour=7 ALORS
       Ecrire("Dimanche")
   SINON
       Ecrire("jour invalide")
   FIN SI
Fin

II. Structure à choix multiples

1. Structure  SELON

La structure SELON permet d'effectuer tel ou tel traitement en fonction de la valeur du sélecteur(variable ou donnée) .

Syntaxe:

Selon sélecteur faire
    valeur 1 : <Traitement1>
    valeur 2 : <Traitement2>
     … …
     … …
    valeur N : <Traitement N>
    SINON
           <Traitement R>
Fin selon

Explication :

  • Si le selecteur vaut valeur 1, alors on exécute le traitement1 et on quitte la structure Selon.
  • Si le sélecteur et différent de valeur1, on évalue la valeur2...et ainsi de suite.
  • Si aucune  n'est vraie on effectue l'action sinon (au cas où l'action sinon n'existe pas alors aucune action n'est exécutée !).

Exemple:

Écrire un algorithme qui à partir d’un nombre compris entre 1 et 7 affiche le jour correspondant ?

Algorithme   jours_semaine  :
   Variable jour : entier ;
Début
   Ecrire ("Saisir une valeur : ") ;        
   Lire(jour) ;
   SELON jour faire
      1 : Ecrire("Lundi")
      2 : Ecrire("Mardi")
      3 : Ecrire("Mercredi")
      4 : Ecrire("Jeudi")
      5 : Ecrire("Vendredi")
      6 : Ecrire("Samedi")
      7 : Ecrire("Dianche")
      SINON : Ecrire("Jour invalide")
    Fin SELON
Fin

2. Structure  SELONQUE

La structure SELONQUE permet d'effectuer tel ou tel traitement en fonction de la valeur des conditions 1 ou 2 ou ..n .

Syntaxe 2 :

SELONQUE
  <condition 1> : <action 1>
  <condition 2> : <action 2>
  ...
  <condition n> : <action n>
  SINON : <action_sinon>
FIN SELONQUE

Explication :

  • Si la condition 1 est vraie, alors on exécute l'action correspondante et on quitte la structure selon-que
  • Si la condition 1 est fausse, on évalue la condition 2...et ainsi de suite.
  • Si aucune  n'est vraie on effectue l'action sinon ( au cas où l'action sinon n'existe pas alors aucune action n'est exécutée !).

Exemple:

Écrire un algorithme qui à partir d’une note affiche la mention correspondant ?

Algorithme   mention  :
   Variable note : réel ;
Début
   Ecrire ("Saisir une note : ") ;        
   Lire(note) ;
   SELON A faire
      note<10 : Ecrire("Non admin")
      note<12 : Ecrire("passable")
      note<14 : Ecrire("assez bien")
      note<16 : Ecrire("Bien")
      note<18 : Ecrire("très bien")
      note<=20:Ecrire("Excellent")
      SINON : Ecrire("Note invalide")
    Fin SELON
Fin


Partager ce cours avec tes amis :
Rédigé par Mostafa Sedoki
Professeur d'Informatique dans les CPGE

Cours Similaires :