Cours structures conditionnelles en algorithmique et langage

Cours structures conditionnelles en algorithmique et langage

Télécharger PDF

Les structures conditionnelles

Les structures conditionnelles sont fondamentales en programmation et en algorithmique. Elles permettent de n'exécuter une séquence d'instructions que si une condition spécifique est vraie. Ce mécanisme de décision est crucial pour créer des programmes qui s'adaptent à différentes situations.

En résumé, une structure conditionnelle est un test qui évalue une condition et oriente l'exécution du programme en fonction du résultat de cette évaluation (vrai ou faux).

Qu'est-ce qu'une condition ?

Une condition est une expression logique qui, à un moment donné de l'exécution d'un programme, est soit vraie (TRUE), soit fausse (FALSE). Elle est souvent le résultat d'une comparaison ou d'une combinaison de comparaisons.

Les opérateurs de comparaison

Les opérateurs de comparaison couramment utilisés pour former une condition sont :

  • = ou == (égal à)
  • ou != (différent de)
  • < (inférieur à)
  • <= (inférieur ou égal à)
  • > (supérieur à)
  • >= (supérieur ou égal à)

Conditions simples et conditions composées

Une condition peut être simple ou composée :

  • Condition simple : C'est une expression qui utilise un seul opérateur de comparaison. Par exemple : x > 0.
  • Condition composée : Elle est formée de plusieurs conditions simples reliées par des opérateurs logiques.

Les opérateurs logiques

Les opérateurs logiques permettent de combiner des conditions simples :

  • ET (AND) : La condition composée est vraie si TOUTES les conditions simples qui la composent sont vraies.
  • OU (OR) : La condition composée est vraie si AU MOINS UNE des conditions simples qui la composent est vraie.
  • NON (NOT) : Inverse la valeur de vérité d'une condition.

Exemples de conditions composées :

  • x est compris entre 2 et 6 : (x > 2) ET (x < 6)
  • n appartient à l'intervalle ]2,4] : (n > 2) ET (n <= 4)

Les formes conditionnelles en algorithmique

En algorithmique, il existe différentes manières de structurer un test, en fonction de la complexité de la décision à prendre.

1. La forme conditionnelle simple (ou réduite)

Cette forme permet d'exécuter un bloc d'instructions uniquement si la condition est vraie. Si la condition est fausse, le programme passe à l'instruction suivante sans exécuter le bloc.

Structure :

Si condition Alors
    Instructions à exécuter (si la condition est VRAIE)
Fin Si

Remarque : Dans le cas où l'évaluation de la condition est FAUX, les instructions contenues dans le bloc "Alors" ne seront pas exécutées.

Exemple 1 : Calcul de la valeur absolue (forme simple)

Algorithme qui calcule et affiche la valeur absolue d'un nombre quelconque lu au clavier.

Algorithme Valeur_Absolue_Simple
Var : x, abs : entier
Début
    Ecrire('Entrer un entier')
    Lire(x)
    abs ← x
    Si (x < 0) Alors
        abs ← -x
    Fin Si
    Ecrire('La valeur absolue de ', x, ' est ', abs)
Fin

2. La forme conditionnelle complète (ou alternative)

Cette forme permet d'exécuter un bloc d'instructions si la condition est vraie, OU un autre bloc d'instructions si la condition est fausse.

Structure :

Si condition Alors
    Instructions 1 (si la condition est VRAIE)
Sinon
    Instructions 2 (si la condition est FAUSSE)
Fin Si

Exemple 2 : Calcul de la valeur absolue (forme alternative)

Algorithme qui calcule et affiche la valeur absolue d'un nombre quelconque lu au clavier.

Algorithme Valeur_Absolue_Alternative
Var : x, abs : entier
Début
    Ecrire('Entrer un entier')
    Lire(x)
    Si (x >= 0) Alors
        abs ← x
    Sinon
        abs ← -x
    Fin Si
    Ecrire('La valeur absolue de ', x, ' est ', abs)
Fin

Exemple 3 : Vérifier la divisibilité par 3

Algorithme qui demande un nombre entier à l'utilisateur et affiche s'il est divisible par 3.

Algorithme Divisible_par3
Var : n : entier
Début
    Ecrire('Entrer un entier')
    Lire(n)
    Si (n % 3 == 0) Alors
        Ecrire(n, ' est divisible par 3')
    Sinon
        Ecrire(n, ' n''est pas divisible par 3')
    Fin Si
Fin

Exemple 4 : Calculer le maximum de deux entiers

Version 1 : avec une forme alternative

Algorithme Maximum1
Var : x,y,maxi : entier
Début
    Ecrire('Entrer deux entiers x et y')
    Lire(x,y)
    Si (x < y) Alors
        maxi ← y
    Sinon
        maxi ← x
    Fin Si
    Ecrire('Le maximum de ', x, ' et ', y, ' est ', maxi)
Fin

Version 2 : avec une forme simple (initialisation + test)

Algorithme Maximum2
Var : x,y,maxi : entier
Début
    Ecrire('Entrer deux entiers x et y')
    Lire(x,y)
    maxi ← x  // Supposons que x est le maximum initialement
    Si (x < y) Alors
        maxi ← y // Si y est plus grand, mettons à jour maxi
    Fin Si
    Ecrire('Le maximum de ', x, ' et ', y, ' est ', maxi)
Fin

3. La forme conditionnelle généralisée (tests imbriqués)

Une condition simple permet de choisir entre deux actions (vrai/faux). Cependant, dans de nombreux cas, le choix doit se faire entre plus de deux options. Pour cela, on utilise des structures conditionnelles imbriquées ou une forme généralisée du "Si... Alors... Sinon...".

Structure :

Si condition 1 Alors
    Instructions 1
Sinon Si condition 2 Alors
    Instructions 2
Sinon Si condition 3 Alors
    Instructions 3
...
Sinon
    Instructions N (si aucune des conditions précédentes n'est vraie)
Fin Si
Fin Si
Fin Si (autant de Fin Si que de Si)

Les structures de tests imbriqués sont un outil indispensable à l'organisation et à l'optimisation des algorithmes complexes.

Exemple 5 : État de l'eau selon la température

Un algorithme qui donne l'état de l'eau selon sa température (solide, liquide, gazeux).

Algorithme Température_Eau
Var : Temp : réel
Début
    Ecrire('Entrer la température de l''eau')
    Lire(Temp)
    Si (Temp <= 0) Alors
        Ecrire('C''est de la glace (état solide)')
    Sinon Si (Temp < 100) Alors // Implicitement (Temp > 0 ET Temp < 100)
        Ecrire('C''est du liquide (état liquide)')
    Sinon // Implicitement (Temp >= 100)
        Ecrire('C''est de la vapeur (état gazeux)')
    Fin Si
Fin

Exemple 6 : Signe du produit de deux nombres

Algorithme qui détermine si le produit de deux nombres est négatif, positif ou nul.

Algorithme Signe_Produit
Var : x,y : réels
Début
    Ecrire('Entrer deux réels x et y')
    Lire(x,y)
    Si (x = 0) OU (y = 0) Alors
        Ecrire("Le produit est nul")
    Sinon Si ( (x < 0 ET y < 0) OU (x > 0 ET y > 0) ) Alors
        Ecrire("Le produit est positif")
    Sinon // Un des nombres est négatif et l'autre positif
        Ecrire("Le produit est négatif")
    Fin Si
Fin

4. Le choix multiple (structure "Selon")

La structure de choix multiple, souvent appelée "Selon" en algorithmique, est utilisée lorsque plusieurs chemins d'exécution dépendent de la valeur exacte d'une seule expression ou variable. C'est une alternative plus lisible aux séries de "Sinon Si" pour certains cas.

Structure :

Selon <expression> faire
    Valeur1: Première séquence d'instructions;
    Valeur2: Deuxième séquence d'instructions;
    ...
    ValeurN: Nème séquence d'instructions;
    Sinon: (N+1)ème séquence d'instructions; // Optionnel : si aucune valeur ne correspond
Fin Selon

Exemple 7 : Mois ayant 30 jours

Algorithme qui détermine si un mois donné (par son numéro) a 30 jours.

Algorithme MoisA30Jours
Var : mois : Entier
    résultat : Booléen
Début
    Ecrire('Entrer le numéro du mois (1-12)')
    Lire(mois)
    Selon mois faire
        4, 6, 9, 11 : résultat ← VRAI
        Sinon : résultat ← FAUX
    Fin Selon
    Si (résultat) Alors
        Ecrire('Le mois ', mois, ' a 30 jours.')
    Sinon
        Si (mois = 2) Alors
            Ecrire('Le mois de février a 28 ou 29 jours.')
        Sinon
            Ecrire('Le mois ', mois, ' a 31 jours.')
        Fin Si
    Fin Si
Fin

De l'algorithmique au langage C

Les structures conditionnelles en algorithmique ont des équivalents directs dans les langages de programmation comme le C.

Traduction de "Si...Alors...Sinon"

La structure Si...Alors...Sinon se traduit en C par if...else if...else.

Forme simple réduite :

if (condition_réalisée) {
    // liste d'instructions à exécuter
}

Forme complète ou alternative :

if (condition_réalisée) {
    // liste d'instructions (si VRAI)
} else {
    // autre série d'instructions (si FAUX)
}

Forme généralisée (imbriquée) :

if (condition1) {
    // Instructions si condition1 est vraie
} else if (condition2) {
    // Instructions si condition2 est vraie (et condition1 fausse)
} else if (condition3) {
    // Instructions si condition3 est vraie (et condition1 et condition2 fausses)
}
...
else {
    // Instructions si aucune des conditions précédentes n'est vraie
}

Traduction de "Selon" (Choix multiple)

La structure Selon se traduit en C par l'instruction switch. Elle est utilisée pour exécuter différentes actions en fonction de la valeur d'une seule variable.

Structure :

switch (variable) {
    case Valeur1:
        // Liste d'instructions pour Valeur1
        break;
    case Valeur2:
        // Liste d'instructions pour Valeur2
        break;
    ...
    case ValeurN:
        // Liste d'instructions pour ValeurN
        break;
    default:
        // Liste d'instructions pour toute autre valeur de la variable
}

Remarque importante : Vous devez obligatoirement mettre une instruction break; à la fin de chaque bloc case. Si vous ne le faites pas, alors l'ordinateur continuera à lire et exécuter les instructions des blocs case suivants, même si leurs valeurs ne correspondent pas (phénomène appelé "fall-through"). L'instruction break; commande en fait de "sortir" du bloc switch.

Foire Aux Questions (FAQ)

Qu'est-ce qu'une structure conditionnelle en programmation ?

Une structure conditionnelle est un élément de code qui permet à un programme de prendre des décisions. Elle exécute des instructions spécifiques uniquement si une condition donnée est évaluée comme vraie, ou d'autres instructions si la condition est fausse, guidant ainsi le flux d'exécution du programme.

Quelle est la différence entre un "Si...Alors" et un "Si...Alors...Sinon" ?

Un "Si...Alors" (forme simple) exécute un bloc d'instructions seulement si la condition est vraie. Si la condition est fausse, le programme continue après le bloc. Un "Si...Alors...Sinon" (forme complète ou alternative) exécute un premier bloc d'instructions si la condition est vraie, et un second bloc d'instructions différent si la condition est fausse, garantissant toujours une action.

Quand faut-il utiliser une structure "Selon" (switch) plutôt qu'une série de "Si...Sinon Si" ?

La structure "Selon" (switch en C) est préférable lorsque vous devez tester les différentes valeurs possibles d'une seule variable ou expression. Elle offre une meilleure lisibilité et est souvent plus performante qu'une longue série de "Si...Sinon Si" lorsque le nombre de cas est élevé et basé sur des valeurs discrètes.

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne