Instruction alternative

L’instruction alternative est une structure de contrôle permettant de rendre conditionnelle l’exécution d’une suite d’instructions. En algorithmique, elle permet de modifier l’enchainement en séquence des instructions d’un algorithme.
Contrairement au traitement séquentiel, elle exécute ou non une séquence d’instructions si une condition donnée est vérifiée, ou une autre séquence d’instructions dans le cas contraire.
L’instruction alternative est une instruction qui commence par le mot réservé Si, dont la sémantique est liée à deux notions importantes que sont la Condition et la Comparaison.

Comparaison

La comparaison est une notion de mathématiques qui organise un ensemble d’éléments selon une relation d’ordre, afin de permettre la comparaison de ces éléments entre eux de manière cohérente. On appelle expression comparative une expression comprenant 2 éléments reliés par un opérateur de comparaison

Les opérateurs de comparaison définis dans le langage algorithmique Schema.

  • = est l’opérateur d’égalité.
  • != est l’opérateur de différence.
  • > est l’opérateur « strictement supérieur à ».
  • >= est l’opérateur « supérieur ou égal à ».
  • < est l’opérateur « strictement inférieur à ».
  • <= est l’opérateur « inférieur ou égal à ».

Condition

La condition est une expression mathématique dite booléenne dont l’évaluation renvoi une element booléen Vraie ou Faux.

  • Un booléen est un élément qui ne peut prendre que deux valeurs :  Vrai  ou Faux .
  • Une expression booléenne est une expression qui relie une ou plusieurs expression comparative à l’aide d’un opérateur booléen, dont le résultat est un booléen.
  • Une condition est une expression booléenne.

En Schema , les 3 opérateurs booléens sont le ET, OU ,NON .

  • NON: il produit Vrai si l’opérande est Faux. Il produit Faux si l’opérande est Vrai  :
  • ET: Le résultat de Condition_1 ET Condition_2 est Vrai si Condition_1 et Condition_2 prennent la valeur Vrai. Sinon, le résultat est Faux.
  • OU: Le résultat de Condition_1 OU Condition_2 est Vrai si Condition_1 donne Vrai et Condition_2 donne Faux, ou Condition_1 donne Faux et Condition_2 donne Vrai. Sinon, le résultat est Faux

Syntaxe

On écrit une instruction alternative sur une seule ligne de la façon suivante:

Si condition instruction
Si condition instruction Sinon instruction

Cette forme d’écriture simplifiée est utilisée quand le condition n’implique qu’une seule instruction

On écrit une instruction alternative sur plusieurs lignes de la façon suivante:

Si condition 
   séquence d’intructions 
Fin

Si condition 
   séquence d'instructions 
Sinon 
   séquence d'instructions 
Fin

Exemple d’un algorithme de comparaison de nombre entier

comparaison nombre Entier
   Si nombre > 5 Afficher le nombre #nombre est plus grand que 5 
Fin
comparaison nombre Entier
   Si nombre > 5 
      Afficher le nombre #nombre est comparé à 5 
      Afficher le nombre #nombre est plus grand que 5 
   Fin
Fin

La deuxième forme permettant d’exécuter une séquence d’instructions quand la condition est fausse, est:

Si condition
    séquence d'instructions
Sinon
    séquence d'instructions
Fin

La clause Sinon est facultative, si elle est absente, le choix ne porte que sur l’exécution d’un seul bloc d’instructions

comparaison nombre Entier
   Si nombre > 5 
      Afficher le nombre #nombre est plus grand que 5
   Sinon 
      Afficher le nombre #nombre est inférieur ou égal à 5
   Fin 
Fin
comparaison nombre Entier
   Si nombre > 5
      Afficher le nombre #nombre est comparé à 5
      Afficher le nombre #nombre est plus grand que 5
   Sinon
      Afficher le nombre #nombre est comparé à 5
      Afficher le nombre #nombre est inférieur ou égal à 5
   Fin
Fin

Instruction avec conditions multiples

En respectant la syntaxe de Si comme vu précédemment Lorsque l’on doit exécuter plusieurs instructions Si Sinon on est amené à écrire

Si condition1
    instruction1   
    Si condition2     
        instruction2
        Si condition3
            Instruction3
        Sinon
            instruction4
        Fin
    Fin 
  Fin
Fin

La syntaxe de langage algorithmique Schema permet une écriture plus simple

Si condition1
    instruction1
    condition2
       instruction2
    condition3
       instruction3
Sinon
    instruction4
Fin

Supposons que l’on veuille écrire un algorithme attribuant une appréciation à un élève en fonction de ses notes

Appréciation note entier 
   Si note <= 5
      Afficher travail Inexistant 
      Si note > 5 ET note >= 10 
         Afficher travail insuffisant
         Si note >10 ET note <= 14
            Afficher peut mieux faire 
            Si note > 14 Et note > 16
               Afficher bon travail
               Si note >=16 ET note < 18
                  Afficher très bon travail
               Sinon
                  Afficher excellent travail
               Fin
            Fin 
         Fin
      Fin 
   Fin
Fin

Schema en propose une autre forme,  équivalente mais plus simple dont la syntaxe est:(instruction(s) signifie une ou plusieurs instruction Schema)

Si condition 
   séquence de conditions
Fin

Si condition 
   séquence de conditions
Sinon
   séquence de conditions
Fin

ou la séquence de conditions s’écrit

instruction(s) 
condition-1 
   instruction(s) 
condition-2 
   instruction(s)
... 
condition-n 
   instruction(s) 

voir exemple Appréciation ci-dessous 

Exemple

Comparaison d’un nombre Entier Si

Schema

comparaison nombre Entier
   Si nombre > 5 
      Afficher le nombre #nombre est comparé à 5 
      Afficher le nombre #nombre est plus grand que 5 
   Fin
Fin

Swift

func comparaison(_ nombre: Int) {
   if nombre > 5 { 
      print("le nombre \(nombre) est comparé à 5")
      print("ke nombre \(nombre) est plus grand aue 5")
   }
}

Python

def comparaison(nombre):
   if nombre > 5:
      print("Le nombre", nombre, "est comparé à 5")
      print("Le nombre", nombre, "est plus grand que 5")

Comparaison  Si Sinon  nombre Entier Si

Schema

comparaison nombre Entier
   Si nombre > 5 
      Afficher le nombre #nombre est comparé à 5 
      Afficher le nombre #nombre est plus grand que 5
   Sinon 
      Afficher le nombre #nombre est comparé à 5 
      Afficher le nombre #nombre est inférieur ou égal à 5 
   Fin 
Fin

Swift

func comparaison(_ nombre: Int) {
   if nombre > 5 { 
      print("le nombre \(nombre) est comparé à 5")
      print("le nombre \(nombre) est plus grand que 5")
   } else { 
      print("le nombre \(nombre) est comparé à 5")
      print("le nombre \(nombre) est inférieur ou égal à 5")
   }
}

Python

def compraraison(nombre):
   if nombre > 5:
       print("Le nombre", nombre, "est comparé à 5")
       print("Le nombre", nombre, "est plus grand que 5")
   else:
      print("Le nombre", nombre, "est comparé à 5")
      print("Le nombre", nombre, "est inférieur ou égal à 5")

 

Appréciation de note

Si la note est inférieure ou égale à 5, le message « Travail inexistant » est affiché. Si la note est supérieure à 5 et inférieure ou égale à 10, le message « Travail insuffisant » est affiché. Si la note est supérieure à 10 et inférieure ou égale à 14, le message « Peut mieux faire » est affiché. Si la note est supérieure à 14 et inférieure ou égale à 16, le message « Bon travail » est affiché. Si la note est supérieure ou égale à 16 et inférieure à 18, le message « Très bon travail » est affiché. Si la note est supérieure ou égale à 18, le message « Excellent travail » est affiché.

Schema

appréciation note Entier 
   Si note <= 5
      Afficher travail Inexistant 
      note > 5 ET note <= 10 
         Afficher travail insuffisant
      note > 10 ET note <= 14
         Afficher peut mieux faire 
      note > 14 ET note <= 16
         Afficher bon travail
      note > 16 ET note <= 18
         Afficher très bon travail
   Sinon
     Afficher excellent travail
   Fin
Fin

Swift

func appréciation(_ note: Int) {
   if note <= 5 { 
      print("travail Inexistant ")
   } else if note > 5 && note <= 10 {
      print("travail. insuffisant")
   } else if note > 10 && note <= 14 {
      print("peut mieux faire ")
   } else if note > 14 && note <= 16 {
      print("bon travail")
   } else if note > 16 && note <= 18 {
      print("très bon travail")
   } else { 
      print("excellent travail")
   }
}

Python

def appréciation(note):
   if note <= 5:
      print("Travail inexistant")
   elif note > 5 and note <= 10:
      print("Travail insuffisant")
   elif note > 10 and note <= 14:
      print("Peut mieux faire")
   elif note > 14 and note <= 16:
      print("Bon travail")
   elif note > 16 and note <= 18:
      print("Très bon travail")
   else:
      print("Excellent travail")

copyright A rchitectures A pplicatives A vancées A3-Soft

mathAlgo