Python théorème de Pythagore

On a montré la fois d’avant comment faire des lignes, une boucle, des variables. Aujourd’hui on va voir comment faire un théorème de Pythagore en Python et par conséquent utiliser les conditions.

Pourquoi le théorème de Pythagore en Python ?

Le théorème de Pythagore est un théorème qu’on a répété en boucle en quatrième et en troisième. La difficulté mathématique n’intervient donc pas ou peu. Pour mémoire, on peut trouver les rappels ici. Avant de se lancer dans la programmation Python à proprement parler, on va faire de l’algorithmique. C’est intéressant, car c’est de l’abstraction pour les élèves, on les force à manipuler sans chiffre.

Les deux cas du théorème de Pythagore, sont les suivants. On cherche l’hypoténuse, on me donne l’hypoténuse.

On va donc interpeller celui qui lance le programme pour lui demander si on lui donne c ou s’il le cherche. S’il cherche c, il doit donner a et b, si on lui donne c, il doit donner c, a ou b. Dans le cas numéro 1, on aura donc comme calcul :

\[c= \sqrt {a²+b²} \]

Dans le cas numéro 2, on aura si on cherche la valeur de a qui sera arbitraire, car a ou b, c’est pareil.

\[a= \sqrt {c²-b²} \]

Première approche

La réalisation de la première partie va ressembler à ceci.

Qu’apprend-on dans ce nouveau programme ? Dans le carré, nous étions obligés d’importer la bibliothèque turtle, ici, nous sommes obligés d’importer la bibliothèque math. Cela permet de faire la racine carrée, ici sqrt. sqrt pour square root en anglais.

On notera aussi la double *, **. L’étoile, on le sait depuis les tableurs, il s’agit du symbole de la multiplication, ** correspond à la puissance.

Enfin, l’introduction de la notion de condition. if en anglais qui veut dire si, else qui veut dire sinon. On notera la syntaxe précise avec les deux points à la fin. Le == pour l’égalité. On a de la même manière la possibilité de faire <, >, <=, >= et != pour différent. On voit que le = est de façon systématique à droite.

Quelques explications sur le elif. J’aurais pu me contenter de dire que si je ne connais pas l’hypoténuse, forcément cela veut dire que dans le cas contraire, je ne le connais pas. J’ai voulu faire un peu plus propre en vérifiant que l’utilisateur tape bien oui ou non. Il faudrait aller plus loin bien sûr. Noter une erreur si l’utilisateur ne rentre pas des valeurs numériques. Vérifier que l’hypoténuse est le côté le plus grand.

Faire mieux

Je vais tracer le triangle rectangle correspondant. Pour cela, je me propose de considérer que a est horizontal, b est vertical. L’angle droit est au point de coordonnées (0;0). Ainsi, je vais placer (a;0) et (0;b). Il me suffira de relier ces points pour obtenir le triangle en vraie grandeur.

Pour tracer, je dois importer une nouvelle bibliothèque. matplotlib. Voici le nouveau programme

Le fonctionnement n’est pas forcément évident, mais une fois qu’on a compris, ça passe tout seul. Comme on peut le voir, j’ai défini deux nouvelles variables. X et Y. Les X sont les abscisses, les Y sont les ordonnées. Il y a donc la correspondance entre la ligne du haut et la ligne du bas. Au départ, je commence à (0;0), je vais ensuite vers le haut à (0;b), je redescends jusqu’à (a;0), je reviens enfin à (0;0).

Le « r– » signifie que c’est du rouge, et le lw=2 qu’on a une taille de deux. Enfin, le plt.show() permet d’afficher le triangle.

Conclusion

  • L’élève sait désormais utiliser la notion de puissance **, la racine carrée sqrt
  • L’élève sait aussi utiliser la notion de condition avec if, elif, et else
  • Enfin, l’élève sait utiliser plt.plot pour tracer des segments entre des points.