The video is a French instructional lecture on conditional structures in algorithms, presented by a single speaker. It begins by situating conditionals within the broader family of control structures and uses a traffic‑light scenario to illustrate why conditional processing is needed. The speaker defines the keyword Si (if) and its companion Sinon (else), explains that the condition between Si and Alors must be a Boolean expression evaluating to true or false, and introduces logical operators (ET, OU, NON). A flowchart is shown to demonstrate that only one path (true or false) is taken during execution. The lecture walks through a simple example where a user inputs a number (1 = red, 2 = orange, 3 = green) and the algorithm displays the corresponding colour, highlighting the need to escape an apostrophe in a string. It then discusses why using two independent if statements is inefficient compared to a single if‑else chain, because the machine would evaluate both conditions even when the first is true. The concept of nested (imbricated) conditions is introduced to handle multiple mutually exclusive cases (red, orange, green) in a single structure, with an explanation of how the flow proceeds through successive else blocks until a true condition is found or all are exhausted. The speaker notes that every Si must be closed with a FinSi and that conditional structures are ubiquitous in programs, though other structures (e.g., switch/case) exist and will be covered later. The lesson ends with a brief thank‑you.
Chapters
Bonjour à tous et bienvenue dans cette nouvelle leçon d'algorithmique. Aujourd'hui nous allons traiter les structures conditionnelles. Les structures conditionnelles ou simplement les conditions font partie d'une plus grande famille que l'on appelle les structures de contrôle. En effet, les structures de contrôle permettent de mener des traitements séquentiels, conditionnels ou itératifs. Aujourd'hui, nous allons voir comment procéder à des traitements conditionnels, mais avant, et pour bien comprendre l'utilité d'un tel traitement, prenons l'exemple suivant: Imaginez qu'une personne est au volant de sa voiture. Quand il est arrivé à un carrefour à feux, 3 possibilités sont alors envisageables: le feu est vert, alors il continue à rouler, le feu est rouge, alors il s'arrête, le feu est orange, dans ce cas d'autres possibilités sont à envisager. Si le conducteur a les capacités de s'arrêter, alors il s'arrête. S'il roule trop vite donc le fait de s'arrêter brusquement peut être dangereux, ou s'il est déjà sur le point de dépasser le feu, alors il peut continuer à rouler prudemment. Dans ce cas, notre conducteur doit exécuter un algorithme qui traite ces différents cas de figure. On parle alors d'un traitement conditionnel dont le résultat change en fonction de la condition qui est vraie. Notez que dans le jargon d'algorithmique, on peut aussi désigner le terme condition par prédicat. Pour exprimer une structure conditionnelle, on procède de la manière suivante: Le mot-clé Si permet d'énoncer la condition. Celle-ci sera évaluée pour juger si elle est vraie ou non. Si elle est vraie, alors on exécute le traitement 1, c'est-à-dire l'ensemble des instructions prévues dans ce cas. Sinon, c'est-à-dire si la condition énoncée n'est pas vraie, alors on exécute le traitement 2. Ensuite, on met fin à la structure conditionnelle à l'aide du mot-clé Fin Si. La condition énoncée entre les mots-clés Si et Alors est une expression booléenne qui renvoie soit Vrai ou Faux. Bien sûr, on peut utiliser des expressions plus étendues que l'on peut exprimer à l'aide des opérateurs logiques comme ET, OU et NON. L'organigramme suivant traduit cette structure conditionnelle et on constate bien que seul un chemin peut être emprunté, soit celui de gauche si la condition est Vraie, ou celui de droite si la condition est fausse. Autrement dit, quand un programme informatique est exécuté et que l'on arrive à une condition, alors si celle-ci est vraie, la machine exécute le traitement du bloc Si et saute directement à FinSi en ignorant carrément le bloc Sinon. Inversement, si la condition spécifiée dans le bloc Si est fausse, alors la machine saute tout le traitement de ce bloc-là et exécute directement le traitement du bloc Sinon. Prenons l'algorithme suivant: Dans ce cas, on considère que l'utilisateur entrera un chiffre pour désigner une couleur du feu de signalisation: 1 pour le rouge, 2 pour l'orange et 3 pour le vert. Ensuite, l'algorithme affiche la couleur du feu sous forme d'une chaîne de caractères. Dans cet algorithme, nous nous sommes intéressés seulement à la couleur rouge. Si la variable nbr vaut 1, alors le feu est rouge, sinon il ne l'est pas. C'est c'est-à-dire qu'il soit orange ou vert. Notez que dans la chaîne Le feu n'est pas rouge, j'ai enchaîné 2 apostrophes afin de dire à l'algorithme qu'il s'agit d'un simple apostrophe à traiter comme un caractère ordinaire. Et il ne s'agit pas d'une simple cote qui délimite les chaînes de caractères, on appelle cette opération échappement ou dés spécialisation des caractères spéciaux. Dans certains langages de programmation, le caractère d'échappement utilisé est l'antislash. La chaîne deviendra donc comme ceci: Maintenant, l'algorithme que l'on vient de voir peut s'écrire ainsi. Vous avez remarqué que j'ai utilisé 2 structures conditionnelles indépendantes, le résultat de l'exécution sera donc le même, mais l'algorithme dans ce cas n'est pas optimisé, car la machine doit évaluer la condition 1 puis la condition 2, quelle que soit l'exactitude de la condition 1. Pourtant, on sait que si la condition 1 est vraie, alors la condition 2 est systématiquement fausse, et mais nous ne l'avons pas renseigné dans l'algorithme. Donc, il est préférable d'éviter ce genre de traitement et utiliser les blocs Si et Sinon. Reprenons notre algorithme. Jusqu'ici, nous n'avons traité que le fait que si le feu est rouge ou non, mais on souhaiterait annoncer la couleur exacte du feu, autrement dit, soit rouge, orange ou vert. Dans ce cas, on va utiliser ce que l'on appelle l'imbrication des conditions, c'est-à-dire que l'on va mettre une condition dans une autre à la manière de l'organigramme suivant: Donc, si la condition courante est vraie, on ignore tout le bloc suivant et on met fin à la structure conditionnelle courante. Sinon, alors on évalue la condition suivante et on procède de la même manière jusqu'à ce que la condition soit vraie, ou jusqu'à ce qu'il ne reste plus aucune condition à évaluer. Nous allons donc écrire l'algorithme suivant: Dans ce cas, si la première condition n'est pas vraie, ce qui signifie que le feu n'est pas rouge, alors on ne peut pas prédire avec précision si le feu est orange ou vert. Il faut donc prévoir une autre condition dans le premier bloc Sinon. Si cette deuxième condition est vraie, alors le feu est orange, sinon, alors on peut en déduire avec exactitude que le feu est vert sans avoir besoin de vérifier la valeur de la variable nbr. Notez que toute structure conditionnelle Si doit être clôturée par FinSi. Autrement dit, il faut déclarer autant de FinSi que de Si dans un algorithme. Figurez-vous que les structures conditionnelles sont toujours, ou presque, présentes dans les programmes informatiques afin de prévoir tous les cas de figure possibles suite à une situation. Or, la structure conditionnelle SI n'est pas toujours la mieux placée pour évaluer les différents cas de figure possibles, mais il existe une autre structure que l'on verra plus tard. Merci pour votre attention et à la vidéo prochaine.