Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 7

Conditions: Si, Alors, Sinon

Recommended resources

Bonjour ! Bienvenue dans ce deuxième module de votre parcours en algorithmique. Vous avez brillamment terminé les fondamentaux, et il est temps d'ajouter une nouvelle dimension à vos algorithmes : l'intelligence de la prise de décision.

Introduction

Dans la leçon précédente, vous avez appris à concevoir des algorithmes séquentiels, qui suivent un chemin unique et prédéfini, un peu comme une recette de cuisine où chaque étape suit la précédente sans exception. C'est une base essentielle.

Cependant, la plupart des problèmes intéressants nécessitent de faire des choix. Par exemple, "Si l'utilisateur a plus de 18 ans, afficher 'Majeur', sinon afficher 'Mineur'". Un algorithme purement séquentiel ne peut pas gérer ce type de logique.

L'objectif de cette leçon est donc de vous apprendre à utiliser la structure la plus fondamentale pour la prise de décision : le Si...Alors...Sinon. Grâce à elle, vos algorithmes ne seront plus de simples exécutants, mais pourront analyser une situation et agir différemment en fonction des données. C'est un pas de géant vers la création de programmes plus complexes et utiles, et un pilier de l'écriture d'un "code clean" qui modélise fidèlement la réalité.


1. Pourquoi les conditions sont-elles nécessaires ?

Imaginez un algorithme qui doit calculer le montant à payer sur un site d'e-commerce. Le chemin séquentiel serait : Lire le prix, Lire la quantité, Calculer le total, Afficher le total.

Maintenant, que se passe-t-il si le site offre une livraison gratuite pour toute commande supérieure à 50 € ? La logique séquentielle se brise. Le calcul des frais de port n'est plus systématique ; il dépend d'une condition (le montant total est-il supérieur à 50 € ?).

Pour gérer ces embranchements logiques, nous devons introduire des structures de contrôle conditionnelles. Elles permettent à un algorithme d'évaluer une situation et de choisir le chemin à suivre.


2. La structure Si...Alors...Sinon

La structure Si...Alors...Sinon est l'outil principal pour implémenter une décision binaire (un choix entre deux options).

Pour découvrir sa syntaxe formelle et un premier exemple concret, je vous invite à consulter la ressource suivante.

CHAP2 NOTION D'ALGORITHME ET DE PROGRAMME

Ce document explique parfaitement pourquoi les algorithmes séquentiels ne suffisent pas toujours et introduit la structure 'Si...Alors...Sinon' avec un exemple clair : le calcul du prix d'une commande où une remise s'applique en fonction de la quantité.

Commencez à lire à la section intitulée '1-La structure alternative' (page 9) et poursuivez jusqu'à la fin de l'algorithme 'Commande' sur la page 10. Concentrez-vous sur la syntaxe 'Si ... Alors ... Sinon ... FinSi' et sur la manière dont elle est utilisée pour choisir entre deux calculs différents pour la variable 'montant'.

Anatomie de la structure

Comme vous l'avez vu dans l'exemple, la structure se décompose ainsi en pseudo-code :

Si <condition> Alors
    // Bloc d'instructions A
    // Ce code est exécuté SEULEMENT si la condition est VRAIE.
Sinon
    // Bloc d'instructions B
    // Ce code est exécuté SEULEMENT si la condition est FAUSSE.
FinSi
  • Si <condition> : C'est le point de décision. La condition est une expression qui sera évaluée et dont le résultat ne peut être que VRAI ou FAUX.
  • Alors : Indique le début du bloc de code à exécuter si la condition est VRAI.
  • Sinon : Indique le début du bloc de code à exécuter si la condition est FAUX. Cette partie est optionnelle ; si on l'omet, rien de spécial ne se passe lorsque la condition est fausse.
  • FinSi : Marque la fin de la structure conditionnelle. Après ce point, l'algorithme reprend son exécution séquentielle normale.

L'organigramme suivant représente visuellement ce flux :

Organigramme de la structure 'Si...Alors...Sinon'
Cet organigramme illustre le flux d'exécution d'une structure `Si...Alors...Sinon`. Le programme arrive au losange, qui représente la condition. En fonction de la réponse ('Oui' pour VRAI, 'Non' pour FAUX), il suit l'une des deux branches. Point crucial : quel que soit le chemin emprunté, les deux branches se rejoignent à la fin pour que le programme puisse continuer son exécution.

3. Qu'est-ce qu'une condition ?

Une condition est simplement une expression logique (ou booléenne), c'est-à-dire une affirmation qui peut être VRAIE ou FAUSSE.

Dans nos algorithmes, les conditions les plus courantes sont des comparaisons entre des variables ou des valeurs. Vous vous souvenez des opérateurs de comparaison du premier module ? Les voici de nouveau :

Opérateur Signification Exemple Résultat si age vaut 20
== Égal à age == 18 FAUX
!= Différent de age != 18 VRAI
< Strictement inférieur à age < 18 FAUX
> Strictement supérieur à age > 18 VRAI
<= Inférieur ou égal à age <= 20 VRAI
>= Supérieur ou égal à age >= 21 FAUX

C'est le résultat (VRAI ou FAUX) de l'évaluation de cette expression qui dicte si le bloc Alors ou le bloc Sinon sera exécuté.


4. Mise en pratique : premiers algorithmes conditionnels

La meilleure façon de maîtriser ce concept est de l'appliquer. Analysons ensemble un premier exemple, puis ce sera à votre tour !

Exemple : Vérifier si un nombre est pair ou impair

Un nombre entier est pair s'il est divisible par 2 sans reste. Sinon, il est impair. L'opérateur mod (modulo) nous donne le reste d'une division. Donc, la condition est nombre mod 2 == 0.

Voici l'algorithme correspondant, inspiré par un des exercices de la ressource Exercices Corrigés En Algorithme - Structure conditionnelle.

Algorithme PairImpair
  Variable
    nbr : Entier
  Début
    Ecrire("Veuillez entrer un nombre entier :")
    Lire(nbr)

    Si (nbr mod 2 == 0) Alors
      Ecrire("Le nombre ", nbr, " est pair.")
    Sinon
      Ecrire("Le nombre ", nbr, " est impair.")
    FinSi
  Fin

Analyse de l'exécution :

  • Si l'utilisateur saisit 8 : La condition 8 mod 2 == 0 s'évalue à 0 == 0, ce qui est VRAI. Le bloc Alors s'exécute et affiche "Le nombre 8 est pair."
  • Si l'utilisateur saisit 7 : La condition 7 mod 2 == 0 s'évalue à 1 == 0, ce qui est FAUX. Le bloc Sinon s'exécute et affiche "Le nombre 7 est impair."

À vous de jouer !

Prenez une feuille de papier et essayez de concevoir les algorithmes suivants en utilisant la méthode que nous avons vue (Analyse, Entrées/Sorties, Variables, Séquence d'instructions).


Exercice 1 : Valeur absolue

Concevez un algorithme qui demande un nombre à l'utilisateur et affiche sa valeur absolue. La valeur absolue d'un nombre positif ou nul est le nombre lui-même. La valeur absolue d'un nombre négatif est son opposé (par ex., la valeur absolue de -5 est 5).

Cliquez ici pour voir une solution possible

1. Analyse : Calculer la valeur absolue d'un nombre.
2. Entrées/Sorties :

  • Entrée : un nombre (n).
  • Sortie : sa valeur absolue (val_abs).
    3. Variables :
  • n : Réel
    4. Séquence :
Algorithme ValeurAbsolue
  Variable
    n : Réel
  Début
    Ecrire("Entrez un nombre :")
    Lire(n)

    Si (n >= 0) Alors
      Ecrire("La valeur absolue de ", n, " est ", n)
    Sinon
      // Si n est négatif, son opposé est -n
      Ecrire("La valeur absolue de ", n, " est ", -n)
    FinSi
  Fin

Exercice 2 : Vérification de la majorité

Concevez un algorithme qui demande l'âge de l'utilisateur et affiche "Vous êtes majeur." si l'âge est supérieur ou égal à 18, et "Vous êtes mineur." sinon.

Cliquez ici pour voir une solution possible

1. Analyse : Déterminer si une personne est majeure ou mineure selon son âge.
2. Entrées/Sorties :

  • Entrée : un âge (age).
  • Sortie : un message textuel.
    3. Variables :
  • age : Entier
    4. Séquence :
Algorithme VerificationMajorite
  Variable
    age : Entier
  Début
    Ecrire("Quel est votre âge ?")
    Lire(age)

    Si (age >= 18) Alors
      Ecrire("Vous êtes majeur.")
    Sinon
      Ecrire("Vous êtes mineur.")
    FinSi
  Fin

Conclusion

Félicitations ! Vous venez de franchir une étape décisive. Vos algorithmes ne sont plus de simples automates, ils peuvent désormais prendre des décisions.

Points clés à retenir :

  • La structure Si...Alors...Sinon permet d'exécuter des blocs de code différents en fonction d'une condition.
  • Une condition est une expression logique qui s'évalue à VRAI ou FAUX, souvent basée sur des opérateurs de comparaison.
  • Le FinSi est essentiel pour délimiter la fin de la structure conditionnelle et indiquer où le flux d'exécution normal doit reprendre.

Et après ?

Nous avons appris à gérer un choix entre deux options. Mais que faire si nous avons plus de deux cas possibles ? Par exemple, "Si la note est supérieure à 15, mention 'Très Bien'. Si elle est entre 12 et 15, mention 'Bien'. Sinon, mention 'Passable'."

Dans la prochaine leçon, nous verrons comment imbriquer les structures conditionnelles avec le Si...SinonSi...Sinon pour gérer élégamment des cas multiples et construire une logique encore plus fine.