calculatrice textuelle

calculatrice textuelle - C - Programmation

Marsh Posté le 16-02-2012 à 09:20:43    

Salut tout le monde
 
 
 
j'ai un mini-projet en informatique dont la programmation est sous Dev-C++. Ce programme consiste à faire un programme d'une calculatrice textuelle qui reçoit à une chaîne de caractères à la saisie par le clavier et le résultat sera affiché en toute lettre
 
exemple:
(40*30)+(20*4) = 1281 => ‘’mille-deux-cent-quatre-vingt’’
 
je sais même pas comment commencer
SVP aidez-moi et merci d'avance.
 
 
voir l’énoncé complet en attachement
 
http://www.developpez.net/forums/d [...] ost6509608

Reply

Marsh Posté le 16-02-2012 à 09:20:43   

Reply

Marsh Posté le 16-02-2012 à 12:31:40    

Pour commencer, découpe ce que tu as à faire en phases indépendantes:
a) Lecture de la chaîne en entrée et découpage en une suite de constituants (analyse lexicale) qui sont soit des symboles (PLUS, PARENTHESE_OUVRANTE...) soit des nombres.
b) un système qui te permet a partir d'une suite de symboles et de nombres de calculer la valeur résultat (ou indiquer une erreur en entrée), avec un automate et une pile.
c) conversion d'un nombre en texte et affichage.
 
Le b) étant la partie la plus complexe, il vaut mieux le garder pour la fin.
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 16-02-2012 à 13:30:27    

Pour le b), faire un arbre...
 
Qq articles à lire pour t'aider :
http://fr.wikipedia.org/wiki/Analyse_syntaxique
http://fr.wikipedia.org/wiki/Arbre_syntaxique
 
Ton cas spécifique :  
http://fr.wikipedia.org/wiki/Langa [...] _inambigus


Message édité par rufo le 16-02-2012 à 14:11:46

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 16-02-2012 à 14:30:53    

Pour le b, tant qu'on reste dans le cas d'une calculette, une simple pile avec les bonnes règles de dépilage ça peut suffire.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 16-02-2012 à 16:08:01    

Pour le point b, on peut aussi utiliser l'algorithme du Shunting-Yard (http://en.wikipedia.org/wiki/Shunting-yard_algorithm): ça évite d'avoir recourt à l'artillerie lourde comme lex/yacc. J'en avais donné un exemple d'implémentation, il me semble, la flemme de faire une recherche :-(


Message édité par tpierron le 16-02-2012 à 16:08:17
Reply

Marsh Posté le 16-02-2012 à 18:37:27    

Oui, c'est exactement le procédé auquel je pensais. Je ne savais pas qu'un tel procédé portait ce nom.
Il y a que le cas du - unaire auquel il faut faire un peu gaffe quand il est devant un parenthèsage.
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 19-02-2012 à 14:46:30    

merci les amis pour les informations mais moi je veux utiliser les arbres  
alors que je vais procéder ?

Reply

Marsh Posté le 19-02-2012 à 16:18:23    

Rufo t'a donné les indications, maintenant on attend ton code pour t'aider à le corriger, mais on ne l'écrira pas à ta place.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

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