très très urgent

très très urgent - Programmation

Marsh Posté le 07-02-2001 à 19:23:44    

J'aurais bvesoin d'aide pour faire mon projet de programmation, please!
Le sujet est le suivant  Faire un traceur de courbe: come une calculatrice graphique: on rentre la fonction et ca affiche, jaimerais l'avoir en python de preference mais je suis preneur en C ou en Java
Merci

Reply

Marsh Posté le 07-02-2001 à 19:23:44   

Reply

Marsh Posté le 07-02-2001 à 20:49:52    

Bon, je suis une grosse buse en C, Java j'aime pas donc je cherche pas à comprendre, quand à Python, je ne sais même pas ce que c'est que ce langage... :D
 
Par contre, pour l'algo, rien de plus simple...
 
Demander borne inférieure en X
Demander borne suppérieure en X
Demander borne inférieure en Y
Demander borne suppérieure en Y
(pour l'affichage)
 
ensuite, ben trace les lignes du repère (s'il est visible)... (y doit bien y avoir une fonction "line" ou un truc du genre)
 
Ensuite, divise La largeur de l'écran par X+ - X-, celà te donne le pas de l'étude Px, et de même pour la hauteur afin d'obtenir Py.
 
Ensuite, c'est :
 
Y_old = ( <ta fonction où tu as remplacé X par "X-"> * Py ) + Y-;
for (i = 1; i < largeur écran; i++)
{
     Y = <ta fonction où tu as remplacé X par "X- + (i * Px)">;
     line(X- + (i - 1), Y_old, i, Y);
     Y_old = Y;
}
 
Voilà...
 
Vu que le pas en largeur est de 1 pixel, on ne verra pas que c'est des lignes.
 
Deplus, gère les erreures au moment du calcul de Y : il se peu que la fonction te retourne des données hors limite. A ce moment, je te laisse trouver une parade.
 
Il y a des tas d'autres méthodes plus complexes. Celle là est la plus simple (un peu trop peut-être :D)

 

--Message édité par magicbuzz--

Reply

Marsh Posté le 09-02-2001 à 18:10:21    

Franchement je l'ai fait  mais j'ai des problème avec les fonction sinus et cosinus il me faudrait un truc pour faire l'adaption des echelle
Merci de votre aide

Reply

Marsh Posté le 09-02-2001 à 18:26:51    

Est ce que tu as fait une reconnaissance syntaxique de ta fonction ( ex f(x) = x²+2x + cos(x) ), car c'est nécessaire pour calculer les valeurs de chacun de tes points.  
 
En ce qui concerne le tracé , c'est très simple il "suffit" de calculer la valeur de ta fonction pour chaque valeur allant de ton x min a ton x max en avancant de p (p etant le pas ).
Mais  pour cela il faut pouvoir évaluer la fonction , et c'est pour ca qu'il faut faut faire une analyse syntaxique ( en supposant la fonction correcte car la correction d'erreur c'est encore plus chiant).
Pour faire l'analyse syntaxique (et lexicale) de ta fonction, le meilleur outil est Yacc (sous linux mais existe aussi sous windows avec djgpp) accompagné de lex pour la reconnaissance lexicale.  
Ce n'est pas evident de se servir de lex et yacc mais une fois que tu sauras comment ca marche, ce sera tres facile de faire la reconnaissance d'une fonction.

Reply

Marsh Posté le 09-02-2001 à 19:58:46    

heu si tu n'as pas acces aux fonctions math.h je rappelle qu'un sinus / cosinus .... peuvent etre defini par un dvpt limité
 
soit :
exp(x) = 1 + x + x²/2 + x^3/3 ...
cosinus(x) = 1 + x²/2 - x^4/4 ...
sinus(x) = x + x^3/3 - x^5/5 ...

Reply

Sujets relatifs:

Leave a Replay

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