FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
DLL EVAL : Evaluation d'expressions mathématiques Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
DLL EVAL : Evaluation d'expressions mathématiques Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
DLL EVAL : Evaluation d'expressions mathématiques Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
DLL EVAL : Evaluation d'expressions mathématiques Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
DLL EVAL : Evaluation d'expressions mathématiques Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
DLL EVAL : Evaluation d'expressions mathématiques Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
DLL EVAL : Evaluation d'expressions mathématiques Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
DLL EVAL : Evaluation d'expressions mathématiques Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
DLL EVAL : Evaluation d'expressions mathématiques Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
DLL EVAL : Evaluation d'expressions mathématiques Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
DLL EVAL : Evaluation d'expressions mathématiques Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
DLL EVAL : Evaluation d'expressions mathématiques Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
DLL EVAL : Evaluation d'expressions mathématiques Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
DLL EVAL : Evaluation d'expressions mathématiques Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
DLL EVAL : Evaluation d'expressions mathématiques Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -14%
Lave-linge hublot HOOVER HWP 10 kg (Induction, 1600 ...
Voir le deal
299.99 €

 

 DLL EVAL : Evaluation d'expressions mathématiques

Aller en bas 
5 participants
AuteurMessage
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

DLL EVAL : Evaluation d'expressions mathématiques Empty
MessageSujet: DLL EVAL : Evaluation d'expressions mathématiques   DLL EVAL : Evaluation d'expressions mathématiques EmptyJeu 30 Sep 2010 - 16:55

Cette DLL permet d'évaluer une expression mathématique passée sous forme de chaîne de caractères.

Code:

dll_on "eval.dll"

dim x, i%, variable$, expression$, result

i% = dll_call0("InitFunc")

print i%, " fonctions initialisées dans la DLL EVAL"

variable$ = "x"
x = rnd(1)

i% = dll_call2("SetVariable", adr(variable$), adr(x))

print
print "Nom de la variable : ", variable$
print "Numéro d'ordre    : ", i%
print "Valeur            : ", x

expression$ = "cos(x)^2 + sin(x)^2"

i% = dll_call2("Eval", adr(expression$), adr(result))

print
print "Expression    : ", expression$
print "Resultat      : ", result
print "Code d'erreur : ", i%

dll_off

end

A télécharger ici:
http://www.unilim.fr/pages_perso/jean.debord/tpmath/eval.zip
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

DLL EVAL : Evaluation d'expressions mathématiques Empty
MessageSujet: Re: DLL EVAL : Evaluation d'expressions mathématiques   DLL EVAL : Evaluation d'expressions mathématiques EmptyJeu 30 Sep 2010 - 17:16

Intéressant, merci !
J'ai vu ton site, c'est du costaud, pas à la portée du premier venu !

Tiens, je remarque une autre chose intéressante également, c'est l'apparition (c'est nouveau) d'un ascenseur dans les codes présentés sur le forum, ça évitera les codes kilométriques au détriment des commentaires.
Revenir en haut Aller en bas
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

DLL EVAL : Evaluation d'expressions mathématiques Empty
MessageSujet: Re: DLL EVAL : Evaluation d'expressions mathématiques   DLL EVAL : Evaluation d'expressions mathématiques EmptyVen 1 Oct 2010 - 10:15

Merci de ton intérêt JL35 Smile

Voici un exemple plus "parlant" : une petite calculatrice avec ici 4 variables (mais on peut aller jusqu'à 26)

Code:

dim i%, variable$, expression$, value, result
label On_Click_Button_13

left 0,225
top 0,200
width 0,470
height 0,225
caption 0,"Calculatrice"
 
alpha 1
left 1,20
top 1,20
caption 1,"Variables :"

alpha 2
left 2,20
top 2,50
width 2,27
height 2,20
caption 2,"A = "

edit 3
left 3,50
top 3,50
text 3, "1"

alpha 4
left 4,20
top 4,80
width 4,28
caption 4,"B = "

edit 5
left 5,50
top 5,80
text 5, "2"

alpha 6
left 6,20
top 6,110
width 6,29
caption 6,"C = "

edit 8
left 8,50
top 8,110
text 8, "3"

alpha 9
left 9,20
top 9,140
width 9,29
caption 9,"D = "

edit 10
left 10,50
top 10,140
text 10, "4"

alpha 11
left 11,220
top 11,20
width 11,170
caption 11,"Saisissez une formule, puis cliquez sur Evaluer :"

edit 12
left 12,220
top 12,50
width 12,225
text 12, "A + B + C + D"

button 13
left 13,261
top 13,90
width 13,140
caption 13,"Evaluer"
on_click 13, On_Click_Button_13

alpha 14
left 14,220
top 14,140
width 14,62
caption 14,"Résultat = "

edit 15
left 15,290
top 15,140
width 15,150
text 15,""

dll_on "eval.dll"
i% = dll_call0("InitFunc")

end

On_Click_Button_13:

  variable$ = "A" : value = val(text$(3))
  i% = dll_call2("SetVariable", adr(variable$), adr(value))
 
  variable$ = "B" : value = val(text$(5))
  i% = dll_call2("SetVariable", adr(variable$), adr(value))

  variable$ = "C" : value = val(text$(8))
  i% = dll_call2("SetVariable", adr(variable$), adr(value))
 
  variable$ = "D" : value = val(text$(10))
  i% = dll_call2("SetVariable", adr(variable$), adr(value))

  expression$ = text$(12)
 
  i% = dll_call2("Eval", adr(expression$), adr(result))

  text 15, str$(result)
return

La DLL est basée sur un programme publié il y a quelques années sur le forum FreeBASIC. Je l'ai juste un peu modifié et simplifié pour l'adapter à Panoramic. Il n'y a que 3 fonctions exportées : InitFunc, SetVariable et Eval. Les exemples montrent comment appeler ces fonctions.

La documentation est en anglais mais cela ne devrait pas poser de problèmes car en pratique on ne la consultera que pour avoir la liste des opérateurs et des fonctions mathématiques disponibles.
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

DLL EVAL : Evaluation d'expressions mathématiques Empty
MessageSujet: Re: DLL EVAL : Evaluation d'expressions mathématiques   DLL EVAL : Evaluation d'expressions mathématiques EmptyVen 1 Oct 2010 - 14:37

Je confirme, ton exemple est intéressant, même pour de l'algèbre ou de la trigo élémentaires, et ça ouvre des horizons pour aller plus loin. Je vais me rajouter un petit bouton pour afficher la liste des opérateurs et des fonctions, pour mémoire.
Revenir en haut Aller en bas
Invité
Invité




DLL EVAL : Evaluation d'expressions mathématiques Empty
MessageSujet: Re: DLL EVAL : Evaluation d'expressions mathématiques   DLL EVAL : Evaluation d'expressions mathématiques EmptyVen 1 Oct 2010 - 15:01

Je viens de faire un petit teste.
Bon travail.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

DLL EVAL : Evaluation d'expressions mathématiques Empty
MessageSujet: Re: DLL EVAL : Evaluation d'expressions mathématiques   DLL EVAL : Evaluation d'expressions mathématiques EmptyVen 1 Oct 2010 - 18:49

Ce qui m'impressione avec les DLL c'est que le code panoramic est réduit à sa plus simple expression.

Voila une calculette bien pratique.

J'ai fait un petit tour sur ton site et j'ai regardé WinReg Version 3.3 (juste la présentation), Heu... Ben La Ché pa quoi dir.

Tu l'as dit JL35: c'est du costaud, pas à la portée du premier venu !

Je me sent tout petit Very Happy
Revenir en haut Aller en bas
Invité
Invité




DLL EVAL : Evaluation d'expressions mathématiques Empty
MessageSujet: Re: DLL EVAL : Evaluation d'expressions mathématiques   DLL EVAL : Evaluation d'expressions mathématiques EmptyVen 1 Oct 2010 - 19:17

Une question certainement idiote de ma part. Je vais sur ce site la plupart du temps rapidement par manque de temps. Il est où le site de Jean Debord?
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

DLL EVAL : Evaluation d'expressions mathématiques Empty
MessageSujet: Re: DLL EVAL : Evaluation d'expressions mathématiques   DLL EVAL : Evaluation d'expressions mathématiques EmptyVen 1 Oct 2010 - 20:29

Je l'ai trouvé avec google en tapant jean debord....
A+
Revenir en haut Aller en bas
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

DLL EVAL : Evaluation d'expressions mathématiques Empty
MessageSujet: Re: DLL EVAL : Evaluation d'expressions mathématiques   DLL EVAL : Evaluation d'expressions mathématiques EmptySam 2 Oct 2010 - 10:25

Bonjour à tous et merci encore pour votre intérêt Smile

La page principale de mon site est la suivante :

http://www.unilim.fr/pages_perso/jean.debord/index.htm

Il n'y a pas grand-chose sur Panoramic pour le moment (juste un lien !). Je vais m'efforcer de combler ce manque et notamment de faire une version française des articles que j'ai publiés dans "Back 2 Basic".

Quand à WinReg, il est écrit en Delphi avec une DLL tableur qui était fournie par Borland à l'époque de Delphi 1. Malheureusement cette DLL n'existe qu'en version 16 bits.

Mon but à long terme serait d'adapter à Panoramic (sous forme de DLL) les sous-programmes de calcul mathématiques que j'ai faits pour FreeBASIC et Delphi. Il y a encore pas mal de problèmes à résoudre, notamment pour ce qui concerne le passage des tableaux et des fonctions.
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

DLL EVAL : Evaluation d'expressions mathématiques Empty
MessageSujet: +++   DLL EVAL : Evaluation d'expressions mathématiques EmptySam 2 Oct 2010 - 12:50

Fabuleux, ces dll !
Décidément, il faudra que je m'y colle
quand j'aurai plus de temps !
alien
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

DLL EVAL : Evaluation d'expressions mathématiques Empty
MessageSujet: Re: DLL EVAL : Evaluation d'expressions mathématiques   DLL EVAL : Evaluation d'expressions mathématiques EmptyMar 12 Oct 2010 - 10:46

Une autre DLL, proposée par un membre du forum FreeBASIC :

http://www.unilim.fr/pages_perso/jean.debord/tpmath/evalpan.zip

Celle-ci a les fonctions hyperboliques, que je vais devoir ajouter à ma DLL si je veux rester dans la course Smile
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

DLL EVAL : Evaluation d'expressions mathématiques Empty
MessageSujet: Re: DLL EVAL : Evaluation d'expressions mathématiques   DLL EVAL : Evaluation d'expressions mathématiques EmptyMar 12 Oct 2010 - 14:13

Effectivement, ça ajoutera un intérêt supplémentaire.

Pardon si je m'incruste jean_debord, mais je ne veux pas ouvrir un topic uniquement pour ça: le calcul de pi.
Je ne connaissais que la série de MacLaurin:
pi = 4*(1-1/3+1/5-1/7+1/9...)
dont la convergence est très lente, mais j'ai trouvé sur un autre forum (FB Very Happy ) une formule dont la convergence est très rapide (Formule de Bailey, Borwein et Plouffe):
Code:
Dim i%, pi, x1, x2, x3, x4
pi = 0
For i% = 0 to 10
    x1 = 4/(8*i%+1)
    x2 = -2/(8*i%+4)
    x3 = -1/(8*i%+5)
    x4 = -1/(8*i%+6)
    pi = pi + (1/power(16,i%))*(x1 + x2 + x3 + x4)
    print i%;": "; pi
next i%
end
Évidemment, dans un programme il sera beaucoup plus simple d'écrire pi = 4*ATN(1)

Pour ceux que ça intéresse: http://fr.wikipedia.org/wiki/Formule_BBP bon courage ! Very Happy
Revenir en haut Aller en bas
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

DLL EVAL : Evaluation d'expressions mathématiques Empty
MessageSujet: Re: DLL EVAL : Evaluation d'expressions mathématiques   DLL EVAL : Evaluation d'expressions mathématiques EmptyMar 12 Oct 2010 - 14:46

Oui j'ai vu ce message aussi dans le forum FB Smile

J'ai un peu modifié le programme pour éviter des calculs inutiles. Cette version devrait être plus rapide (mais je n'ai pas vérifié).

Code:

Dim i%, j%, k%, pi, x1, x2, x3, x4

pi = 3.133333333333333
k% = 16

For i% = 1 to 10
    j% = 8 * i%
    x1 = 4/(j%+1)
    x2 = -2/(j%+4)
    x3 = -1/(j%+5)
    x4 = -1/(j%+6)
    pi = pi + (x1 + x2 + x3 + x4) / k%
    k% = k% * 16
    print i%;": "; pi
next i%

print
print 4 * atn(1)  : ' pour vérifier

end
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

DLL EVAL : Evaluation d'expressions mathématiques Empty
MessageSujet: Re: DLL EVAL : Evaluation d'expressions mathématiques   DLL EVAL : Evaluation d'expressions mathématiques EmptyMar 12 Oct 2010 - 17:45

bonjour à tous !

moi, je connaissais cette formule : Very Happy
Code:

Que j'aime à faire apprendre ce nombre utile aux sages !    3 1 4 1 5 9 2 6 5 3 5
Immortel Archimède, artiste ingénieur,                          8 9 7 9
Qui de ton jugement peut priser la valeur ?    3 2 3 8 4 6 2 6
Pour moi, ton problème eut de pareils avantages.    4 3 3 8 3 2 7 9
Jadis, mystérieux, un problème bloquait    5 0 2 8 8
Tout l'admirable procédé, l'œuvre grandiose    4 1 9 7 1 6 9
Que Pythagore découvrit aux anciens Grecs.    3 9 9 3 7 5
0 quadrature ! Vieux tourment du philosophe    1 0 5 8 2 9
Insoluble rondeur, trop longtemps vous avez    9 7 4 9 4 4
Défié Pythagore et ses imitateurs.    5 9 2 3 0
Comment intégrer l'espace plan circulaire ?    7 8 1 6 4 0
Former un triangle auquel il équivaudra ?    6 2 8 6 2 0
Nouvelle invention : Archimède inscrira    8 9 9 8
Dedans un hexagone ; appréciera son aire    6 2 8 0 3 4
Fonction du rayon. Pas trop ne s'y tiendra :    8 2 5 3 4 2 1 1 7
Dédoublera chaque élément antérieur ;    0 6 7 9
Toujours de l'orbe calculée approchera ;    8 2 1 4 8 0
Définira limite ; enfin, l'arc, le limiteur    8 6 5 1 3 2 8
De cet inquiétant cercle, ennemi trop rebelle    2 3 0 6 6 4 7
Professeur, enseignez son problème avec zèle    0 9 3 8 4 4
déjà avec les 4 premières lignes, cela fait pas mal de décimales...
tongue
Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

DLL EVAL : Evaluation d'expressions mathématiques Empty
MessageSujet: Re: DLL EVAL : Evaluation d'expressions mathématiques   DLL EVAL : Evaluation d'expressions mathématiques EmptyMar 12 Oct 2010 - 18:35

Je connaissais effectivement les 4 premières lignes, mais dans la pratique la 1ère doit suffire largement dans la grande majorité des cas.
Et puis... les lignes suivantes ne riment pas ??? ça enlève beaucoup de leur intérêt...

@jean_debord, ta formulation doit effectivement être plus rapide, mais ce n'est pas visible à l'oeil nu... Very Happy
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

DLL EVAL : Evaluation d'expressions mathématiques Empty
MessageSujet: Re: DLL EVAL : Evaluation d'expressions mathématiques   DLL EVAL : Evaluation d'expressions mathématiques EmptyMar 12 Oct 2010 - 19:00

oui en effet,
C'est pas flagrant...
faudrait avoir un compteur de base de temps. (le truc doit durer quelques nanos, donc cela risque d'être dur !) Wink
pour pouvoir afficher ensuite le delta....
Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

DLL EVAL : Evaluation d'expressions mathématiques Empty
MessageSujet: Re: DLL EVAL : Evaluation d'expressions mathématiques   DLL EVAL : Evaluation d'expressions mathématiques EmptyMar 12 Oct 2010 - 23:57

Et puis... c'est une opération qui ne se fait évidemment qu'une fois (pas dans une boucle !), alors on n'est pas à quelques nanosecondes près.
Revenir en haut Aller en bas
Contenu sponsorisé





DLL EVAL : Evaluation d'expressions mathématiques Empty
MessageSujet: Re: DLL EVAL : Evaluation d'expressions mathématiques   DLL EVAL : Evaluation d'expressions mathématiques Empty

Revenir en haut Aller en bas
 
DLL EVAL : Evaluation d'expressions mathématiques
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» DLL EVAL : Nouvelle version
» KGF_dll - nouvelles versions
» bug FNC : pb d'évaluation dans une boucle
» Bases mathématiques du graphisme à 3 dimensions
» Bases mathématiques du graphisme à 2 dimensions

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: