Les deux fichiers .as contiennent les objets permettant le passage d'une expression mathématique classique (infixée) par ex 3*(4+5) en notation polonaise inversée 3 4 5 + * plus facile à évaluer en programmation et qui n'est pas ambigue (contrairement aux apparences) car par ex, l'addition a 2 opérandes qui sont donc forcément 4 et 5
Après ce passage en polonaise inversée, l'expression est calculée dans ce source
Le fichier fla est une interface sommaire permettant de tester les calculs
Le tout est compatible en as2, mais ne devrait pas être trop difficile à faire évoluer en as3
Les objets comprennent un certain nombre de fonctions et des expressions comme :
5 + (3 * 4^5) ou 5 - 2* exp(-3) ou asin(0.5)(en radians) sont reconnues et calculées
Source / Exemple :
Il s'agit d'une transcription partielle d'un source en Delphi pris sur http://www.delphifr.com//code.aspx?ID=45846
Ce source semble d'ailleurs une adaptation réussie d'un source de la défunte revue Pascalissime
J'ai pas mal d'expérience en delphi et pascal mais je suis un néophyte en actionscript
C'est donc pour progresser en actionscript que j'ai fait cette transcription
Le source des objets est assez long (+ de 500 lignes) et technique mais j'ai essayé de le commenter correctement
Enfin je n'ai pas eu le temps et le besoin d'implémenter la partie "constante" qui permet de calculer des f(x) par ex, mais il reste des traces dans le source
Conclusion :
Pour les experts en as, désolé pour les maladresses (par ex, de nombreux return sont inutiles) mais je compte sur vos conseils pour progresser
un grand merci à tout ceux qui ont travaillé sur ce code.
Ca ma super bien servi.
http://www.flashapi.org/spas3.html
(version finale quand j'aurrais le temps)
>> gestion d'erreurs:
on peu maintenant changer la langue.
j'ai pas fini l'implémentation des erreurs, et y'a qq petits trucs à revoir (il me semble que la puissance d'un nombre fractionnaire négatif existe!)
http://www.flashapi.org/temp/RPN.zip
je dois finir checkExp, et l'idée d'avoir la boucle pour tokenizer et l'algorythme de la npi séparés ne me convient pas. je pense qu'on doit pouvoir les combiner.
enfin, la gestoin des erreurs est différente, mais encore dans ma tête ;)
note: il semble que Stingg.indexof soit 100 fois plus rapide que les regexp. ! ! ? ?
du coup j'ai codé la totalité (plus simple de le faire que de l'expliquer)
j'ai juste 1 ou 2 truc à corriger, et je poste le lien.
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.