Accueil > > > ETUDE "COMPLÈTE" D'UN TRINÔME
ETUDE "COMPLÈTE" D'UN TRINÔME
Information sur la source
Description
Voilà une source codée un peu en speed (1h30 environ) que j'ai essayé d'optimiser au maximum. Il en existe déjà une de ce type sur le site mais la mienne ne nécessite qu'une seule et unique page. Au menu : Rappel du trinôme rentré, calcul du discriminant, calcul des racines du trinôme, signe du trinôme, dérivée du trinôme et enfin 2 trucs qui sont erronés mais je ne trouve pas l'origine (donc si vous trouvez, n'hésitez pas à me le signaler en commentaire) la forme canonique et l'étude de la parabole. Cet source est de niveau 1ere S donc ne m'hurlez pas dessus si il y a des trucs évidents d'un niveau supérieur que je n'ai pas mis.
Source
- <?PHP
- //Verif post
- if(empty($_GET['post'])) {
- echo '<form action="?post=ok" method="post">
- Votre trinôme (mettre le signe (- ou +) suivi du nombre): <input size="5" type="text" name="a" />x²<input size="5" type="text" name="b" />x<input size="5" type="text" name="c" /><br />
- <input type="submit" value="Etudier" />
- </form>';
- } else {
- //Recup donnees
- $a = $_POST['a'];
- $b = $_POST['b'];
- $c = $_POST['c'];
-
- //Verif valeurs numeriques
- if((is_numeric($a))&&(is_numeric($b))&&(is_numeric($c))) {
- //Verif a different de 0
- if ($a!=0) {
- echo "ETUDE DU TRINÔME :<br /><br /><br />Le trinôme entré est : ".$a."x²".$b."x".$c."<br />";
- //Calcul du discriminant
- $delta = bcpow($b,2)-(4*$a*$c);
- echo "Le discriminant du trinôme a pour valeur : ".$delta."<br />";
-
- //Calcul de la forme canonique (erroné)
- // $forme_cano1 = ($b/(2*$a));
- // $forme_cano2 = -($delta)/(2*bcpow($a,2));
- // if (($forme_cano1>=0)&&($forme_cano2>=0)) { $forme_cano = "Le trinôme a pour forme canonique : ".$a."((x+".$forme_cano1.")²+".$forme_cano2.")"; }
- // if (($forme_cano1<=0)&&($forme_cano2<=0)) { $forme_cano = "Le trinôme a pour forme canonique : ".$a."((x".$forme_cano1.")²".$forme_cano2.")"; }
- // if (($forme_cano1>=0)&&($forme_cano2<=0)) { $forme_cano = "Le trinôme a pour forme canonique : ".$a."((x+".$forme_cano1.")²".$forme_cano2.")"; }
- // if (($forme_cano1<=0)&&($forme_cano2>=0)) { $forme_cano = "Le trinôme a pour forme canonique : ".$a."((x".$forme_cano1.")²+".$forme_cano2.")"; }
- // echo $forme_cano."<br />";
-
- //Verif discriminant pour calculs des racines et du signe
- if($delta<0) {
- echo "Le trinôme n'a pas de racines.<br />";
- if($a<0) {
- echo "Le trinôme est négatif (signe de ".$a.") sur R.<br />";
- } else {
- echo "Le trinôme est positif (signe de ".$a.") sur R.<br />";
- }
- }
- if($delta==0) {
- $sol=((-$b)/(2*$a));
- echo "Le trinôme a une unique solution : ".$sol."<br />";
- if($a<0) {
- echo "Le trinôme est négatif (signe de ".$a.") sur R.<br />";
- } else {
- echo "Le trinôme est positif (signe de ".$a.") sur R.<br />";
- }
- }
- if($delta>0) {
- $sol=((-$b-sqrt($delta))/(2*$a));
- $sol2=((-$b+sqrt($delta))/(2*$a));
- //forme factorisée
- echo "La forme factorisée du trinôme est : ".$a."(x-".$sol.")(x-".$sol2.")<br />";
- //racines + signe du trinôme
- echo "Le trinôme a deux solutions : ".$sol." et ".$sol2."<br />";
- if(($a<0)&&($sol>$sol2)) {
- echo 'Le trinôme est négatif (signe de '.$a.') sur ]-infini;'.$sol2.'] et sur ['.$sol.';+infini[<br />
- et positif (signe de -('.$a.')) sur ['.$sol2.';'.$sol.'].<br />';
- }
- if(($a<0)&&($sol<$sol2)) {
- echo "Le trinôme est négatif (signe de ".$a.") sur ]-infini;".$sol."] et sur [".$sol2.";+infini[<br />
- et positif (signe de -(".$a.")) sur [".$sol.";".$sol2."].<br />";
- }
- if (($a>0)&&($sol>$sol2)) {
- echo "Le trinôme est positif (signe de ".$a.") sur ]-infini;".$sol2."] et sur [".$sol.";+infini[<br />
- et négatif (signe de -(".$a.")) sur [".$sol2.";".$sol."].<br />";
- }
- if (($a>0)&&($sol<$sol2)) {
- echo "Le trinôme est positif (signe de ".$a.") sur ]-infini;".$sol."] et sur [".$sol2.";+infini[<br />
- et négatif (signe de -(".$a.")) sur [".$sol.";".$sol2."].<br />";
- }
- }
- //Calcul derivee
- $derivee = "La dérivée du trinôme est : ".(2*$a)."x".$b."";
- echo $derivee."<br />";
-
- //Calcul sommet de la parabole + forme de celle-ci + sens de variation (erroné)
- // $sommetx = -$forme_cano1;
- // $sommety = $forme_cano2;
- // if ($a>0) {
- // echo "Le trinôme est une parabole convexe de sommet: M(".$sommetx.";".$sommety.")<br />La parabole du trinôme est décroissante sur ]-infini;".$sommetx."] et croissante sur [".$sommetx.";+infini[";
- // } else {
- // echo "Le trinôme est une parabole concave de sommet: M(".$sommetx.";".$sommety.")<br />La parabole du trinôme est croissante sur ]-infini;".$sommetx."] et décroissante sur [".$sommetx.";+infini[";
- // }
-
- echo '<br /><br /><form action="?post=" method="post"><input type="submit" value="Nouvelle étude" /></form>';
- } else {
- echo "Il faut que le premier coefficient du trinôme (ou a) soit différent de 0 !!!";
- echo '<br /><br /><form action="?post=" method="post"><input type="submit" value="Nouvelle étude" /></form>';
- }
- } else {
- echo "Vous devez remplir correctement les nombres du trinôme";
- echo '<br /><br /><form action="?post=" method="post"><input type="submit" value="Nouvelle étude" /></form>';
- }
- }
- ?>
<?PHP
//Verif post
if(empty($_GET['post'])) {
echo '<form action="?post=ok" method="post">
Votre trinôme (mettre le signe (- ou +) suivi du nombre): <input size="5" type="text" name="a" />x²<input size="5" type="text" name="b" />x<input size="5" type="text" name="c" /><br />
<input type="submit" value="Etudier" />
</form>';
} else {
//Recup donnees
$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];
//Verif valeurs numeriques
if((is_numeric($a))&&(is_numeric($b))&&(is_numeric($c))) {
//Verif a different de 0
if ($a!=0) {
echo "ETUDE DU TRINÔME :<br /><br /><br />Le trinôme entré est : ".$a."x²".$b."x".$c."<br />";
//Calcul du discriminant
$delta = bcpow($b,2)-(4*$a*$c);
echo "Le discriminant du trinôme a pour valeur : ".$delta."<br />";
//Calcul de la forme canonique (erroné)
// $forme_cano1 = ($b/(2*$a));
// $forme_cano2 = -($delta)/(2*bcpow($a,2));
// if (($forme_cano1>=0)&&($forme_cano2>=0)) { $forme_cano = "Le trinôme a pour forme canonique : ".$a."((x+".$forme_cano1.")²+".$forme_cano2.")"; }
// if (($forme_cano1<=0)&&($forme_cano2<=0)) { $forme_cano = "Le trinôme a pour forme canonique : ".$a."((x".$forme_cano1.")²".$forme_cano2.")"; }
// if (($forme_cano1>=0)&&($forme_cano2<=0)) { $forme_cano = "Le trinôme a pour forme canonique : ".$a."((x+".$forme_cano1.")²".$forme_cano2.")"; }
// if (($forme_cano1<=0)&&($forme_cano2>=0)) { $forme_cano = "Le trinôme a pour forme canonique : ".$a."((x".$forme_cano1.")²+".$forme_cano2.")"; }
// echo $forme_cano."<br />";
//Verif discriminant pour calculs des racines et du signe
if($delta<0) {
echo "Le trinôme n'a pas de racines.<br />";
if($a<0) {
echo "Le trinôme est négatif (signe de ".$a.") sur R.<br />";
} else {
echo "Le trinôme est positif (signe de ".$a.") sur R.<br />";
}
}
if($delta==0) {
$sol=((-$b)/(2*$a));
echo "Le trinôme a une unique solution : ".$sol."<br />";
if($a<0) {
echo "Le trinôme est négatif (signe de ".$a.") sur R.<br />";
} else {
echo "Le trinôme est positif (signe de ".$a.") sur R.<br />";
}
}
if($delta>0) {
$sol=((-$b-sqrt($delta))/(2*$a));
$sol2=((-$b+sqrt($delta))/(2*$a));
//forme factorisée
echo "La forme factorisée du trinôme est : ".$a."(x-".$sol.")(x-".$sol2.")<br />";
//racines + signe du trinôme
echo "Le trinôme a deux solutions : ".$sol." et ".$sol2."<br />";
if(($a<0)&&($sol>$sol2)) {
echo 'Le trinôme est négatif (signe de '.$a.') sur ]-infini;'.$sol2.'] et sur ['.$sol.';+infini[<br />
et positif (signe de -('.$a.')) sur ['.$sol2.';'.$sol.'].<br />';
}
if(($a<0)&&($sol<$sol2)) {
echo "Le trinôme est négatif (signe de ".$a.") sur ]-infini;".$sol."] et sur [".$sol2.";+infini[<br />
et positif (signe de -(".$a.")) sur [".$sol.";".$sol2."].<br />";
}
if (($a>0)&&($sol>$sol2)) {
echo "Le trinôme est positif (signe de ".$a.") sur ]-infini;".$sol2."] et sur [".$sol.";+infini[<br />
et négatif (signe de -(".$a.")) sur [".$sol2.";".$sol."].<br />";
}
if (($a>0)&&($sol<$sol2)) {
echo "Le trinôme est positif (signe de ".$a.") sur ]-infini;".$sol."] et sur [".$sol2.";+infini[<br />
et négatif (signe de -(".$a.")) sur [".$sol.";".$sol2."].<br />";
}
}
//Calcul derivee
$derivee = "La dérivée du trinôme est : ".(2*$a)."x".$b."";
echo $derivee."<br />";
//Calcul sommet de la parabole + forme de celle-ci + sens de variation (erroné)
// $sommetx = -$forme_cano1;
// $sommety = $forme_cano2;
// if ($a>0) {
// echo "Le trinôme est une parabole convexe de sommet: M(".$sommetx.";".$sommety.")<br />La parabole du trinôme est décroissante sur ]-infini;".$sommetx."] et croissante sur [".$sommetx.";+infini[";
// } else {
// echo "Le trinôme est une parabole concave de sommet: M(".$sommetx.";".$sommety.")<br />La parabole du trinôme est croissante sur ]-infini;".$sommetx."] et décroissante sur [".$sommetx.";+infini[";
// }
echo '<br /><br /><form action="?post=" method="post"><input type="submit" value="Nouvelle étude" /></form>';
} else {
echo "Il faut que le premier coefficient du trinôme (ou a) soit différent de 0 !!!";
echo '<br /><br /><form action="?post=" method="post"><input type="submit" value="Nouvelle étude" /></form>';
}
} else {
echo "Vous devez remplir correctement les nombres du trinôme";
echo '<br /><br /><form action="?post=" method="post"><input type="submit" value="Nouvelle étude" /></form>';
}
}
?>
Conclusion
N'oubliez pas le calcul de la forme canonique et l'étude de la parabole sont erronés. N'hésitez pas à m'aider à corriger tout ça :) Et pour finir, ce code est en possibilité de testabilité (I love french) sur: http://sniperman113.free.fr/calculgeo/etude_trinom e.php
Voili voilou, j'attends vos commentaires EN FRANCAIS, s'il vous plait :)
Historique
- 11 mars 2006 19:47:50 :
- Rajout de la forme factorisée du trinôme ainsi qu'optimisation du calcul de la dérivée :)
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
accès membre entre différents sites (sessions) [ par bisopale ]
bonjour,j'ai un gros souci avec mes sessions.j'ai, sur mon serveur web en intranet, plusieurs sites par le biais des virtual hosts (2 à ce jour).
simple problème HTML.. [ par syndrael ]
Bonjour, J'essaie de mettre un tableau dans chacun des deux div.. Puis en cliquant sur un lien en bas, le second 'devrait disparaitre'.. mais non..
problème fenetre et list box [ par jasou62114 ]
Bonjour, voilà j'ai deux petit soucis, je suis en train de développer un système de messagerie qui sera utilisé par une standardiste, en php. Premier
projet de fin d'etude [ par rima111 ]
j'ai bessoin de votre aide j'ai bessoin d'une application :site web dynamique d'une portail médicale en php et sql aussi je vous merci
Projet Fin d'etude [ par breackca ]
je veux que quelqu'un m'aide pour mon projet de fin d'etude qui se resume dans une application de gestion des affectations des emplois de serveillance
projet du fin d'etude [ par manoula13 ]
hy! every bodyslt! chui etudiante en informtique option genie logiciel, chui en 3eme année.g besoin d'aide sur le theme ke g choisis"conception d'un o
demande d aide pour un formulaire multicritere [ par aerobi ]
bonjour exuser moi de vous derangeje suis debutant en php et j aimerai faire un form multicritere g un form mais je c pas quoi faire avec la
Boucle listage de dossier avec menu déroulant [ par jerem3000 ]
Bonjour,je dois faire une menu déroulant qui liste les dossier qu'il trouve mais je me heurte a un problème au niveau de <li><ul> ... impo
Je veut une idée de projet fin d'etude [ par zouba123 ]
salut j'ai un projet de fin d'année ;j'ai appris durant mon année d'étude le (c,java,vb.net,php....) vous pouvez m'aidez de trouver un sujet[^^sad2]
projet de fin d'etude [ par mhota ]
[i]bonjour[/i][^^happy13] je suis en train de travailler mon projet de fin d'étude c'est une application de [b]gestion de surveillance des examens uni
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|