Imbrication de conditions | Algorithmique Seconde

Introduction

IMBRICATION DE CONDITIONS
Instructions conditionnelles - Structures imbriquées

Découvrez comment imbriquer des structures conditionnelles

Imbrication
Condition
Structure

Définition de l'imbrication

Qu'est-ce que l'imbrication ?

DÉFINITION
Imbrication de conditions

L'imbrication de conditions consiste à placer une structure conditionnelle à l'intérieur d'une autre structure conditionnelle.

Cela permet de tester plusieurs conditions successivement ou en cascade.

Syntaxe de base
SI condition_extérieure ALORS
    instructions
    SI condition_intérieure ALORS
        instructions
    FIN SI
FIN SI

Exemple simple d'imbrication

Structure conditionnelle imbriquée

EXEMPLE DE BASE
Exemple simple
Variables age, permis : Entier

Afficher("Entrez votre âge : ")
Lire(age)

SI age >= 18 ALORS
    Afficher("Vous êtes majeur")
    Afficher("Entrez votre situation de permis (1=oui, 0=non) : ")
    Lire(permis)
    SI permis = 1 ALORS
        Afficher("Vous pouvez conduire")
    SINON
        Afficher("Vous ne pouvez pas conduire")
    FIN SI
SINON
    Afficher("Vous êtes mineur")
FIN SI
ANALYSE
Fonctionnement de l'imbrication

La structure conditionnelle intérieure (sur le permis) n'est exécutée que si la condition extérieure (âge ≥ 18) est vraie.

La condition intérieure dépend de la condition extérieure.

Niveaux d'imbrication

Profondeur de l'imbrication

NIVEAUX POSSIBLES
Différents niveaux d'imbrication
  • Niveau 1 : Une condition dans une autre (simple)
  • Niveau 2 : Une condition dans une condition dans une autre
  • Niveau 3 : Trois niveaux d'imbrication
  • etc. : On peut aller plus loin si nécessaire
EXEMPLE À 3 NIVEAUX
Structure à 3 niveaux
SI condition1 ALORS
    SI condition2 ALORS
        SI condition3 ALORS
            instructions
        FIN SI
    FIN SI
FIN SI

Indentation et lisibilité

Importance de l'indentation

RÈGLES D'INDENTATION
Pourquoi indenter ?

L'indentation permet de :

  • Visualiser la hiérarchie des structures
  • Comprendre facilement le flot d'exécution
  • Repérer les erreurs de syntaxe
  • Améliorer la lisibilité du code
EXEMPLE CORRECT
Bonne indentation
SI condition1 ALORS
    instructions1
    SI condition2 ALORS
        instructions2
        SI condition3 ALORS
            instructions3
        FIN SI
    FIN SI
FIN SI
EXEMPLE INCORRECT
Mauvaise indentation
SI condition1 ALORS
instructions1
SI condition2 ALORS
instructions2
SI condition3 ALORS
instructions3
FIN SI
FIN SI
FIN SI

Exemple complexe

Système de classification

ALGORITHME DE CLASSEMENT
Exemple avec 3 niveaux d'imbrication
Variables note, age, nationalite : Chaîne
Variables score : Réel

Afficher("Entrez la note : ")
Lire(note)
Afficher("Entrez l'âge : ")
Lire(age)
Afficher("Entrez la nationalité : ")
Lire(nationalite)

SI note >= 10 ALORS
    SI age >= 18 ALORS
        SI nationalite = "Français" ALORS
            score ← 100
            Afficher("Candidat retenu avec score : ", score)
        SINON
            SI note >= 15 ALORS
                score ← 90
                Afficher("Candidat retenu avec score : ", score)
            SINON
                score ← 50
                Afficher("Candidat en attente de validation")
            FIN SI
        FIN SI
    SINON
        SI note >= 14 ALORS
            score ← 80
            Afficher("Candidat retenu avec score : ", score)
        SINON
            Afficher("Candidat refusé")
        FIN SI
    FIN SI
SINON
    Afficher("Note insuffisante")
FIN SI
ANALYSE DES CONDITIONS
Hiérarchie des décisions

Cet exemple montre :

  • 3 niveaux d'imbrication
  • Conditions dépendantes les unes des autres
  • Différents chemins d'exécution possibles
  • Importance de l'indentation pour la lisibilité

Trace d'exécution

Suivi de l'exécution

EXEMPLE DE TRACE
Suivi pas à pas

Soit : note = 16, age = 20, nationalite = "Français"

Instruction Condition Résultat Action
Lecture de note - note = 16 Affectation
SI note >= 10 16 >= 10 Vrai Entre dans le bloc
SI age >= 18 20 >= 18 Vrai Entre dans le bloc
SI nationalite = "Français" "Français" = "Français" Vrai score = 100
IMPORTANCE DE LA TRACE
Pourquoi tracer l'exécution ?
  • Comprendre le flot d'exécution
  • Détecter les erreurs logiques
  • Valider le comportement attendu
  • Apprendre à lire un algorithme

Applications concrètes

Où utiliser l'imbrication ?

EXEMPLES D'UTILISATION
Domaines d'application
  • 1 Systèmes de validation : formulaire avec dépendances
  • 2 Calculs de tarifs : réductions selon plusieurs critères
  • 3 Jeux : collisions, niveaux, scores
  • 4 Contrôles de sécurité : accès selon rôles et permissions
EXEMPLE PRATIQUE
Calcul de tarif avec réduction
Variables age, panier, membre, reduction : Réel

Afficher("Entrez votre âge : ")
Lire(age)
Afficher("Entrez le montant du panier : ")
Lire(panier)
Afficher("Êtes-vous membre ? (1=oui, 0=non) : ")
Lire(membre)

SI age >= 65 ALORS
    reduction ← 20  // 20% de réduction
SINON
    SI age <= 12 ALORS
        reduction ← 30  // 30% de réduction
    SINON
        SI membre = 1 ALORS
            SI panier > 100 ALORS
                reduction ← 15  // 15% de réduction
            SINON
                reduction ← 5   // 5% de réduction
            FIN SI
        SINON
            reduction ← 0
        FIN SI
    FIN SI
FIN SI

Afficher("Réduction appliquée : ", reduction, "%")

Exercice d'application

Problème à résoudre

ÉNONCÉ
Exercice

Écrire un algorithme qui détermine le type de triangle en fonction de la longueur de ses côtés :

  • Si les trois côtés sont égaux : triangle équilatéral
  • Si deux côtés sont égaux et le troisième est différent : triangle isocèle
  • Si les trois côtés sont différents : triangle scalène
  • Si le triangle est isocèle et que le carré d'un côté égale la somme des carrés des deux autres : triangle isocèle rectangle

On suppose que l'utilisateur entre les longueurs des trois côtés a, b et c.

Solution de l'exercice

Correction détaillée

ALGORITHME COMPLET
Solution pas à pas
Variables a, b, c : Réel

Afficher("Entrez la longueur du côté a : ")
Lire(a)
Afficher("Entrez la longueur du côté b : ")
Lire(b)
Afficher("Entrez la longueur du côté c : ")
Lire(c)

SI (a = b) ET (b = c) ALORS
    Afficher("Triangle équilatéral")
SINON
    SI (a = b) OU (b = c) OU (a = c) ALORS
        SI (a*a = b*b + c*c) OU (b*b = a*a + c*c) OU (c*c = a*a + b*b) ALORS
            Afficher("Triangle isocèle rectangle")
        SINON
            Afficher("Triangle isocèle")
        FIN SI
    SINON
        Afficher("Triangle scalène")
    FIN SI
FIN SI
ANALYSE DE LA SOLUTION
Structure imbriquée
  • On teste d'abord si le triangle est équilatéral
  • Si non, on teste s'il est isocèle
  • Si c'est un isocèle, on teste s'il est aussi rectangle
  • Si ce n'est ni équilatéral ni isocèle, c'est scalène

Exercice supplémentaire

Système de notation

ÉNONCÉ
Exercice

Écrire un algorithme qui détermine la mention d'un élève en fonction de sa note et de sa participation :

  • Si la note est ≥ 16 : mention "Très Bien"
  • Si la note est ≥ 14 : mention "Bien"
  • Si la note est ≥ 12 : mention "Assez Bien"
  • Si la note est ≥ 10 : mention "Passable"
  • Si la note est < 10 : refusé
  • Si la note est ≥ 10 mais participation = "excellente" : mention "Bien"

On suppose que l'utilisateur entre la note et la participation.

Solution de l'exercice supplémentaire

Correction détaillée

ALGORITHME DE NOTATION
Solution pas à pas
Variables note : Réel
Variables participation : Chaîne

Afficher("Entrez la note : ")
Lire(note)
Afficher("Entrez la participation (excellente/bonne/moyenne) : ")
Lire(participation)

SI note >= 16 ALORS
    Afficher("Très Bien")
SINON
    SI note >= 14 ALORS
        Afficher("Bien")
    SINON
        SI note >= 12 ALORS
            Afficher("Assez Bien")
        SINON
            SI note >= 10 ALORS
                SI participation = "excellente" ALORS
                    Afficher("Bien")
                SINON
                    Afficher("Passable")
                FIN SI
            SINON
                Afficher("Refusé")
            FIN SI
        FIN SI
    FIN SI
FIN SI
ANALYSE DE LA SOLUTION
Imbrication complexe

Cet algorithme montre une imbrication de 3 niveaux avec des conditions dépendantes de la note et de la participation.

Optimisation des structures

Meilleures pratiques

BONNES PRATIQUES
Organisation des conditions
  • Évitez les imbrications trop profondes (max 3-4 niveaux)
  • Utilisez des variables intermédiaires pour simplifier
  • Structurez votre code avec une indentation claire
  • Commentez les parties complexes
VARIABLES INTERMÉDIAIRES
Simplification avec des variables

Au lieu d'écrire une structure très imbriquée, on peut :

condition1 ← (age >= 18)
condition2 ← (permis = "oui")
condition3 ← (assurance = "oui")
SI condition1 ALORS
    SI condition2 ALORS
        SI condition3 ALORS
            instructions
        FIN SI
    FIN SI
FIN SI

Complexité de l'imbrication

Analyse de performance

ANALYSE DES STRUCTURES
Temps d'exécution
Type de structure Complexité Exemple Note
Simple O(1) SI a > 5 ALORS Très rapide
Avec imbrication O(n) SI a > 5 ALORS SI b < 10 ALORS Dépend de la profondeur
Profonde imbrication O(n) SI a > 5 ALORS SI b < 10 ALORS SI c = 0 ALORS Plus lent avec profondeur
OPTIMISATION
Stratégies d'optimisation
  • Placer les conditions les plus probables en premier
  • Éviter les répétitions de calculs dans les conditions
  • Utiliser des variables pour stocker des résultats intermédiaires
  • Minimiser l'imbrication quand c'est possible

Résumé

Points clés

IMBRICATION DE CONDITIONS
Caractéristiques
  • Consiste à placer une structure conditionnelle dans une autre
  • Permet de tester plusieurs conditions successivement
  • Utilise l'indentation pour la lisibilité
  • Peut atteindre plusieurs niveaux d'imbrication
Applications
  • Systèmes de validation
  • Calculs conditionnels
  • Contrôles de sécurité
  • Jeux et simulations
Bonnes pratiques
  • Éviter les imbrications trop profondes
  • Utiliser une indentation claire
  • Commenter les structures complexes
  • Tester avec des cas variés
L'imbrication de conditions est essentielle en algorithmique !

Conclusion

Félicitations !

FÉLICITATIONS !
MAÎTRISE DE L'IMBRICATION DE CONDITIONS
Vous comprenez maintenant les structures conditionnelles imbriquées !

Continuez à pratiquer pour renforcer vos compétences en algorithmique

Compris
Retenu
Appliqué