Structure conditionnelle si...alors...sinon | Algorithmique Seconde
Introduction
Découvrez comment prendre des décisions dans vos algorithmes
Structure de base de la conditionnelle
Syntaxe de la structure conditionnelle
La structure conditionnelle permet d'exécuter des instructions différentes selon qu'une condition est vraie ou fausse :
instructions si la condition est vraie
SINON
instructions si la condition est fausse
FIN SI
Variables age : Entier
Afficher("Entrez votre âge : ")
Lire(age)
SI age >= 18 ALORS
Afficher("Vous êtes majeur")
SINON
Afficher("Vous êtes mineur")
FIN SI
Opérateurs de comparaison
Comparateurs logiques
- = : égal à
- ≠ ou <> : différent de
- < : inférieur à
- > : supérieur à
- <= : inférieur ou égal à
- >= : supérieur ou égal à
- SI note >= 10 ALORS → admis
- SI temperature < 0 ALORS → gel
- SI a = b ALORS → égalité
- SI prix <= 100 ALORS → bon marché
Conditions simples
Test d'une seule condition
Variables nombre : Entier
Afficher("Entrez un nombre : ")
Lire(nombre)
SI nombre > 0 ALORS
Afficher("Le nombre est positif")
SINON
Afficher("Le nombre est négatif ou nul")
FIN SI
- L'utilisateur entre une valeur
- Le programme teste si la condition nombre > 0 est vraie
- Si elle est vraie, on exécute le bloc "alors"
- Si elle est fausse, on exécute le bloc "sinon"
Opérateurs logiques
Combinaison de conditions
- ET : toutes les conditions doivent être vraies
- OU : au moins une condition doit être vraie
- NON : inverse la valeur de vérité
- SI age >= 18 ET permis = "oui" ALORS → conduire autorisé
- SI note >= 10 OU bonus = "oui" ALORS → admis
- SI NON valide ALORS → refusé
Conditions imbriquées
Structures conditionnelles imbriquées
Variables age, permis : Entier
Afficher("Entrez votre âge : ")
Lire(age)
SI age >= 18 ALORS
Afficher("Vous êtes majeur")
SI permis = 1 ALORS
Afficher("Vous pouvez conduire")
SINON
Afficher("Vous ne pouvez pas conduire")
FIN SI
SINON
Afficher("Vous êtes mineur")
FIN SI
La structure conditionnelle interne n'est testée que si la condition extérieure est vraie.
On peut imbriquer autant de conditions que nécessaire, mais il faut bien gérer l'indentation pour la lisibilité.
Exemple complet d'algorithme
Calcul de mention au bac
Variables moyenne : Réel
Afficher("Entrez votre moyenne au bac : ")
Lire(moyenne)
SI moyenne >= 16 ALORS
Afficher("Félicitations ! Mention Très Bien")
SINON
SI moyenne >= 14 ALORS
Afficher("Mention Bien")
SINON
SI moyenne >= 12 ALORS
Afficher("Mention Assez Bien")
SINON
Afficher("Pas de mention")
FIN SI
FIN SI
FIN SI
| Condition testée | Résultat | Action |
|---|---|---|
| moyenne >= 16 | Vrai (si 17.5) | Affiche "Très Bien" |
| moyenne >= 14 | Faux (si 13.5) | Teste la condition suivante |
| moyenne >= 12 | Vrai (si 13.5) | Affiche "Assez Bien" |
Cas particuliers et erreurs
Pièges à éviter
Ne pas confondre l'affectation (=) et la comparaison (== ou =) :
SI a ← 5 ALORS → Affectation (erreur !)
Dans les expressions complexes, les parenthèses sont essentielles :
→ Peut être ambigu sans parenthèses
SI (a = 5 ET b = 10) OU c = 20 ALORS → Plus clair
Éviter les conditions qui ne peuvent jamais être vraies :
Applications concrètes
Où utiliser les structures conditionnelles ?
- 1 Systèmes de validation : formulaire, inscription
- 2 Calculs de tarifs : réductions, frais de port
- 3 Jeux : collisions, victoires, niveaux
- 4 Contrôles de sécurité : accès, permissions
Variables prix, age : Réel
Afficher("Entrez le prix initial : ")
Lire(prix)
Afficher("Entrez votre âge : ")
Lire(age)
SI age <= 12 ALORS
prix ← prix * 0.5 // 50% de réduction
SINON
SI age <= 18 ALORS
prix ← prix * 0.8 // 20% de réduction
SINON
prix ← prix // Pas de réduction
FIN SI
FIN SI
Afficher("Prix final : ", prix)
Exercice d'application
Problème à résoudre
Écrire un algorithme qui détermine si un triangle est rectangle, isocèle ou équilatéral à partir des longueurs de ses côtés.
On suppose que l'utilisateur entre les longueurs des trois côtés : a, b et c.
Indications :
- Triangle rectangle : a² + b² = c² (théorème de Pythagore)
- Triangle isocèle : au moins deux côtés égaux
- Triangle équilatéral : trois côtés égaux
Solution de l'exercice
Correction détaillée
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*a = b*b + c*c) OU (b*b = a*a + c*c) OU (c*c = a*a + b*b) ALORS
Afficher("Le triangle est rectangle")
SINON
SI (a = b) ET (b = c) ALORS
Afficher("Le triangle est équilatéral")
SINON
SI (a = b) OU (b = c) OU (a = c) ALORS
Afficher("Le triangle est isocèle")
SINON
Afficher("Le triangle est quelconque")
FIN SI
FIN SI
FIN SI
- On teste d'abord si le triangle est rectangle (Pythagore)
- Si non, on teste s'il est équilatéral (trois côtés égaux)
- Si non, on teste s'il est isocèle (deux côtés égaux)
- Si aucune condition n'est remplie, c'est un triangle quelconque
Exercice supplémentaire
Calcul de salaire
Écrire un algorithme qui calcule le salaire net mensuel d'un employé sachant que :
- Le salaire de base est de 15€/heure
- Les heures supplémentaires (au-delà de 35h/semaine) sont payées 1.5 fois le taux normal
- Des cotisations sociales de 20% sont déduites du salaire brut
- Si le salaire net est supérieur à 2000€, une prime de 100€ est ajoutée
On suppose que l'utilisateur entre le nombre d'heures travaillées dans le mois.
Solution de l'exercice supplémentaire
Correction détaillée
Variables heures, salaire_brut, salaire_net : Réel
Afficher("Entrez le nombre d'heures travaillées : ")
Lire(heures)
SI heures <= 140 ALORS // 35h/semaine * 4 semaines = 140h/mois
salaire_brut ← heures * 15
SINON
salaire_brut ← 140 * 15 + (heures - 140) * 15 * 1.5
FIN SI
salaire_net ← salaire_brut * 0.8 // Déduction des cotisations
SI salaire_net > 2000 ALORS
salaire_net ← salaire_net + 100 // Prime
FIN SI
Afficher("Salaire net : ", salaire_net, "€")
Si heures = 160 :
- salaire_brut = 140 * 15 + 20 * 15 * 1.5 = 2100 + 450 = 2550€
- salaire_net = 2550 * 0.8 = 2040€
- Comme 2040 > 2000, on ajoute la prime : 2040 + 100 = 2140€
Visualisation de la structure
Diagramme de flux
↓
[Lire une variable]
↓
[Condition ?]
├─ VRAI → [Bloc ALORS]
│ ↓
└─ FAUX → [Bloc SINON]
↓
[Afficher résultat]
↓
[FIN]
La structure conditionnelle peut être vue comme un arbre de décision :
- La racine est la condition
- Les branches représentent les chemins possibles
- Les feuilles sont les actions à effectuer
Cette structure permet de modéliser des prises de décision complexes.
Complexité de la structure
Analyse de performance
| Structure | Complexité | Description | Exemple |
|---|---|---|---|
| Condition simple | O(1) | Test unique | SI x > 5 ALORS |
| Condition composée | O(1) | Avec ET/OU | SI x > 5 ET y < 10 ALORS |
| Conditions imbriquées | O(n) | Niveau de profondeur | SI x > 5 ALORS SI y < 10 ALORS |
- Limitez l'imbrication des conditions (max 3-4 niveaux)
- Utilisez des variables booléennes pour les conditions complexes
- Structurez bien votre code avec l'indentation
- Documentez les conditions complexes
Résumé
Points clés
- SI condition ALORS → instructions si vraie
- SINON → instructions si fausse
- FIN SI → fermeture de la structure
- =, ≠, <, >, <=, >= pour les comparaisons
- ET, OU, NON pour les combinaisons logiques
- Parenthèses pour la priorité des opérations
- Systèmes de validation
- Calculs conditionnels
- Contrôles de sécurité
- Jeux et interactions
Conclusion
Félicitations !
Continuez à pratiquer pour renforcer vos compétences en algorithmique