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

  FORUM HardWare.fr
  Programmation

  Parser de fonction mathématiques en C++

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Parser de fonction mathématiques en C++

n°15889
Mouky
Posté le 25-02-2001 à 23:04:05  profilanswer
 

'lut
 
 
Je recherche kelkun ki aurait déjà programmmé ce genre de truc.
Merci.
 
A+

mood
Publicité
Posté le 25-02-2001 à 23:04:05  profilanswer
 

n°15904
Toxin
Carpe ★★ Vitam
Posté le 26-02-2001 à 09:22:21  profilanswer
 

C'est pour faire quoi ?


---------------
"If you can walk away from a landing, it's a good landing. If you use the airplane the next day, it's an outstanding landing." - Chuck Yeager. | Ma chaîne YT
n°15911
Mouky
Posté le 26-02-2001 à 10:59:01  profilanswer
 

Ben en fait, tu rentre une fonction à la main dans un champ style : f(x)= 3x+cos(x) et le programme la lit et l'évalue. Cela évite de recompiler ton programme ,si la fonction change.
 
Voilà

n°15919
Toxin
Carpe ★★ Vitam
Posté le 26-02-2001 à 12:28:26  profilanswer
 

Ben je ne sais pas vraiment quel est ton pb mais j'ai fait ça une fois, et j'ai procédé de la manière suivante :
 
[#]Développer un diagramme de classes représentant les fonctions mathématiques : monome, polynome, frac rat, trigo ....
[#]Convertir la string de la fonction en polonaise inverse.
[#]Stocker la représentation de cette fonction avec cette méthode, mais dans l'autre sens.
 
Exemple : f(x) = (3x + cos(x))/(2x²-x+2)
(mes souvenirs de représentations de polonaises sont flous avec les fonctions prioritaires)
=> 3 x * x cos + x 2 ^ x - 2 + /
 
Représentées par le chaînage des instances :
 
"Opérateur /" -> "Operateur +" -> "Polynome" -> "Monome (coef 3, degré 1)"  
                            |---> "Trigo (cos)" -> "Polynome" -> " Monome (coeff 1 degré 1)"
            |--> "Polynôme" -> "Monome coeff 1 degré 2" -> Monome coeff 1 degré 1" -> "Monome coeff -2 degré 0"


---------------
"If you can walk away from a landing, it's a good landing. If you use the airplane the next day, it's an outstanding landing." - Chuck Yeager. | Ma chaîne YT
n°15923
Mouky
Posté le 26-02-2001 à 12:50:55  profilanswer
 

hum hum, ça me semble interressant. Tu n'aurais par hasard un source ou un dossier de programmation sous la main ?
 
Si oui, pourrais-tu me les mailer.
Merci
 
A+

n°15925
Toxin
Carpe ★★ Vitam
Posté le 26-02-2001 à 12:58:12  profilanswer
 

Nan j'ai plus les sources. Mais faut bien que tu utilises tes méninges non :D ???
 
Ce qui est méga joussif c'est quand tu codes les fonctions dérive() pour chaque classe. Après tu fais fonction->derive() et zou c'est nikel :D
 
Bon je t'avoue le plus chiant c'est la simplification. Une méthode efficace consiste à factoriser puis développer x fois mais ça ne marche pas à tous les coups.


---------------
"If you can walk away from a landing, it's a good landing. If you use the airplane the next day, it's an outstanding landing." - Chuck Yeager. | Ma chaîne YT
n°15927
Toxin
Carpe ★★ Vitam
Posté le 26-02-2001 à 13:10:34  profilanswer
 

Un tuyau quand même : pour parser la string il te faut au moins une pile où tu mets les opérateurs que tu rencontres.


---------------
"If you can walk away from a landing, it's a good landing. If you use the airplane the next day, it's an outstanding landing." - Chuck Yeager. | Ma chaîne YT
n°15928
Mouky
Posté le 26-02-2001 à 13:10:41  profilanswer
 

Tu n'aurais pas une connaissance qui aurait gardé les sources, tu me sauverais la vie.
 
ReMerci
A+

n°15929
Toxin
Carpe ★★ Vitam
Posté le 26-02-2001 à 13:18:34  profilanswer
 

Ca dépend combien de temps tu peux attendre.


---------------
"If you can walk away from a landing, it's a good landing. If you use the airplane the next day, it's an outstanding landing." - Chuck Yeager. | Ma chaîne YT
n°15931
Mouky
Posté le 26-02-2001 à 13:22:04  profilanswer
 

une semaine, voire deux :-)

mood
Publicité
Posté le 26-02-2001 à 13:22:04  profilanswer
 

n°15932
Toxin
Carpe ★★ Vitam
Posté le 26-02-2001 à 13:25:30  profilanswer
 

Je te donne des nouvelles demain.


---------------
"If you can walk away from a landing, it's a good landing. If you use the airplane the next day, it's an outstanding landing." - Chuck Yeager. | Ma chaîne YT
n°15933
Mouky
Posté le 26-02-2001 à 13:28:01  profilanswer
 

encore merci

n°16022
Mouky
Posté le 26-02-2001 à 22:34:23  profilanswer
 

juste une petite remontée de post, j'attends une reponse (:)

n°16066
Toxin
Carpe ★★ Vitam
Posté le 27-02-2001 à 09:41:52  profilanswer
 

PERDU
 
A plus les sources, il va falloir que tu cogites (ça m'a pris une journée je crois). Les étapes du parsage sont
- élimination des espaces
- élimination des parenthèses superflues
- analyse de la chaîne en commençant par les opérateurs les moins prioritaires, puis les opérateurs prioritaires puis enfin les fonctions.
 
Je crois me souvenir que l'on splitait la chaîne en deux et que c'était résursif mais alors là c'est une question d'affinités personnelles.


---------------
"If you can walk away from a landing, it's a good landing. If you use the airplane the next day, it's an outstanding landing." - Chuck Yeager. | Ma chaîne YT
n°16080
Mouky
Posté le 27-02-2001 à 10:25:43  profilanswer
 

Ouuuuinnn Ouinnnnn :-(((
On était prêt à t'offrir un petit kekchose mais malheureusement ça tombe à l'eau.
 
Tu avais fait ça en TP, tu n'avais pas de binome ou des "camarades" qui auraient encore leurs sources aujourd'hui ?
 
J'ai déjà mal à la tête rien que d'y penser :-(
 
Enfin, merci quand même  
 
A+

n°16083
Toxin
Carpe ★★ Vitam
Posté le 27-02-2001 à 10:31:51  profilanswer
 

Nan projet info en école en binôme.
 
On était prêt à t'offrir un petit kekchose mais malheureusement ça tombe à l'eau.
 
Fallait pas le plaisir de t'aider me suffit.


---------------
"If you can walk away from a landing, it's a good landing. If you use the airplane the next day, it's an outstanding landing." - Chuck Yeager. | Ma chaîne YT
n°16084
Mouky
Posté le 27-02-2001 à 10:33:04  profilanswer
 

tu vas peut-être me trouver chiant, mais tu es toujours en bons termes avec ton binome ? :-)

n°16086
k1200
Posté le 27-02-2001 à 10:47:50  profilanswer
 

Salut,
 
J'ai peut-etre un parser en c mais il faut que je fouille, je te tiens au courant.

n°16087
Toxin
Carpe ★★ Vitam
Posté le 27-02-2001 à 10:48:27  profilanswer
 

A ton avis pourquoi j'ai mis 'perdu' ? Il ne les a plus non plus c'est pour cela que je te demandais d'attendre le lendemain.


---------------
"If you can walk away from a landing, it's a good landing. If you use the airplane the next day, it's an outstanding landing." - Chuck Yeager. | Ma chaîne YT
n°16090
Mouky
Posté le 27-02-2001 à 10:50:42  profilanswer
 

K1200 --> merci
 
Toxin --> Bon ben tant pis. Merci quand même pour tes recherches.


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

  Parser de fonction mathématiques en C++

 

Sujets relatifs
[PERL] fonction de conversion nom long -> nom court DOS[C++] Fonction min et max??
[C++] trier un vector avec une fonction de comparaisonVB6: fonction permettant de récupérer l'adresse IP
[C] une fonction transformant un int en char *parser XML en JAVA
Erreur fonction PHP strposPHP Fonction Mail... Config ??
Problème sur une fonction C++ de base...[php] il faut un .dll en plus pour la fonction crypt() ?
Plus de sujets relatifs à : Parser de fonction mathématiques en C++


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