Page 1 sur 1

Ecriture Fractionnaire et Radical (Math)

Posté : 09 sept. 2005, 20:44
par qmeuh
Bonjour à tous !

Voilà je pense que mon petit script est fini ... :D
Je vous le joint dans ce message, faut bien montrer ses oeuvres lol Il a aussi un peu évolué :lol:
<?php

ini_set('display_errors', false); // On empeche l'affiche des erreurs

$a = $_POST['a']; // On récupère la valeur de "a" dans le formulaire
$b = $_POST['b']; // On récupère la valeur de "b" dans le formulaire
$c = $_POST['c']; // On récupère la valeur de "c" dans le formulaire

if ($a == 0) { // Si "a" vaut 0 alors on sait que la fonction n'est pas du second degré : Fin du calcul

	echo "Cette fonction n'est pas du second degré ..."; 

} else { // Autrement, on continue ...

	$p = bcpow($b,2) - (4 * $a * $c); // Calcul de la valeur du discriminant
	$ra0 = -$b / (2 * $a); // Calcul de la valeur de l'unique racine dans le cas ou le discriminant vaudrait 0
	$ra1 = ( -$b + (bcsqrt((bcpow($b,2) - (4 * $a * $c))))) / (2*$a); // Calcul de la première racine dans le cas ou le discriminant est supérieur à 0
	$ra2 = ( -$b - (bcsqrt((bcpow($b,2) - (4 * $a * $c))))) / (2*$a); // Calcul de la deuxième racine dans le cas ou le discriminant est supérieur à 0
	$so = -$b / $a;
	$pr = $c / $a;
	$cord2 = -(($p) / (4 * $a));
		
		if ($b == 0) { // Si "b" vaut 0 il est impossible de déterminer le minimum/maximum de la fonction
		
			echo "Impossible de Déterminer le Maximum / Minimum qu'admet cette Fonction ...<br>";
			
		} else { // Autrement, on continue ...
		
			$minmax = -$b / (2 * $a); // Calcul de la valeur du minimum/maximum
			
			if ($a > 0) { // Si a est supérieur à 0 : Affichage du minimum
						
			echo "Coordonnées du Minimum = ($minmax,$cord2)<br>"; // Affichage des coordonnées des coordonnées du Minimum
			
			} elseif ($a < 0) { // Si a est inférieur à 0 : Affichage du maximum
			
			echo "Coordonnées du Maximum = ($minmax,$cord2)<br>"; // Affichage des coordonnées des coordonnées du Maximum
			
			}
		}
	
		echo "Discriminant / P = $p<br>"; // Affichage de la valeur du discriminant
		
		if ($p > 0) { // Si le discriminant est supérieur 0 on affiche les racines
			
			echo "Somme = $so ( = $ra1 + $ra2)<br>";
			echo "Produit = $pr ( = $ra1 x $ra2)<br>";
			echo "Première Racine : $ra1<br>";
			echo "Deuxième Racine : $ra2";
			
		} elseif ($p < 0) { // Si le discriminant est inférieur à 0 il est impossible de calculer les racines
		
			echo "Impossible de Déterminer les Racines de cette Fonction !";
		
		} elseif ($p == 0) { // Si le discriminant vaut 0 on affiche l'unique racine de la fonction
			
			echo "Somme = $so ( = $ra0 + $ra0)<br>";
			echo "Produit = $pr ( = $ra0 x $ra0)<br>";
			echo "Unique Racine de la Fonction : $ra0";
			
		}
} 


?>
Mais maintenant je voudrais perfectionner tout ca ....
Est-il possible d'afficher les résultat (Minimum/Maximum, Discriminant et Racine(s)) de façons simplifiée ...
Je m'explique. Le calcul (mental) du discrimant s'effectue grâce à la formule :

Image

La formule qui permet ensuite de calculer les racines (si le discriminant est supérieur à 0) est la suivante :

Image

Ce qui entraine inévitablement des réponses de types : Radicals et Fractions, le tout à simplifier au maximum par la suite ...

Ma question est donc la suivante : PHP peut-il faire tout çà si on l'aide un peu :P ? Donc ecrire le résulat sous forme de fraction et racines carrée ...
Et pourriez-vous dans le même élan, me dire si ce script pose un problème quelconque pour la sécurité ?

Derniere question : Est-il possible de verifier si les valeurs entrées sont bien des chiffres (en incluant le signe - dans les caractères autorisés) ? J'ai essayé avec la fonction "is_numeric()" mais il empeche l'utilisation du signe - ...

Merci !