Eval expression complexe en 15 lignes de code

Soyez le premier à donner votre avis sur cette source.

Vue 4 912 fois - Téléchargée 627 fois

Description

Permet d'évaluer en direct une expression arythmétique complexe sans automate, sans pile, sans classes, sans extraire de tokens ect... Il suffit d'appeler le moteur d'évaluation javascript depuis le code c/c++.

Source / Exemple :


// 1 : saisie de l'expression (syntaxe intuitive puisque la même que le C).

// 2 : passe l'expression (chaine de caractères) au moteur d'évaluation javascript

// 3 : utilise le résulat !

Conclusion :


Donc on saisie une expression avec n'importe quels opérateurs (opérateurs binaires, imbriquation multiples de parenthèses ect..), on peut mélanger le format hexa, octal et décimal, on peut ajouter des fonctions ou des variables, puis on récupère simplement le résultat. Voir les 4 exemples fournis.

Je travaille sur un interpréteur SQL qui doit bien sur gérer les expressions arythmétiques une fois les expressions de champs numérique réduites. En mettant le nez dedans, j'ai trouvé cela trop complexe à implémenter (automates, pile, imbriquations infini ect...),d'ou le moyen détourné suivant, qui est un peu "de la triche" mais qui garanti l'efficacité et la justesse des résultats. En C# j'aurais utilisé la compilation dynamique qui permet le même genre de chose, mais en c/c++ cela n'existe pas.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 25
20 juin 2012 à 17:17
Sur, Renfield !
Pour ceux qui auraient des doutes,
ce code est à proscrire pour un "vrai" projet commercial...

bye...
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 75
18 juin 2012 à 14:39
"mais qui garanti l'efficacité et la justesse des résultats"

mais pas la portabilité ^^
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 25
31 mai 2012 à 13:26
Merci de l'intérèt que tu portes à l'orthographe, j'ai failli faire une "arythmie" cardiaque en me relisant.

Bye...
pgl10 Messages postés 371 Date d'inscription samedi 18 décembre 2004 Statut Membre Dernière intervention 18 septembre 2023 9
31 mai 2012 à 09:36
C'est très bien et instructif. Simplement deux remarques : 1°) arithmétique et non pas arythmétique 2°) J'ai ajouté pour moi un exemple vide d'expression dans les tests pré écris pour faciliter la saisie d'une expression nouvelle avec un copier-coller.

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.