[Ada] exploiter une fonction mathematique saisie

exploiter une fonction mathematique saisie [Ada] - Ada - Programmation

Marsh Posté le 26-10-2004 à 11:03:27    

Bonjour,
 
j'espere ne pas me planter de sous-catégorie  :ange:  
 
je fais de l'Ada (je suis des cours) et on refait actuellement les piles avec le classique traitement d'operation à la polonaise (ex: 5 6 + 89 54 * =)
 
J'aimerai ecrire un programme qui me dessinerai le graph d'une fonction mathematique entrée par l'utilisateur.
 
je pensais utiliser la methode des piles (aprés avoir transformé la chaine de caractere correspondant à la fonction saisie en "pile polonaise inverse" ) pour calculer les differentes valeurs en fonction de x.  
Mais n'y a t'il pas une methode me permettant d'eviter ce traitement par pile (je trouve que ca fait un bloc trés compliqué pour le simple calcul d'une expression)? Multiplié par le "pas" de mon graph, je risque d'avoir un programme trés lent.
 
connaissez vous une autre methode qui permette une fois pour toute de "traduire" la fonction saisie et ainsi pouvoir l'utiliser simplement dans le reste du programme?
 
j'espere avoir été suffisement clair (je sent que c'est pas gagné)
 
 
edit: par la meme occasion, le nom d'un package pour les graph en Ada?


Message édité par blacksad988 le 26-10-2004 à 11:42:39
Reply

Marsh Posté le 26-10-2004 à 11:03:27   

Reply

Marsh Posté le 04-11-2004 à 10:55:24    

un cht'i up au cas où....

Reply

Marsh Posté le 04-11-2004 à 11:36:27    

Il n'y a pas de solution miracle à ton problème. Dans des langages interprétés, on peut s'en sortir par un "eval" ou équivalent. En Ada (tout comme en C) c'est loin d'être trivial de générer du code à la volée, et il faut donc se faire son propre interpréteur de fonctions.
 
Ou alors tu peux bidouiller avec le compilateur pour créer un code source correspondant à ton expression, lui demander de compiler ce bout comme une bibliothèque dynamique et la charger par la suite. Et c'est loin d'être évident, et difficilement portable ...
 
Pour tes graphes, va voir du coté des Booch components, tu devrais trouver ton bonheur : http://www.adapower.net/booch/

Reply

Marsh Posté le 04-11-2004 à 12:24:41    

Merci beaucoup DSLS
visiblement tu as bien compris ma question (j'avais peur de m'etre mal exprimé)
je vais donc faire ma méthode et voir la "rapidité" du resultat.  
Si c'est trop lent, je me renseignerai sur "compiler ce bout comme une bibliothèque dynamique et la charger par la suite". (j'avais deja imaginé un truc comme ça, mais,je pensais que c'etais infaisable)
 
pour booch components ca semble terrible (bien mieu que ce  que j'esperai)
 
encore merci

Reply

Marsh Posté le 09-11-2004 à 11:31:50    

juste un cht'i up pour exprimer ma déception concernant l'Ada...  
C'est très difficile de trouver des réponses pertinentes et simples à ses questions sur le net. Les sites adéquat sont soit dans la langue de chequespire soit incompréhensible par les non-3l33!
impossible de trouver des tutoriaux ou des explications claires francophone sur gtkada par exemple.
impossible de trouver des screenshots montrant les possibilités offerte par gtkada...
 
bref je continue mes recherches, mais c'est lourd!
 
 
 
 
 
ps: H.S. c'est réalisable, selon vous, un petit jeux d'aventure "Point and Click" en ADA? (un truc modeste)

Reply

Marsh Posté le 09-11-2004 à 18:09:28    

Bonjour,
C'est dur de trouver des "réponses pertinentes" parcque peu de gens connaissent l'Ada. Mais en fait, il plusieurs longueurs d'avance...


Message édité par - MoKsA - le 14-11-2004 à 10:34:07
Reply

Marsh Posté le 10-11-2004 à 07:54:52    

103e a écrit :

Bonjour,
C'est dur de trouver des "réponses pertinentes" parcque peu de gens connaissent l'Ada. Mais en fait, il plusieurs longueurs d'avance...
 
Ps:  

Citation :

...en ADA?...


On dit Ada et pas ADA ni ada.


 
 :sarcastic: mouais,... erreur de ma part, je te le concede, ceci dis, tu remarqueras que c'est la seule fois où j'ai fait cette faute dans le topic  :kaola:   :hello:  
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed