Page 1 sur 1
Exposant
Posté : 07 sept. 2005, 20:25
par QMeumeuh
Bonjour je code en ce moment une petite page PHP qui permet de calculer racine, minimum, maximum, ... d'un fonction du second degré en math (Juste pour mettre en pratique la partie des opérateurs) mais je ne sais pas comment elever à une certaine puissance une variable ... Donc par exemple 4 exp 2 = 16
Posté : 07 sept. 2005, 20:28
par progfou
Posté : 07 sept. 2005, 20:32
par qmeuh
Merci je venais de le voir à l'instant

Posté : 07 sept. 2005, 21:40
par qmeuh
Me revoilà ! J'ai fait mes deux petits fichiers. Mais ca ne marche pas ... l'erreur est la suivante : Warning: Division by zero in /var/www/users/2417/htdocs/calc/exe.php on line 9 pourtant je n'etre pas de valeur nulles ...
1) Formulaire d'envoi :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>4DCours.be</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="exe.php" method="post">
<table width="400" border="0">
<tr>
<td width="31">a =</td>
<td width="359"><input type="text" name="a" size="6"></td>
</tr>
<tr>
<td>b =</td>
<td><input type="text" name="b" size="6"></td>
</tr>
<tr>
<td>c = </td>
<td><input type="text" name="c" size="6"></td>
</tr>
</table>
<p><input type="submit" value="Calculer P (et les Racines)"></p>
</form>
</body>
</html>
2) Calcul :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>4DCours.be</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<?php
$minmax = -$b / (2 * $a);
$p = pow( $b , 2 ) - 4 * $a * $c;
$ra0 = ( -$b - sqrt( $p ) ) / 2 * $a;
$ra1 = ( -$b + sqrt( $p ) ) / 2 * $a;
$ra2 = -$b / 2 * $a;
/* ------------------------------------------ */
if ($a > 0) {
echo "La Fonction Admet un Minimum en : $minmax";
} elseif ($a < 0) {
echo "La Fonction Admet un Maximum en : $minmax";
} else {
echo "Impossible de Connaître le Maximum ou le Minimum de cette Fonction !";
}
?>
<br>
<?php
if ($p > 0) {
echo "Première Racine : $ra1";
echo "Deuxième Racine : $ra2";
} elseif ($a < 0) {
echo "Impossible de Connaître les Racines de cette Fonction !";
} elseif ($a == 0) {
echo "Unique Racine de la Fonction : $ra0";
}
?>
<body>
</body>
</html>
A mon avis sa foire dans le formulaire d'envoi mais quoi ? ...
Posté : 07 sept. 2005, 21:54
par Cyrano
Non, ça foite à la récupération: tu dois récupérer les valeurs envoyées par le formulaire via la super-globale $_POST de façon à initialiser tes variables $a, $b et $c : Donc tu commence le script par:
<?php
$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];
//.... reste du code de calcul
?>
Posté : 07 sept. 2005, 21:58
par JazzFinder
Désolé j'ai pas regardé tout en code en détail, ceoendant j'attire ton attention sur l'utilité d'utiliser (et de bien utiliser) les parenthèses...
Si je me rappelle bien de mes cours d'algèbre:
Par exemple:
devrait être, pour enlever toute ambiguïté:
Autre exemple:
À changer pour:
Je ne sais pas si ça réglerait ton problème, mais ça t'éviterait sûrement de t'arracher les cheveux par moments, inutilement.
Posté : 07 sept. 2005, 22:05
par qmeuh
Normalement pour ca il n'y a aucun problème vu ke selon les priorités d'opérations la multiplication s'effectue toujours en premier, valable aussi ej pense pour le PHP. Merci Cyrano, je vais tester tout de suite

Posté : 07 sept. 2005, 22:16
par JazzFinder
Normalement pour ca il n'y a aucun problème vu ke selon les priorités d'opérations la multiplication s'effectue toujours en premier, valable aussi ej pense pour le PHP.
Attention!
Diviser un nombre par 2, puis multiplier le résultat par a
donne un résultat différent de:
Diviser un nombre par le produit de 2*a
Posté : 07 sept. 2005, 22:22
par qmeuh
Oui ca je sais bien mais dans ce cas ci :
$ra0 = ( -$b - sqrt( $p ) ) / 2 * $a;
Vu que selon les propriétés d'opération on effectue toujours en premier lieu les multiplications (avant il y a encore les exposants) donc ici : 2*$a c'est exactement la meme chose que de le mettre entre parenthèses ...
et
et
et
Maintenant j'ai un autre problème, lorsque la valeur de la variable $c dépasse les 3 chiffres, le calcul ne me donne plus les racines de la fonction ... Est-ce parceque les fonctions pow() et sqrt() ont une utilisation limitée ?
Posté : 07 sept. 2005, 22:42
par JazzFinder
J'ai essayé ton script, il marche même avec des nombres de plus d'une dizaine de chiffres dans les trois variables.
