Saisie d'une expression mathématique

Saisie d'une expression mathématique - C - Programmation

Marsh Posté le 26-11-2005 à 15:29:22    

Bonjour all !!
 
J'ai une étude de cas a faire et je vais vous la présenter:
En fait je dois réaliser une calculette si on veut qui gere +,-,*,/,%.
Pour cela l'utilisateur doit saisir une expression dont je dois vérifier si la syntaxe est correcte et ensuite transformer cette expression en postfixée pour finalement la calculer.
 
Thème principale: Pile, File , Liste et Map.
 
J'ai niveau assez bas en programmation en C c'est important de le dire :D
 
Je voudrai savoir si vous pouviez m'aider sur comment saisir une expression mathématique (dont on ne connait pas la longueur a l avance) et comment vérifier que cette dernière est correct syntaxiquement !! (par ex: pas de 8++9*/2)
 
Merci d'avance :D

Reply

Marsh Posté le 26-11-2005 à 15:29:22   

Reply

Marsh Posté le 26-11-2005 à 16:19:49    

CocoRambo a écrit :

J'ai une étude de cas a faire et je vais vous la présenter:
<snip 0 lignes de code, pas une trace d'algorithme ...>
J'ai niveau assez bas en programmation en C c'est important de le dire :D


Je te vois venir. Combien tu payes ?  
 
Sinon, poste ton code...


Message édité par Emmanuel Delahaye le 26-11-2005 à 16:22:00

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 26-11-2005 à 16:34:22    

Si tout les gars qui demandent ca s'y mettaient ensemble, y'a une chance qu'ils y arrivent ?


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 26-11-2005 à 18:08:14    

Je ne demande pas du tout la solution !!
La seule chose que je veux c'est une orientation pour faire mes recherches ;)
 
Merci d'avance !!

Reply

Marsh Posté le 26-11-2005 à 18:09:47    

0x90 a écrit :

Si tout les gars qui demandent ca s'y mettaient ensemble, y'a une chance qu'ils y arrivent ?


 
Je suis désolé si le sujet a déjà été posté mais j'ai tout de même penser à faire des recherches avant et je suis tombé sur des trucs concernant la transformation en postfixé mais rien sur la saisie d'une expression de taille inconnue... (Surement les mauvais terme lors de ma recherche :))

Reply

Marsh Posté le 26-11-2005 à 19:10:53    

CocoRambo a écrit :

Je ne demande pas du tout la solution !!
La seule chose que je veux c'est une orientation pour faire mes recherches ;)


C'est d'abord un problème d'algorithme et de structure de données.
 
Le bon forum est "algo"
 
 
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 26-11-2005 à 19:20:45    

CocoRambo a écrit :

Bonjour all !!
 
J'ai une étude de cas a faire et je vais vous la présenter:
En fait je dois réaliser une calculette si on veut qui gere +,-,*,/,%.
Pour cela l'utilisateur doit saisir une expression dont je dois vérifier si la syntaxe est correcte et ensuite transformer cette expression en postfixée pour finalement la calculer.


Si la notation de la calculette n'est pas imposée, utilise le RPN :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 27-11-2005 à 01:45:17    

CocoRambo a écrit :

...mais rien sur la saisie d'une expression de taille inconnue...


 
Si t'es sous Linux, t'as la fonction "getline" qui te permet de saisir un texte virtuellement infini.
Cette fonction te renvoie le nb d'octets saisis. En fin de traitement, tu devras libérer la mémoire par un "free".
Concrètement, cela se présente ainsi:

Code :
  1. char *texte=NULL;
  2. size_t taille_du_texte=0;
  3. size_t nb_car;
  4. nb_car=getline(&texte, &taille_du_texte, stdin);
  5. ...
  6. traitement du texte saisi et stocké dans la variable "texte" - la variable "taille_du_texte" contient la taille allouée à la variable "texte" et la variable "nb_car" contient le nb de caractères saisis...
  7. ...
  8. ...
  9. free(texte)


Message édité par Sve@r le 27-11-2005 à 01:46:01

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 27-11-2005 à 11:01:49    

Merci à toi Sve@r :D
Je suis sous linux effectivement ;) Je vais tester ca !

Reply

Sujets relatifs:

Leave a Replay

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