Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1264 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [JAVA]expression arithmetique parenthesee +arbre binaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JAVA]expression arithmetique parenthesee +arbre binaire

n°341906
dorf54
Posté le 24-03-2003 à 20:30:57  profilanswer
 

J'aimerais des indications car je vois pas du tout comment m'y prendre:
l'utilisateur saisit une expression arithmetique parenthesee qui sera alors transformée en arbre binaire afin d'executer d'autres fonctions
merci d'avance

mood
Publicité
Posté le 24-03-2003 à 20:30:57  profilanswer
 

n°341966
nraynaud
lol
Posté le 24-03-2003 à 20:57:30  profilanswer
 

Dorf54 a écrit :

J'aimerais des indications car je vois pas du tout comment m'y prendre:
l'utilisateur saisit une expression arithmetique parenthesee qui sera alors transformée en arbre binaire afin d'executer d'autres fonctions
merci d'avance
 


 
C'est la base de la compilation, avec JLex et CUP (google est notre ami à tous) tu saisis l'arbre syntaxique (qui sera binaire si tous tes opérateurs sont binaires) et en java pur tu l'exécute.
 
Tu peux commencer par concevoir la partie calcul puis la partie compilation ensuite.

n°341983
bobuse
Posté le 24-03-2003 à 21:04:03  profilanswer
 

Ben en fait, c'est de l'analyse lexicale/syntaxique ça.
Il faut que tu définisses une grammaire pour ton arithmétique, du genre :
Expression arithmétique = Expression operateur Expression | nombre
operateur = + | - | * | /
Bon là c'est une version simpliste faite a l'intuition (sans les priorités, associativités, ...).
 
Après, certainement qu'il doit y avoir une API en Java qui fait tout ca ...
En C, les outils adaptés sont Lex ou flex(pour l'analyse syntaxique) et yacc ou bison (pour l'analyse lexicale)


Message édité par bobuse le 24-03-2003 à 21:05:46

---------------
get amaroK plugin
n°341989
bobuse
Posté le 24-03-2003 à 21:06:39  profilanswer
 

nraynaud a écrit :


 
C'est la base de la compilation, avec JLex et CUP (google est notre ami à tous) tu saisis l'arbre syntaxique (qui sera binaire si tous tes opérateurs sont binaires) et en java pur tu l'exécute.
 
Tu peux commencer par concevoir la partie calcul puis la partie compilation ensuite.


merci pour la recherche  ;)  
Je le garde sous le coude celui-là


---------------
get amaroK plugin
n°342032
dorf54
Posté le 24-03-2003 à 21:27:18  profilanswer
 

oula ca me parait compliqué tout ca
je pensais juste a une simple fonction
c'est vraiment la seule methode?
merci pour vos reponses en tous cas
 :hello:

n°342060
nraynaud
lol
Posté le 24-03-2003 à 21:40:56  profilanswer
 

bobuse a écrit :


merci pour la recherche  ;)  
Je le garde sous le coude celui-là


 
heu pour tout t'avouer, ça m'est tombé tout cuit dans le bec au bébut d'un TP.
 
Plus tard en cherchant un peu, j'ai trouvé JFlex qui parrait plus mieux sur le papier, mais malgré sa prétendue compatibilité, il est pas compatible avec JLex.

n°342157
darklord
You're welcome
Posté le 24-03-2003 à 23:41:57  profilanswer
 

tiens moins moins a pas mis un blueflag ?  ;)


---------------
Just because you feel good does not make you right
n°342176
the real m​oins moins
Posté le 25-03-2003 à 00:20:17  profilanswer
 

DarkLord a écrit :

tiens moins moins a pas mis un blueflag ?  ;)

javais pas encore vu :o
 
euh.
qu'en est-il de javacc ... ? :whistle:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°342177
darklord
You're welcome
Posté le 25-03-2003 à 00:23:10  profilanswer
 

the real moins moins a écrit :

javais pas encore vu :o
 
euh.
qu'en est-il de javacc ... ? :whistle:


 
 [:rofl]  [:xp1700]


---------------
Just because you feel good does not make you right
n°342193
deltaden
Posté le 25-03-2003 à 02:40:27  profilanswer
 

Dorf54 a écrit :

oula ca me parait compliqué tout ca
je pensais juste a une simple fonction
c'est vraiment la seule methode?
merci pour vos reponses en tous cas
 :hello:  


c'est tout à fait possible de faire ca avec un système d'arbre binaire, et utiliser une fonction pour parser ton expression. Je l'ai déjà fait comme TP (avec +,-,*,/,^,sin,cos, nombres, lettres et parenthèses) Mais l'expression devait être complètement parenthesée.
Mais ca donne un algorithme un peu chiants si tu veux vraiment traiter tous les cas (points de vue priorité de l'opérateur * sur + ...)
Et c'est moins "générique" que les autres méthodes données (que je connaissais pas mais je suis loin d'être une base en info...).
 
Edit: en fait je viens seulement de me souvenir que le but de ce TP était de faire un système qui dérivait analytiquement l'expression qu'on lui donnait. Il y avait une variable x, et on pouvait lui donner également des paramètres a,b,c...  
Ca marchait vraiment bien, je me souviens que quand je l'avais fait, j'étais super fier de ce truc  :)


Message édité par deltaden le 25-03-2003 à 02:45:27

---------------
"La Terre est le berceau de l'humanité, mais on ne passe pas toute sa vie au berceau." - Konstantine Tsiolkovski
mood
Publicité
Posté le 25-03-2003 à 02:40:27  profilanswer
 

n°342229
bobuse
Posté le 25-03-2003 à 09:28:48  profilanswer
 

Dorf54 a écrit :

oula ca me parait compliqué tout ca
je pensais juste a une simple fonction
c'est vraiment la seule methode?
merci pour vos reponses en tous cas
 :hello:  


Ben tu peux toujours essayer de le faire a l'intuition, mais bon [:spamafote] T'as de grande chance de te retrouver dans des cul-de-sac ...
Le mieux est d'ecrire la grammaire des expressions arithmétiques (tu peux surement la trouver sur le net, histoire de pas se planter ;) ), apres tu parse la chaine pour separer les lexemes (c'est le nom, si mes souvenirs sont bons) : nombres, operateurs, parentheses, ... et tu construits ton arbre a partir de la grammaire en utilisant des algos de construction existants (google :D )


---------------
get amaroK plugin
n°342390
chrisbk
-
Posté le 25-03-2003 à 12:09:09  profilanswer
 

bobuse a écrit :


Ben tu peux toujours essayer de le faire a l'intuition, mais bon [:spamafote] T'as de grande chance de te retrouver dans des cul-de-sac ...
Le mieux est d'ecrire la grammaire des expressions arithmétiques (tu peux surement la trouver sur le net, histoire de pas se planter ;) ), apres tu parse la chaine pour separer les lexemes (c'est le nom, si mes souvenirs sont bons) : nombres, operateurs, parentheses, ... et tu construits ton arbre a partir de la grammaire en utilisant des algos de construction existants (google :D )


 
roh vi, doit en avoir moulte et 100, genre dans doc de yacc (ca doit etre transposable, j'imagine)

n°343213
dorf54
Posté le 25-03-2003 à 22:35:29  profilanswer
 

finalement je l'ai fait en statique
encore merci
 :hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [JAVA]expression arithmetique parenthesee +arbre binaire

 

Sujets relatifs
[java] un petit pb entre String et Byte[Java] Client FTP [Résolu]
Imprimer du PDF avec Java (méthode print de l'AWT)taille max d'une chaine de caractère en java?
Tetris en java[JAVA] websphere cache ?
[JAVA] Programmer sur un 3410 (+ autres gsm)[JAVA][OpenGL][3DS] Animation d'obj
[Java] Placer une fenêtre sur l'écran (débutant)[java] Saisie au clavier
Plus de sujets relatifs à : [JAVA]expression arithmetique parenthesee +arbre binaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR