Eval expression complexe en 15 lignes de code

Soyez le premier à donner votre avis sur cette source.

Vue 4 023 fois - Téléchargée 492 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

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

bye...
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
"mais qui garanti l'efficacité et la justesse des résultats"

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

Bye...
Messages postés
314
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
12 juin 2020
2
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.