calculatrice textuelle - C - Programmation
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+,
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
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+,
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 :-(
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+,
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 ?
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+,
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