Fonction pour résoudre une équation du second degré - Tutoriels
Fonction pour résoudre une équation du second degré
Par -=$!m0n=-, le 14/09/2008 | 0 commentaires
Catégorie : Site Web
Sous catégorie : PHP
Introduction
Bonjour à tous, dans ce tutoriel nous allons créer une fonction pour résoudre des équations du second degré. Je pense que si vous êtes en 1ère (S), ce tutoriel vous plaira beaucoup. Mais il faut avoir au moins quelques bases en PHP pour comprendre ce tutoriel.
Accrochez vous, c'est parti !
Cliquez ici pour tester le script.
Pour commencer, je vais vous faire un petit rappel pour résoudre une équation du second degré.
Une équation du second degré est du type : ax²+bx+c=0. Pour résoudre cette équation, il faut d'abord calculer le discriminant (delta) grâce à cette formule : b²-4*a*c. Une fois que delta est calculé, 3 cas différents peuvent apparaitrent :
1er cas : Delta est supérieur à 0 (>0). Dans ce cas, il faut trouver 2 solutions x1 et x2.
Pour calculer x1, on utilise la formule : (-b-racine(delta))/2*a
Pour calculer x2, on utilise la formule : (-b+racine(delta))/2*a
2ème cas : Delta est égal à 0 (=0). Il faut trouver une solution que l'on calculera avec cette formule : -b/2*a
3ème cas : Delta est négatif (<0). Dans ce cas, il n'y a aucune solutions ! C'est donc le cas le plus facile.
Après ces petits rappels, attaquons nous au plus important : le code source.
On va commencer par créer une fonction grâce à function. Cette fonction prendra 3 paramètres : a, b et c.
Mais qu'est ce que valent "a, b et c" ?
Petit exemple pour comprendre. Prenons une équation du second degré :
-15x²+5x-2=0.
Ici
a vaut -15,
b vaut 5 et
c vaut -2.
Créons notre fonction :
Langage :
PHPfunction equation_deux_inconnues($a, $b, $c)
{
Ici, on crée donc la fonction
equation_deux_inconnues qui prend trois paramètres
a, b et c.
Continuons :
Langage :
PHP$delta = $b*$b-4*$a*$c;
On calcule simplement delta avec la formule vue précédemment :
b²-4*a*c.
Après ceci, on avait vu que trois cas s'offraient à nous, soit delta est positif, soit il est nul (=0), soit il est négatif.
On va donc commencer en supposant que delta est positif :
Langage :
PHPif ($delta > 0)
{
$racine_delta = sqrt($delta); $a2 = 2*$a;
$resultat_x1 = (-$b-$racine_delta)/($a2);
echo 'Delta vaut ' .$delta. ', donc x<sub>1</sub> vaut ' .$resultat_x1.'';
$resultat_x2 = (-$b+$racine_delta)/($a2);
echo ' et x<sub>2</sub> vaut ' .$resultat_x2. '';
echo '<br />';
}
Commentons ce code :
1ère ligne : C'est une condition signifiant
Si delta est supérieur à 0.
2ème ligne : On ouvre simplement une accolade.
3ème ligne : On calcule la racine carré de delta avec
sqrt. Si vous vous souvenez bien, nous avons besoin de la racine carré pour calculer x1 et x2.
4ème ligne : On calcule le dénominateur de x1 et x2, qui est, si vous vous souvenez des formules :
2*a.
5ème ligne : On calcule x1 grâce à la formule vu plus haut.
6ème ligne : On affiche le résultat,
echo sert à afficher quelque chose sur l'écran du visiteur. Ici le visiteur verra
Delta vaut (quelque chose) donc x1 vaut (quelque chose). Vous voyez aussi <sub></sub>, ceci permet d'afficher le "1" un petit peut en dessous du x.
7ème ligne : On calcule le 2ème résultat x2.
8ème ligne : Comme tout à l'heure, on affiche le résultat.
9ème ligne : On crée un retour à la ligne.
10ème ligne : On ferme l'accolade.
Voila ! Si je peut vous rassurer, le plus dur est passé
Passons maintenant au second cas, si delta est égal à 0 :
Langage :
PHPif (($delta == 0) && isset($_POST['a'])) {
$resultat_x0 = -$b/2*$a;
echo 'Delta vaut ' .$delta. ' donc x<sub>0</sub> vaut ' .$resultat_x0. '';
}
Commentons ce code qui est à peu près similaire à celui d'avant :
1ère ligne : Pareil que tout à l'heure sauf que la, on ne vérifie pas si delta est positif mais si il est égal à 0. Vous voyez qu'en PHP, pour dire égal(=), on utilise deux ==. Vous voyez également un bout de code en plus :
isset($_POST['a'])). On vérifie simplement si la variable
a existe, c'est à dire si le visiteur à envoyé quelque chose via le formulaire que nous mettrons en place tout à l'heure.
Nous vérifions ceci car si le visiteur arrive sur la page et qu'il n'a rien posté dans le formulaire, delta vaudra 0. Donc même si le visiteur n'a rien posté, il verra la phrase lui disant que delta est égal à 0.
En bref, on vérifie juste si le visiteur a posté quelque chose dans le formulaire, si vous n'avez pas compris, quand nous aurons finit d'écrire le code, vous essayerez d'enlever cette ligne et vous verrez ce qui se passe. Vous comprendrez tout de suite !
2ème ligne : On ouvre l'accolade
3ème ligne : On calcule x0 avec la formule vue plus haut :
-b/2*a
4ème ligne : On affiche le résultat comme tout à l'heure
5ème ligne : On ferme l'accolade
Voila pour le cas ou delta est égal à 0.
Passons maintenant au cas le plus facile : Delta est inférieur à 0 :
Langage :
PHP ($delta < 0)
{
echo ' Delta est inférieur à zéro, il n\'y a pas de solutions';
}
1ère ligne : On vérifie que delta est inférieur à 0.
2ème ligne : On ouvre l'accolade
3ème ligne : On affiche une phrase disant qu'il n'y a aucune solutions lorsque delta est négatif.
Et maintenant pour finir la fonction :
Langage :
PHPreturn $delta;
}
On "retourne" le résultat de delta, c'est à dire qu'on envoie le résultat. Si vous ne mettez pas de return, vous ne sauriez pas la valeur de delta.
Puis pour terminer la fonction, on ferme l'accolade.
Maintenant que le fonction est terminée, le plus gros du travail est fait, il ne reste plus qu'à créer le formulaire :
Langage :
HTML<form action='equations_sec_deg.php' method='post' name="formulaire"> <input type="submit" value="Ok !" /> <input type="reset" value="Effacer" />
On crée simplement le formulaire où l'on demande d'entrer
a, b et c.
Et pour finir :
Langage :
PHP<?php $_POST['a'] = $a;
$_POST['b'] = $b;
$_POST['c'] = $c;
$delta = equation_deux_inconnues($a, $b, $c);
?>
On récupère ce que le visiteur à entré via le formulaire, et enfin on entre les 3 paramètres à la fonction.
Voila pour votre fonction, amusez vous bien !
Conclusion
Sachez que il existe d'autres manières pour créer une fonction comme ceci. Après à vous de voir si vous voulez changer un peu le code source.
Petit bonus : si vous avez une calculatrice TI (une calculette pour le lycée), une fonction très pratique s'offre à vous. La fonction "FRAC" qui permet de mettre un nombre en fraction. Par exemple tapez 0.3333333333 (dix 3), allez dans le menu MATH, appuyez sur FRAC puis sur Entrée. Il apparaitra 1/3.
A bientôt !

Cette
création est mise à disposition sous un
contrat Creative Commons.