Convertisseur rpn algebrique

Soyez le premier à donner votre avis sur cette source.

Vue 7 109 fois - Téléchargée 447 fois

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

Ajouter un commentaire

Commentaires

cs_Joky
Messages postés
1791
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2 -
Ah ca y'est j'ai compris lol :D
J'ai pas trop regarder en faite :)
Saros
Messages postés
921
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
23 septembre 2010
-
T'y es pas :)
Mon programme ne reconnait pas les nombres négatifs, donc pour taper x^(-1), il faut mettre x^(0-1) pour que ça marche, c'est le -1 qui pose problème, pas le x^-1
cs_Joky
Messages postés
1791
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2 -
Bé -1 jusqu'au derniere nouvelle du journal Mathématiques "Les amis de Descartes" est toujours considéré comme négatif lol
Mais x^(-1) c'est négatif que si x est négatif fin bref on s'en fou lol il date quand même ce topic :)
Saros
Messages postés
921
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
23 septembre 2010
-
Non, mais -1 si :)
cs_Joky
Messages postés
1791
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2 -
Euh x^(-1) ce n'est pas un négatif mais bon lol

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.