# Chapitre 3 : Tests > [!video] Vidéo explicative > <iframe width="560" height="315" src="https://www.youtube.com/embed/nbuIYzUcjLw?si=asv1MRI0K8IH5QWW" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> ## Introduction En algorithmique, les **tests** sont des mécanismes fondamentaux qui permettent à un algorithme de prendre des décisions et d'adapter son comportement en fonction de l'état des données ou de conditions spécifiques. Ils sont la pierre angulaire du contrôle du flux d'exécution et s'appuient directement sur les principes de la logique combinatoire pour évaluer des expressions booléennes (VRAI ou FAUX). ## 1. Conditions Un test évalue une **condition** et, en fonction du résultat (VRAI ou FAUX), détermine quelle séquence d'instructions doit être exécutée. Une condition est une expression qui, une fois évaluée, produit une valeur booléenne (VRAI ou FAUX). Elle est généralement construite à l'aide d'opérateurs de comparaison et d'opérateurs logiques. Ces opérateurs comparent deux valeurs et renvoient VRAI si la relation est vérifiée, FAUX sinon. - $==$ : Égal à - $!=$ : Différent de - lt;$ : Inférieur à - gt;$ : Supérieur à - lt;=$ : Inférieur ou égal à - gt;=$ : Supérieur ou égal à > [!example] Exemple > - `age == 18` (VRAI si la variable `age` contient la valeur 18) > - `prix < 100` (VRAI si la variable `prix` est strictement inférieure à 100) ## 2. Structures Conditionnelles Les structures conditionnelles permettent d'exécuter des blocs d'instructions différents selon le résultat d'un test. ### 2.1. Le Test Simple (SI... ALORS...) > [!definition] Structure SI... ALORS... > Exécute un bloc d'instructions *uniquement si* la condition est VRAI. Si la condition est FAUX, le bloc est ignoré et l'algorithme continue son cours. ```pseudo-code SI condition ALORS { // Instructions à exécuter si la condition est VRAI } ``` > [!example] Exemple > ```pseudo-code > LIRE note > SI note >= 10 ALORS > { > AFFICHER "Admis" > } > AFFICHER "Fin de l'évaluation" > ``` ### 2.2. Le Test Alternatif (SI... ALORS... SINON...) > [!definition] Structure SI... ALORS... SINON... > Exécute un premier bloc d'instructions si la condition est VRAI, et un second bloc d'instructions si la condition est FAUX. L'un des deux blocs sera *toujours* exécuté. ```pseudo-code SI condition ALORS { // Instructions à exécuter si la condition est VRAI } SINON { // Instructions à exécuter si la condition est FAUX } ``` > [!example] Exemple > ```pseudo-code > LIRE age > SI age >= 18 ALORS > { > AFFICHER "Majeur" > } > SINON > { > AFFICHER "Mineur" > } > ``` ### ## Résumé Les tests sont essentiels pour la flexibilité et l'intelligence des algorithmes. Ils permettent de : - **Contrôler le flux d'exécution** en dirigeant l'algorithme vers différentes séquences d'instructions. - **Adapter le comportement** de l'algorithme en fonction des données d'entrée ou de l'état interne. - **Gérer des cas spécifiques** et des exceptions. Maîtriser les structures conditionnelles (`SI... ALORS...`, `SI... ALORS... SINON...`) et la construction de conditions avec des opérateurs de comparaison et logiques est une compétence fondamentale en algorithmique, préparant le terrain pour l'implémentation de logiques décisionnelles complexes dans des langages de programmation comme Python. ## 🗓️ Historique > **Dernière mise à jour :** `26 octobre 2025` > **Rédigé par :** [[Julien DUQUENNOY]]