Exposant

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Exposant

par JazzFinder » 07 sept. 2005, 22:42

J'ai essayé ton script, il marche même avec des nombres de plus d'une dizaine de chiffres dans les trois variables. :!:

par qmeuh » 07 sept. 2005, 22:22

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 ...

Code : Tout sélectionner

16 / 4*2 = 2
et

Code : Tout sélectionner

16 / (4*2) = 2
et

Code : Tout sélectionner

16 ------ = 2 4 * 2
et

Code : Tout sélectionner

16 -------- = 2 (4 * 2)
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 ?

par JazzFinder » 07 sept. 2005, 22:16

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

par qmeuh » 07 sept. 2005, 22:05

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 :D

par JazzFinder » 07 sept. 2005, 21:58

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:

Code : Tout sélectionner

$p = pow( $b , 2 ) - 4 * $a * $c;
devrait être, pour enlever toute ambiguïté:

Code : Tout sélectionner

$p = pow( $b , 2 ) - (4 * $a * $c);
Autre exemple:

Code : Tout sélectionner

$ra0 = ( -$b - sqrt( $p ) ) / 2 * $a;
À changer pour:

Code : Tout sélectionner

$ra0 = ( -$b - sqrt( $p ) ) / (2 * $a);
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.

par Cyrano » 07 sept. 2005, 21:54

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
?>

par qmeuh » 07 sept. 2005, 21:40

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 ? ...

par qmeuh » 07 sept. 2005, 20:32

Merci je venais de le voir à l'instant :D

par progfou » 07 sept. 2005, 20:28

C'est la fonction pow() tout simplement :
http://www.php.net/manual/fr/function.pow.php

Exposant

par QMeumeuh » 07 sept. 2005, 20:25

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