Oucha222
Messages postés2Date d'inscriptionmardi 21 octobre 2008StatutMembreDernière intervention10 février 2012 10 févr. 2012 à 17:00
Sachant que le résultat obtenu est soit true soit false ?? j'ai beau cherché sur internet mais le principe de JCalculateur fait des prouesses en terme de performance ...
Oucha222
Messages postés2Date d'inscriptionmardi 21 octobre 2008StatutMembreDernière intervention10 février 2012 10 févr. 2012 à 16:58
Bonsoir, est il possible d'utiliser le méme principe du JCalculateur pour calculer des expressions booleene du genre "3>2 || 0<-1"??
Mohamed13101989
Messages postés2Date d'inscriptiondimanche 22 mai 2011StatutMembreDernière intervention22 mai 2011 22 mai 2011 à 14:27
calculateur.setEquation?? mais la methode setEquation n'est pas defini dans la classe jCALCULATEYR????????
Mohamed13101989
Messages postés2Date d'inscriptiondimanche 22 mai 2011StatutMembreDernière intervention22 mai 2011 22 mai 2011 à 12:41
bonjour ,
je veux utuliser votre code pour calculer les images des points d'une fonction.on faite je veux tracer la courbe d'une fonction donné. please, pouvez vous m'aider..chui bloqué :((
yassirone
Messages postés2Date d'inscriptionmercredi 5 janvier 2011StatutMembreDernière intervention 6 janvier 2011 6 janv. 2011 à 01:38
bonjour,
1) meme blem avec les fonction que celui qu'à signaler MERCIER134
2) si je veux garder le principe en utilisant des piles ou des arbres, comment pourrai je le faire ?
mercier134
Messages postés6Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention 5 janvier 2010 3 janv. 2010 à 19:03
Bonjour,
1. Chaque fois que j'essaye de faire un calcul avec une fonction cela m'indique "Erreur de syntaxe".
2+exp[2] fonctionne mais pas exp[2]+2 ... idem pour 3*pi[] (fonctionne) et pi[]*3 (ne fonctionne pas) ... et cela devient encore plus embêtant pour pi[]/2 (ne fonctionne pas) car c'est pas la même chose que 2/pi[] ... ^^
2. Un conseil : Commente plus le code et les méthodes ... ce sera beaucoup plus facile à te (re)lire (pour toi plus tard et nous maintenant)
Sinon, ça m'a l'air d'être un très bon code !
DeadlyPredator
Messages postés222Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention30 juin 2008 25 févr. 2009 à 16:27
L'arbre aurait été une meilleure solution, mais quand j'ai fait ce code j'étais jeune et je n'avais presque pas d'expérience en programmation ;-) J'ignorait encore que les arbres existait aussi en programmation à part dans un treeview. Normalement ce qu'il aurait fallut faire, c'est scanner l'expression, la compilée et après l'exécuter avec les paramètres requis (comme placer les variables par exemple). Un moteur de script complexe et portable capable de gérer les boucles, fonctions, expressions, conditions, ... est dans mes cartons actuellement. Peut-être qu'un jour je vais m'y mettre et terminer cela.
verdy_p
Messages postés202Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention29 janvier 2019 25 févr. 2009 à 06:04
Quel choix étrange de choisir \ pour modulo (au lieu du % usuel) et % pour XOR (au lieu du ^ usuel)...
Autre remarque à Neutrino216 : les programmes évaluant des expressions ne construisent pas un arbre, mais évaluent directement l'expression avec une pile. Construire un arbre en mémoire pour ensuite l'évaluer est une perte de temps et de ressources, complètement inutile. Le seul intéret de l'arbre estde stocker les résultats intermédiaires évalués dans la pile, quand ceux-ci ne peuvent pas être exprimés par une simple constante (par exemple lorsque l'expression contient des variables non évaluables immédiatement ou qui doivent être évaluées lorsque le programme obtenu sera utilisé et réutilisé avec des valeurs différentes des variables).
La construction d'arbre sert plutôt pour la compilation du code afin de le transformer en langage intermédiaire ou en code d'assemblage ou code objet (assembleur ou code objet pour CPU ou pour GPU, ou pour langage d'assemblage binaire pour machine virtuelle Java ou .Net ou Python, etc.).
Ceci dit, même pour la compilation, l'évaluation directe des expressions a également lieu avec une pile, destinée à synthétiser les résultats et précalculer les constantes ou simplifier l'expression avant de produire le code machine: la pile, au lieu de ne stocker que des nombres constant, peut stocker aussi des sous-arbres contenant des références de variables, et au cours de l'évaluation, certains sous-arbres pourtant non valués peuvent devenir inutilisés et seront éliminés par le compilateur, qui ne gardera que le dernier arbre totalement simplifié où toutes les sous-expressions constantes auront été préévaluées.
L'utilité de l'évaluation avec un arbre intermédiaire avant la production de code objet est surtout de permettre des manipulations diverses de l'arbre (en vue de son optimisation avant production du code objet) et de mémoriser divers indicateurs utilisés dans différents parcours (par exempel pour l'évaluation sémantique, ou l'analyse des prédictions de branchement, ou de l'allocation de mémoire ou de registre, ou pour la détermination des résultats intéremédiaires qui doivent faire ou non l'objet d'un cache).
Dans le cadre de ce programme, qui ne fait qu'évaluer une expression simple sans variables, l'arbre ne sert à rien du tout, on évalue tout directement dans la pile. Le but de ce programme n'est pas de faire un moteur de script.
Neutrino216
Messages postés25Date d'inscriptionmardi 21 février 2006StatutMembreDernière intervention12 juillet 2007 18 févr. 2007 à 15:19
Salut,
Je viens de jeter un coups d'oeil à ton code. Un conseil : pense à faire des commentaires. Avant j'en faisais jamais, mais maintenant je peux t'assurer que c'est très important, ça facilite enormément la compréhension du code.
Enfin une proposition : Tu aurai pu penser à utiliser une structture de donnée de type arbre et le contruire progressivement en lisant ton string. Ensuite en parcourant l'arbre de maniére 'in-fixe' CAD fils gauche, pere, fils droit tu obtient une formule mathématique ensuite t'a plus qu'a la lancer. Je crois que c'est ce qui est fait par les programmes de calcul usuels.
cs_laurent1024
Messages postés987Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention30 août 201225 27 juil. 2006 à 23:18
Ca m'a pas l'air mal cette source. par contre j'ai regarde vite fait le code, pourquoi n'as tu pas realiser un automate à pile pour la décomposition des sous equations ?
Je pense qu'il te permettrait aussi de gerer ton probleme avec les crochets, et si mes souvenirs sont bons, les compilateurs utilisent cette technique.
++
amezghal
Messages postés385Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention21 août 20155 23 juil. 2006 à 23:53
merci; mais j'arrive a faire la mienne;rendevous dans 2 jrs d'ici.
DeadlyPredator
Messages postés222Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention30 juin 2008 22 juil. 2006 à 20:14
ok, tu veux dire avoir une fonction comme x^2+3x-2=y ou 3x+4=y? Si oui, pas de problèmes. Il ne te suffit que de conserver la formule de l'utilisateur et quand tu trace, tu fait un while et à chaque boucle, tu remplace avec .replace sur le string la variable x par la valeur requise et tu trace le résultat.
amezghal
Messages postés385Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention21 août 20155 22 juil. 2006 à 14:12
est ce que je peut utilser votre class pour en faire un petit traceur des fonctions et d'integrales ,si non je suis obliger de construire le mien(j'ai dejà réaliser cela avec vb mais je n'arrive pas a le traduire en java ) merci.
DeadlyPredator
Messages postés222Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention30 juin 2008 22 juil. 2006 à 08:04
Les possibilités d'expension de ce code sont grandes, vous pouvez facilement implenté des opérateurs et des fonctions.
10 févr. 2012 à 17:00
10 févr. 2012 à 16:58
22 mai 2011 à 14:27
22 mai 2011 à 12:41
je veux utuliser votre code pour calculer les images des points d'une fonction.on faite je veux tracer la courbe d'une fonction donné. please, pouvez vous m'aider..chui bloqué :((
6 janv. 2011 à 01:38
1) meme blem avec les fonction que celui qu'à signaler MERCIER134
2) si je veux garder le principe en utilisant des piles ou des arbres, comment pourrai je le faire ?
3 janv. 2010 à 19:03
1. Chaque fois que j'essaye de faire un calcul avec une fonction cela m'indique "Erreur de syntaxe".
2+exp[2] fonctionne mais pas exp[2]+2 ... idem pour 3*pi[] (fonctionne) et pi[]*3 (ne fonctionne pas) ... et cela devient encore plus embêtant pour pi[]/2 (ne fonctionne pas) car c'est pas la même chose que 2/pi[] ... ^^
2. Un conseil : Commente plus le code et les méthodes ... ce sera beaucoup plus facile à te (re)lire (pour toi plus tard et nous maintenant)
Sinon, ça m'a l'air d'être un très bon code !
25 févr. 2009 à 16:27
25 févr. 2009 à 06:04
Autre remarque à Neutrino216 : les programmes évaluant des expressions ne construisent pas un arbre, mais évaluent directement l'expression avec une pile. Construire un arbre en mémoire pour ensuite l'évaluer est une perte de temps et de ressources, complètement inutile. Le seul intéret de l'arbre estde stocker les résultats intermédiaires évalués dans la pile, quand ceux-ci ne peuvent pas être exprimés par une simple constante (par exemple lorsque l'expression contient des variables non évaluables immédiatement ou qui doivent être évaluées lorsque le programme obtenu sera utilisé et réutilisé avec des valeurs différentes des variables).
La construction d'arbre sert plutôt pour la compilation du code afin de le transformer en langage intermédiaire ou en code d'assemblage ou code objet (assembleur ou code objet pour CPU ou pour GPU, ou pour langage d'assemblage binaire pour machine virtuelle Java ou .Net ou Python, etc.).
Ceci dit, même pour la compilation, l'évaluation directe des expressions a également lieu avec une pile, destinée à synthétiser les résultats et précalculer les constantes ou simplifier l'expression avant de produire le code machine: la pile, au lieu de ne stocker que des nombres constant, peut stocker aussi des sous-arbres contenant des références de variables, et au cours de l'évaluation, certains sous-arbres pourtant non valués peuvent devenir inutilisés et seront éliminés par le compilateur, qui ne gardera que le dernier arbre totalement simplifié où toutes les sous-expressions constantes auront été préévaluées.
L'utilité de l'évaluation avec un arbre intermédiaire avant la production de code objet est surtout de permettre des manipulations diverses de l'arbre (en vue de son optimisation avant production du code objet) et de mémoriser divers indicateurs utilisés dans différents parcours (par exempel pour l'évaluation sémantique, ou l'analyse des prédictions de branchement, ou de l'allocation de mémoire ou de registre, ou pour la détermination des résultats intéremédiaires qui doivent faire ou non l'objet d'un cache).
Dans le cadre de ce programme, qui ne fait qu'évaluer une expression simple sans variables, l'arbre ne sert à rien du tout, on évalue tout directement dans la pile. Le but de ce programme n'est pas de faire un moteur de script.
18 févr. 2007 à 15:19
Je viens de jeter un coups d'oeil à ton code. Un conseil : pense à faire des commentaires. Avant j'en faisais jamais, mais maintenant je peux t'assurer que c'est très important, ça facilite enormément la compréhension du code.
Enfin une proposition : Tu aurai pu penser à utiliser une structture de donnée de type arbre et le contruire progressivement en lisant ton string. Ensuite en parcourant l'arbre de maniére 'in-fixe' CAD fils gauche, pere, fils droit tu obtient une formule mathématique ensuite t'a plus qu'a la lancer. Je crois que c'est ce qui est fait par les programmes de calcul usuels.
27 juil. 2006 à 23:18
Je pense qu'il te permettrait aussi de gerer ton probleme avec les crochets, et si mes souvenirs sont bons, les compilateurs utilisent cette technique.
++
23 juil. 2006 à 23:53
22 juil. 2006 à 20:14
22 juil. 2006 à 14:12
22 juil. 2006 à 08:04