Contrôle du code: les branchements

Sommaire

Index

if-then

Diagramme

Code

pseudo-code

VARIABLE
ENTIER a
DEBUT
    a <-- LIRE
    SI a == 0 ALORS
        ECRIRE "a est nul"
    FIN SI
FIN

Noter l’indentation (décalage de la marge gauche avec des espaces/tabulations)

bash

read -p 'Saisir un nombre: ' reponse
if [[ $reponse -eq 0 ]]
then
  echo "a est nul"
fi

if-then-else

Diagramme

Code

Pseudo-code

VARIABLE
ENTIER a
DEBUT
    a <-- LIRE
    SI a == 0 ALORS
        ECRIRE "a est nul"
    SINON
        ECRIRE "a est différent de zéro"
    FIN SI
FIN

bash

read -p 'Saisir un nombre: ' reponse
if [[ $reponse -eq 0 ]]
then
  echo "a est nul"
else
  echo "a est différent de zéro"
fi

Exercice

Faire l’exercice Positif/Négatif (lien ci-dessous)

Exercice positif négatif

Tests imbriqués

Quand deux branches sont insuffisantes

Observons cet algorithme:

Variables
ENTIER temp
Début
Ecrire "Entrez la température de l’eau :"
temp <-- Lire
Si Temp <= 0 Alors
 Ecrire "C’est de la glace"
FinSi
Si Temp > 0 Et Temp < 100 Alors
 Ecrire "C’est du liquide"
Finsi
Si Temp > 100 Alors
 Ecrire "C’est de la vapeur"
Finsi
Fin

Imbrication de tests

Et maintenant celui-ci qui donne a priori le même résultat:

Variables
ENTIER temp
Début
  Ecrire "Entrez la température de l’eau :"
  Lire Temp
  Si Temp <= 0 Alors
    Ecrire "C’est de la glace"
  Sinon
    Si Temp < 100 Alors
      Ecrire "C’est du liquide"
    Sinon
      Ecrire "C’est de la vapeur"
    Finsi
  Fin SI
Fin

Observons ce qu’est devenu l’opération logique ET de la première version

Test successifs

On aurait aussi pu écrire cet algorithme:

Variables
ENTIER temp
Début
  Ecrire "Entrez la température de l’eau :"
  Lire Temp
  Si Temp <= 0 Alors
    Ecrire "C’est de la glace"
  SinonSi Temp < 100 Alors
    Ecrire "C’est du liquide"
  Sinon
    Ecrire "C’est de la vapeur"
  Finsi
Fin

Exercice

Représenter sous la forme d’un logigramme (ou algorigramme) ces trois versions.

Observer les différences

switch ou selon

Diagramme

Code

Pseudo-code

VARIABLE
ENTIER a
DEBUT
    ECRIRE "Saisir un nombre"
    a <-- LIRE
    SELON a
        CAS 1:
            ECRIRE "a"
            ALLER À LA FIN DU SELON
        CAS 2:
            ECRIRE "b"
            ALLER À LA FIN DU SELON
        CAS 3:
            ECRIRE "c"
            ALLER À LA FIN DU SELON
        DEFAUT:
            ECRIRE "-"
    FIN SELON
FIN

Exécution du programme si a vaut 2

Saisir un nombre: 2
b

bash

read -p 'Saisir un nombre: ' reponse

case $reponse in

  1)
  echo " a"
  ;;

  2)
  echo "  b"
  ;;

  3)
  echo "   c"
  ;;

  *)
  echo "-"
esac