Erreur que je trouves pas

Résolu
cs_algori Messages postés 868 Date d'inscription dimanche 26 décembre 2004 Statut Membre Dernière intervention 26 février 2008 - 12 août 2005 à 16:08
cs_algori Messages postés 868 Date d'inscription dimanche 26 décembre 2004 Statut Membre Dernière intervention 26 février 2008 - 12 août 2005 à 16:13
Bonjour,
J'ai un problème à cause d'une erreur que je ne trouves pas, si vous savez d'où vient le problème...
Voici le code :
<?
function signe($x){
if (Abs($x) == $x)
{
return 1;
}
else
{
return -1;
}
}


function equa_troisieme_degre($a,$b,$c,$d){
$p = ($c/$a)-(pow($b,2))/(3*pow($a,2));
$q = (2*pow($b,3))/(27*pow($a,3))-($b*$c)/(3*pow($a,2))+$d/$a;


if ($p == 0){
if (signe($q) == 1){
$X1 = -$b/(3*$a)-pow($q,(1/3));
}
else{
$X1 = -$b/(3*$a)+pow(-$q,(1/3));
}
echo "Une racine trouvée : X1 = $X1

";
}


else{
$det = pow($q,2)/4+pow($p,3)/27;


if ($det > 0){


if (signe(-$q*0.5+pow($det,(1/2))) == 1){
$u = pow((-$q*0.5+pow($det,(1/2))),(1/3));
}
else
{
$u = -pow(-(-$q*0.5+pow($det,(1/2))),(1/3));
}


$X1 = -$b/(3*$a)+$u-($p/(3*$u)) ;


echo "Une racine trouvée : X1 = $X1

";
}


if ($det==0){
$X1 = -$b/(3*$a)+signe($q)*pow((-$p/3),(1/2));
$X2 = -$b/(3*$a)-2*signe($q)*pow((-$p/3),(1/2));


echo "Deux racines trouvées : X1 $X1 et X2 $X2

";
}


if ($det < 0){
$alf = 1/3*Acos(-$q/2*pow(27/(pow(-$p,3)),(1/2)));


$X1 = -($b)/(3*$a)+2*Sqrt(-$p/3)*Cos($alf);
$X2 = -($b)/(3*$a)+2*Sqrt(-$p/3)*Cos($alf+(2*pi())/3);
$X3 = -($b)/(3*$a)+2*Sqrt(-$p/3)*Cos($alf+(4*pi())/3);


echo "Trois racines trouvées : X1 $X1, X2 $X2 et X3 = $X3

";
}
}


equa_troisieme_degre(2,4,3,9);
?>

Ca me dit que l'erreur est à la ligne equa_troisieme_degre(2,4,3,9);
A vrai dire, je vois pas où est le problème...
Merci pour vos futures réponses.
@++

1 réponse

cs_algori Messages postés 868 Date d'inscription dimanche 26 décembre 2004 Statut Membre Dernière intervention 26 février 2008 1
12 août 2005 à 16:13
Bon, j'aurais pu m'abstenir de poser la question
Il manquait juste une parenthèse.
<?
function signe($x){
if (Abs($x) == $x)
{
return 1;
}
else
{
return -1;
}
}
function equa_troisieme_degre($a,$b,$c,$d){
$p = ($c/$a)-(pow($b,2))/(3*pow($a,2));
$q = (2*pow($b,3))/(27*pow($a,3))-($b*$c)/(3*pow($a,2))+$d/$a;


if ($p == 0){
if (signe($q) == 1){
$X1 = -$b/(3*$a)-pow($q,(1/3));
}
else{
$X1 = -$b/(3*$a)+pow(-$q,(1/3));
}
echo "Une racine trouvée : X1 = $X1

";
}


else{
$det = pow($q,2)/4+pow($p,3)/27;


if ($det > 0){


if (signe(-$q*0.5+pow($det,(1/2))) == 1){
$u = pow((-$q*0.5+pow($det,(1/2))),(1/3));
}
else
{
$u = -pow(-(-$q*0.5+pow($det,(1/2))),(1/3));
}


$X1 = -$b/(3*$a)+$u-($p/(3*$u)) ;


echo "Une racine trouvée : X1 = $X1

";
}


if ($det==0){
$X1 = -$b/(3*$a)+signe($q)*pow((-$p/3),(1/2));
$X2 = -$b/(3*$a)-2*signe($q)*pow((-$p/3),(1/2));


echo "Deux racines trouvées : X1 $X1 et X2 $X2

";
}


if ($det < 0){
$alf = 1/3*Acos(-$q/2*pow(27/(pow(-$p,3)),(1/2)));


$X1 = -($b)/(3*$a)+2*Sqrt(-$p/3)*Cos($alf);
$X2 = -($b)/(3*$a)+2*Sqrt(-$p/3)*Cos($alf+(2*pi())/3);
$X3 = -($b)/(3*$a)+2*Sqrt(-$p/3)*Cos($alf+(4*pi())/3);


echo "Trois racines trouvées : X1 $X1, X2 $X2 et X3 = $X3

";
}
}
}


equa_troisieme_degre(2,4,3,9);
?>

@++
3
Rejoignez-nous