fandestargate
Messages postés14Date d'inscriptiondimanche 5 avril 2009StatutMembreDernière intervention 5 avril 2009
-
9 févr. 2009 à 01:47
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 2012
-
13 févr. 2009 à 14:52
Bonsoir, je travaille actuellement sur un projet visant à résoudre des équations apres transformée de fourrier. Pour ce faire je rentre une fonction initiale à l'instant t0. Mon probleme c'est que pour y arriver je n'ai que deux solutions:
Soit je met la fonction dans mon code (et quand je veux la changer il faut changer partout^^)
Soit je la saisie au clavier au lancement du programme (et la fonction se rajoutera partout où j'en ai besoin dans mon code)
Pour avoir un petit peu cherche sur le net je crois savoir que ce genre de programme portent un nom, les interpreteurs^^. Le petit probleme c'est que je code depuis peu, et donc lorsque j'ai vu le code de ces fameux interpreteurs j'ai eu une frayeur^^.
Je voulais donc savoir si il n'y avait pas ici une ame charitable qui pourrait m'expliquer en terme plus ou moins simple le fonctionnement de ces interpreteurs (qu'est ce qu'ils prennent comme parametres, qu'est ce qu'ils renvoient...).
Donc voila, j'espere que quelqu'un saura m'aider dans cette rude épreuve^^, bonne soirée, ++
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 9 févr. 2009 à 12:44
salut
si tu acceptes de ne pas avoir des expressions mathematiques ecrites sous la forme classique, alors c'est simple : la syntaxe RPN est vraiment tres facile a interpreter.
sinon, tu peux convertir une expression normale en expression rpn pour ensuite l'interpreter.
fandestargate
Messages postés14Date d'inscriptiondimanche 5 avril 2009StatutMembreDernière intervention 5 avril 2009 9 févr. 2009 à 19:02
merci de m'avoir répondu coucou747 mais le probleme c'est que cette méthode ne gere pas les equation comportant des variables, comme par exemple f(x)=x*(1-x). Petite precision aussi je programme en C (si je me suis trompé de partie du forum excusez moi je déplacerai le sujet^^).
fandestargate
Messages postés14Date d'inscriptiondimanche 5 avril 2009StatutMembreDernière intervention 5 avril 2009 9 févr. 2009 à 23:51
oui mais une fonciotn qui ferait ça ça me suffirait, car avec ça je pourrais calculer les points qui m'interresse et les stocker dnas un tableau, pour pouvoir ensuite faire ma TF et mes RK. Tu connais un programme qui fait ça?
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 13 févr. 2009 à 12:11
faire une fonction de type :
bt parse(char * expression){
// met ton code ici
}
et une autre de type
int eval(bt tree, int valeur_de_x)
tu ne sais pas du tout comment ca peut se faire ?
il faut faire un bout de code qui decoupe ton expression en une liste de "tokens" ces tokens sont soit des nombres, soit des operateurs (tu associes une priorite aux operateurs) soit des noms de variables. Tu ignores les espaces aussi.
ensuite, tu as un parseur qui va lire les tokens et qui va te faire un arbre binaire pret a etre evalue.
la fonction d'evaluation est bidon.
le lexeur n'est pas tres dur a faire, ce qui est chiant, c'est les regles dans le parseur.