Eval expression complexe en 15 lignes de code

Soyez le premier à donner votre avis sur cette source.

Vue 4 691 fois - Téléchargée 578 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
24
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
71
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
24
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
345
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
24 juillet 2022
4
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.