In this French instructional video, the presenter walks through the design of a classic algorithm to solve quadratic equations of the form ax² + bx + c = 0. He first reviews the mathematical cases: when a = 0 the equation reduces to a linear one (solution -c/b if b ≠ 0, otherwise no solution), and when a ≠ 0 the discriminant Δ = b² – 4ac determines the number of real roots (none if Δ < 0, one if Δ = 0, two if Δ > 0) with the corresponding formulas. The speaker then translates this reasoning into a step‑by‑step pseudocode algorithm, specifying required real‑type variables (a, b, c, D) and noting naming constraints (Δ cannot be used as an identifier). He details the nested conditional structure (Si/FinSi) that checks the various cases, computes Δ, and either displays messages or stores computed roots in auxiliary variables before output. Practical implementation notes are given, such as using a separate variable for the square‑root result, preferring built‑in functions like sqrt over a custom Racine, and ensuring balanced Si/FinSi blocks. The video concludes by encouraging learners to refine the basic algorithm for efficiency.
Chapters
Bonjour à tous et bienvenue dans cette nouvelle vidéo consacrée à l'algorithmique. Il est temps de mettre en pratique ce que nous avons appris jusqu'ici. Nous allons donc faire une série d'exercices que l'on commencera par un classique de la programmation. Il s'agit de développer un algorithme qui permet de résoudre l'équation de deuxième degré. L'équation a la forme suivante: ax²+ bx+ c= 0. Où a, b et c sont des coefficients qui appartiennent à l'ensemble R. Comme vous le savez déjà, pour résoudre cette équation, il y a différents cas de figure qu'il faut vérifier. Premièrement, si le coefficient a est nul, alors on se retrouve avec une équation de premier degré qui accepte comme solution -c/b si b n'est pas nul. Mais si b est nul et c n'est pas nul, alors il n'y a pas de solution pour cette équation. Si maintenant le coefficient a n'est pas nul et alors on recourt à la méthode classique du calcul du discriminant connu sous le nom de delta. On aura donc delta= b²- 4ac. Tout dépend maintenant de la valeur du discriminant. S'il est négatif, alors l'équation n'admet aucune solution dans l'ensemble ℝ. S'il est nul, alors l'équation a une seule solution qui vaut -b/2a. Et si le discriminant est positif, alors l'équation accepte 2 solutions dans l'ensemble ℝ dont les valeurs sont -b- racine carrée de delta divisé par 2a et -b+ racine carrée de Delta divisé par 2a. Dans notre algorithme, nous aurons besoin de déclarer les variables suivantes: a, b, c qui représentent les coefficients de l'équation et le discriminant que l'on déclarera à l'aide de la variable d vu que Delta est un caractère spécial qui n'est pas valable dans les identifiants des variables comme on l'a vu dans la leçon consacrée aux variables et leurs types. Toutes ces variables seront de type réel. On peut donc appréhender notre algorithme de cette manière: Dans le bloc consacré au traitement, c'est-à-dire entre début et fin, on demande d'abord à l'utilisateur d'entrer les valeurs des coefficients a, b et c, que l'on récupère juste après. Les différents cas de figure que j'ai mentionnés il y a quelques instants sont exprimés à l'aide de conditions imbriquées. En effet, on vérifie d'abord si a est nul. Si c'est le cas, alors on vérifie si b est nul à son tour. Dans ce cas, on affiche à l'écran qu'aucune solution n'est possible. Sinon, c'est-à-dire si b n'est pas nul, alors on affiche la solution qui vaut -c/b. Si le coefficient a n'est pas nul, alors on calcule le discriminant D puis on vérifie son signe. S'il est négatif, alors on affiche qu'il n'y a aucune solution dans l'ensemble ℝ. Sinon, ça signifie qu'il peut être soit nul ou positif. On doit par conséquent vérifier une autre condition qui est dans ce cas si D est nul. Si c'est le cas, alors on affiche qu'une solution est possible et qui vaut -b/2a. Sinon, ce qui veut dire implicitement que le discriminant est positif, alors on affiche à l'écran que 2 solutions sont valables et qui valent -b- racine carrée de D sur 2a et -b+ racine carrée de D sur 2a. Ensuite, on met fin à l'algorithme. Il faut veiller sur le fait qu'il doit y avoir autant de Si que de FinSi dans l'algorithme. Notez qu'au lieu de faire des opérations de calcul au sein du message que l'on affiche à l'aide de la fonction Ecrire, peut prévoir d'autres variables auxquelles on affecte les résultats, ce qui soulagera nettement l'affichage. En contrepartie, on ajoutera des instructions supplémentaires qui permettent de faire le calcul et assigner les résultats à ces variables-là, sans oublier qu'il faut aussi déclarer ces dernières dans le bloc consacré à cet effet. Vous avez remarqué que pour calculer la racine carrée du discriminant représenté par D dans notre algorithme, j'ai utilisé une fonction nommée Racine. En effet, dans un algorithme on peut se permettre des pratiques pareilles, mais sachez que la plupart des langages de programmation disposent de fonctions mathématiques prédéfinies, y compris la fonction qui permet de calculer la racine carrée d'un nombre. Dans de nombreux langages cette fonction s'appelle sqrt. Notez également que cet algorithme reste basique, donc vous pouvez selon le besoin l'améliorer pour qu'il soit plus performant. Ça sera tout pour ce premier exercice, merci pour votre attention et à la vidéo prochaine.