OVH Cloud OVH Cloud

Calculer une expression mathématique (string)

4 réponses
Avatar
Pascal B.
Bonjour à tous,

Je cherche une fonction (ou autre) qui me renvoi le résultat d'une String représantant une expression mathématique.
Exemples:

x = FuncMath("10 + 20")
x = FuncMath("Cos(30) ^2 + Sin(60)^2")


Merci
Pascal

4 réponses

Avatar
François Picalausa
Bonjour/soir,

La manière la plus simple de procéder est d'employer le Microsoft Script
Control.
A partir de là, un appel à la fonction Eval suffira.
(voir
http://msdn.microsoft.com/downloads/list/webdev.asp
et
http://www.microsoft.com/mind/0799/script/script.asp )

Une autre possibilité est de coder un parseur d'expression tel que celui
sur:
http://www.softcircuits.com/sw_vbsrc.htm

Il existe une troisième possibilité pouvant poser des problèmes (à la
compilation, il me semble) qui n'est ni documentée ni supportée qu'est
l'utilisation de EbExecuteLine.
Je te déconseille l'utilisation de cette dernière méthode... si toutefois tu
veux l'utiliser, je te conseille de fouille les arhives de ce groupe à
l'aide de http://groups.google.com

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Pascal B." <pascbr{_AROBASE_}hotmail{_POINT_}com> a écrit dans le
message de news:Of%
Bonjour à tous,

Je cherche une fonction (ou autre) qui me renvoi le résultat d'une
String représantant une expression mathématique. Exemples:

x = FuncMath("10 + 20")
x = FuncMath("Cos(30) ^2 + Sin(60)^2")


Merci
Pascal


Avatar
Fabien Bigot
Utilise la fonction Cint(String)
"François Picalausa" a écrit dans le message de
news:
Bonjour/soir,

La manière la plus simple de procéder est d'employer le Microsoft Script
Control.
A partir de là, un appel à la fonction Eval suffira.
(voir
http://msdn.microsoft.com/downloads/list/webdev.asp
et
http://www.microsoft.com/mind/0799/script/script.asp )

Une autre possibilité est de coder un parseur d'expression tel que celui
sur:
http://www.softcircuits.com/sw_vbsrc.htm

Il existe une troisième possibilité pouvant poser des problèmes (à la
compilation, il me semble) qui n'est ni documentée ni supportée qu'est
l'utilisation de EbExecuteLine.
Je te déconseille l'utilisation de cette dernière méthode... si toutefois


tu
veux l'utiliser, je te conseille de fouille les arhives de ce groupe à
l'aide de http://groups.google.com

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Pascal B." <pascbr{_AROBASE_}hotmail{_POINT_}com> a écrit dans le
message de news:Of%
> Bonjour à tous,
>
> Je cherche une fonction (ou autre) qui me renvoi le résultat d'une
> String représantant une expression mathématique. Exemples:
>
> x = FuncMath("10 + 20")
> x = FuncMath("Cos(30) ^2 + Sin(60)^2")
>
>
> Merci
> Pascal




Avatar
François Picalausa
Hello,

Cint calcule une expression numérique....
Mais Val est encore plus approprié.
Seul problème, c'est que si tu as un + - * / ce ne sera pas reconnu.
La question précisait:
Exemples:
x = FuncMath("10 + 20")



--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Fabien Bigot" a écrit dans le message de
news:%
Utilise la fonction Cint(String)


Avatar
Pascal B.
Merci Francois.

Finalement, j'ai opté pour le parseur d'expression (de softcircuit)
parce que j'ai le code source et ainsi le personalisé à mes besoins.

Pascal.


"François Picalausa" a écrit dans le message de news:
| Bonjour/soir,
|
| La manière la plus simple de procéder est d'employer le Microsoft Script
| Control.
| A partir de là, un appel à la fonction Eval suffira.
| (voir
| http://msdn.microsoft.com/downloads/list/webdev.asp
| et
| http://www.microsoft.com/mind/0799/script/script.asp )
|
| Une autre possibilité est de coder un parseur d'expression tel que celui
| sur:
| http://www.softcircuits.com/sw_vbsrc.htm
|
| Il existe une troisième possibilité pouvant poser des problèmes (à la
| compilation, il me semble) qui n'est ni documentée ni supportée qu'est
| l'utilisation de EbExecuteLine.
| Je te déconseille l'utilisation de cette dernière méthode... si toutefois tu
| veux l'utiliser, je te conseille de fouille les arhives de ce groupe à
| l'aide de http://groups.google.com
|
| --
| François Picalausa (MVP VB)
| FAQ VB : http://faq.vb.free.fr
| MSDN : http://msdn.microsoft.com
|
|
| "Pascal B." <pascbr{_AROBASE_}hotmail{_POINT_}com> a écrit dans le
| message de news:Of%
| > Bonjour à tous,
| >
| > Je cherche une fonction (ou autre) qui me renvoi le résultat d'une
| > String représantant une expression mathématique. Exemples:
| >
| > x = FuncMath("10 + 20")
| > x = FuncMath("Cos(30) ^2 + Sin(60)^2")
| >
| >
| > Merci
| > Pascal
|
|