Page 1 sur 2

Calculette spéciale en PHP

Posté : 08 sept. 2005, 21:26
par kouray
Hello, j'ai fait une petite calculette classique ( tres nule mais bon, elle marche c'est l'essentiel ^^ ) http://noobnet.free.fr/calculette.php
Elle n'est pas faite pour intégrer spécialement un site, mais juste pour mon plaisir personnel :)
Je voulais donc vous demander si il est "techniquement" possible de créer un script PHP calculette pour résoudre des équations ( au premier degré pour commencer, du type : 2x = 3x + 5 ) ou si ce n'est pas gérable par PHP ( enfin qu'il n'y a pas moyen de lui faire faire une suite de calculs pour calculer x )
Voila, merci beaucoup :)
Sinon, si vous avez une technique pour ma premiere calculette pour mettre d'une fasson plus agréable les signes ( + - x / )
Merci bien

Posté : 08 sept. 2005, 21:29
par Cyrano
Le problème est que x sera une variable indéfinie, je vois pas trop comment gérer ça.

Posté : 08 sept. 2005, 21:34
par HD
oh mais je crois que c'est tout a fait faisable, faut juste que je me rappele les cours de maths du lycee :oops: :lol:

Posté : 08 sept. 2005, 21:34
par kouray
Ah ok...
vu que j'ai commencé il y a quelques jours le PHP... jsens que sa va etre dur ^^
Il n'y a vraiement aucune manière de traiter une variable indéfinie ?
( jsuis en train de réfléchir depuis tout a l'heure a une astuce possible avec mes faibles conaissances en la matière mais jvois pas :/ )

Posté : 08 sept. 2005, 21:35
par HD
oh mais je crois que c'est tout a fait faisable, faut juste que je me rappele les cours de maths du lycee :oops: :lol:
j'ai dit que si
bug dans ta calculette : additionne 2 lettres par exemple et tu verra le resultat

Posté : 08 sept. 2005, 21:36
par kouray
oh mais je crois que c'est tout a fait faisable, faut juste que je me rappele les cours de maths du lycee :oops: :lol:
LoL
Collège ^^
On va en faire une petite pour rafraichir la mémoire à certains :D

2x + 5 = 3x - 7
-x = -12
x = 12

Et une autre pour la route :D

4x + 12 = 2x - 3
2x = -15
x = -15/7

Posté : 08 sept. 2005, 21:37
par kouray
Désolé, j'ai vu ton message seulement apres avoir posté le miens :/
Sinon pour les lettres c'est pas bien grave, c'est fait pour aditionner des chifres :D ( et c'est surtout que je sais pas comment faire pour que ce soit pas possible de mettre des lettres xD )

Posté : 08 sept. 2005, 21:38
par HD
:oops: j'ai honte de moi
non ca je sais, j'etais parti sur les ax²+bx+c=0
ca aussi c'est faisable
bon je travaille un peu sur ton code et je te repond

Posté : 08 sept. 2005, 21:40
par kouray
Merci beaucoup ^^
Je te demande pas de me le faire en entier lol :D
juste me dire comment atribuer x ( sinon ia plus aucun plaisir :D )

Posté : 08 sept. 2005, 21:43
par Cyrano
Le problème, c'est que tu pourras pas simplement mettre une équation directement avec une variable indéfinie, ça ne fonctionnera pas: il faudra donc manipuler ton équation de façon à ce qu'elle serve à initialiser ta variable. Donc pour faire quelque chose comme 2x = 3x + 5 par exemple, il va falloir décomposer ton calcul de façon à n'avoir plus que x = opération modifiée. Ce qui en fin de compte n'est pas un avantage considérable vu qu'il va falloir effectuer le calcul toi-même.

Posté : 08 sept. 2005, 21:46
par HD
je t'ai pas bien suivi cyrano mais j'ai ecrit ca :
<?
// comme pour ta calculette crée un formulaire avec
// une case, un "x +" , une autre case , un = , une case, un "x +" , une autre case
// attribue leurs dans l'ordre les noms : x1 , c1 , x2 , c2
$x=$x1-$x2 ;
$c=$c1-$c2 ;
$res=($c * (-1)) / $x ;
echo "X = $res" ;
// je ne l'ai pas testé alors à toi de me dire si c'est correcte !
?>
c'est trop facile d'où le doute qui s'installe chez moi...

edit : j'ai ajouté "x +" 2fois comme ca c'est plus clair

Posté : 08 sept. 2005, 21:50
par kouray
Merci, je vais essayer, je donne des nouvelles dans la soirée ( si j'ai compris d'ici la ^^ )
Merci encore

Posté : 08 sept. 2005, 21:56
par Cyrano
je t'ai pas bien suivi cyrano mais j'ai ecrit ca :
<?
// comme pour ta calculette crée un formulaire avec
// une case, un "x +" , une autre case , un = , une case, un "x +" , une autre case
// attribue leurs dans l'ordre les noms : x1 , c1 , x2 , c2
$x=$x1-$x2 ;
$c=$c1-$c2 ;
$res=$c/$x ;
echo "X = $res" ;
// je ne l'ai pas testé alors à toi de me dire si c'est correcte !
?>
c'est trop facile d'où le doute qui s'installe chez moi...

edit : j'ai ajouté "x +" 2fois comme ca c'est plus clair
Faudrait que tu m'explique comment tu initialises tes variables... :-k

Que certaines viennent de la calculatrice, admettons, mais l'exemple du calcul 2x = 3x + 5 pose un problème: si "2", "3" et et "5" proviennent de la calculatrice, pas de problème, mais "x" pose un problème majeur par ce qu'on le trouve des deux cotés de l'égalités et il n'est pas initialisé : comment vas-tu donc faire ?

Posté : 08 sept. 2005, 22:04
par HD
non c'est pas ca
ce que j'ai proposé s'insipre (seulement) de sa calculette pour faire un formulaire de ce genre :

[ ] x1 + [ ] = [ ] x2 + [ ]
(x1) (c1) (x2) (c2)

(remplir les [] car elles correspondent à des textarea ou numeriqueupdown ou comme il veut)
et apres c'est facile
$x=$x1-$x2 ; 
$c=$c1-$c2 ; 
$res=($c * (-1)) / $x ; 
echo "X = $res" ; 
CORRECTION :
$res= ($c * (-1)) / $x ;

Posté : 08 sept. 2005, 22:09
par zeus
Si je comprend la méthode de HD et je suis d'accord.

Il veut demander l'équation comme suit :
(_)x+(_)=(_)x+(_) où _ est une variable à saisir

donc dans l'équation -2x+3=-12, il faudra saisir (-2)x+(3)=(0)x+(-12)

J'ai pas testé mais le script doit donner le bon résultat.
Ensuite, je pense qu'il devrait y avoir le moyen de saisir l'équation directement et de la découper par le = puis par les opérateurs +,-,*,/ et d'identifier les différents membres

Intéressant comme question. Je ne peut pas m'y mettre ce soir mais si j'ai 5mn demain, je cherche de mon côté