Convertisseur rpn algebrique

Description

C'est mon premier vrai projet en C++ alors soyez indulgent ^^
C'est un convertisseur d'écriture mathématique : Ecriture algébrique vers notation polonaise inversée et vice versa.
J'invite ceux qui ne savent pas ce qu'est la notation polonaire inversée à chercher sur Google, je suis un bien piètre pédagogue sur ce niveau-là...
Donc voilà, c'est tout :)

POUR CEUX QUI ONT LA FLEMME DE TELECHARGER LE ZIP ET QUI ONT PLUTOT SOIF DE .EXE, C'EST PAR LA :
http://www.chez.com/topila/rpnconvert.exe

Source / Exemple :


// Perso j'aime pas trop quand il y a beaucoup de lignes de codes sur une page, donc voyez le zip :)

Conclusion :


Il fonctionne en mode console. Le code est commenté.
Je me suis inspiré, pour le fonctionnement, de ma calculatrice (TI 92+, AMS 2.08 ou 9 je sais plus).
Je n'ai pas mis de protection contre les erreurs de syntaxe et le bêtises dans le genre et je vous préviens que le maniement des pointeurs dans le programme est loin d'être parafait... Faites attention à ce que vous ecrivez, quoi :)
Sinon, la transcription est entièrement fonctionnelle, elle gère les opération binaires '+', '-', '/', '*' et '^' ainsi que les fonctions étendues (ie de la forme "[nom]([arguments])"), et vous pouvez en rajouter autant que vous voulez (voyez le code, j'ai écrit une note pour).
Pour la conversion RPN vers écriture algébrique, écrivez toutes les fonction étendues avec f_ devant (ex f_cos, f_sum, etc).
La chaîne obtenue n'est pas simplifiée, vous pourrez par exemple avoir cos((1+2)) au lieu de cos(1+2).
Pour la conversion écriture algébrique vers RPN, faites l'impasse sur tout ce qui est implicite dans l'écriture, sauf le ^1 et le /1.
Par exemple, écrivez 4*x et non 4x, (a+b)*(c+d) et non (a+b)(c+d).
Encore une chose : j'ai fait ce programme un peu à la rache et il se peut que des petites (grosses ?) erreurs se soient glissées...
Merci de laisser un commentaire !

Et puis j'ai mis débutant parce que c'est une de mes premières sources, mais je ne sais pas trop ce que ça vaut...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.