🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
7 messages
7 total messages Started by Red Head Sun, 13 Oct 2002 14:58
wiskunde interpreter in vb
#7111
Author: Red Head
Date: Sun, 13 Oct 2002 14:58
7 lines
1218 bytes
Weet iemand waar ik een interpreter , solver kan vinden om wiskundige dingen
op te lossen (liefst in vb)
Zelf ben ik aan een interpreter begonnen maar dit is echt freaky moeilijk.
Als iemand de broncode heeft van een interpreter, dan kan ik die
gebruiken in een grafiekprogramma

users.skynet.be/megaproductions
Re: wiskunde interpreter in vb
#7112
Author: Dominique Devriese
Date: Sun, 13 Oct 2002 15:08
16 lines
1741 bytes
Red Head writes:

> Weet iemand waar ik een interpreter , solver kan vinden om
> wiskundige dingen op te lossen (liefst in vb) Zelf ben ik aan een
> interpreter begonnen maar dit is echt freaky moeilijk.  Als iemand
> de broncode heeft van een interpreter, dan kan ik die gebruiken in
> een grafiekprogramma

misschien kan je "wiskundige dingen" iets meer specifiek omschrijven ?
Er zijn namelijk nogal veel dingen wiskundig...
sjuus
domi


-- 
Expect a letter from a friend who will ask a favor of you.
Re: wiskunde interpreter in vb
#7114
Author: Ludo Joris
Date: Sun, 13 Oct 2002 16:51
19 lines
1600 bytes
1. Zoek met Google naar: evaluate numeric expressions
2. Dit is de oudste vb ref die ik kan vinden:
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q86688
3. Lees een boek over compilerbouw, compilers doen dit voortdurend.

HTH

On Sun, 13 Oct 2002 16:58:55 +0200, "Red Head" <re_dhead@hotmail.com>
wrote:

>Weet iemand waar ik een interpreter , solver kan vinden om wiskundige dingen
>op te lossen (liefst in vb)
>Zelf ben ik aan een interpreter begonnen maar dit is echt freaky moeilijk.
>Als iemand de broncode heeft van een interpreter, dan kan ik die
>gebruiken in een grafiekprogramma
>
>users.skynet.be/megaproductions
>
Re: wiskunde interpreter in vb
#7123
Author: Jack D
Date: Mon, 14 Oct 2002 10:19
14 lines
1662 bytes
Red Head wrote on 13-10-2002 16:58:

> Weet iemand waar ik een interpreter , solver kan vinden om wiskundige dingen
> op te lossen (liefst in vb)
> Zelf ben ik aan een interpreter begonnen maar dit is echt freaky moeilijk.
> Als iemand de broncode heeft van een interpreter, dan kan ik die
> gebruiken in een grafiekprogramma
> 
> users.skynet.be/megaproductions

Als je toegang hebt tot een UNIX systeem, kan je Yacc en Lex gebruiken om op
basis van je taaldefinitie een parser/compiler/interpreter te genereren. Dit
is wel C-code, maar kan al een goeie leidraad zijn om de VB-versie te
implementeren... Anders kan je hem ook steeds in een DLL smijten natuurlijk.
Re: wiskunde interpreter in vb
#7129
Author: Dominique Devriese
Date: Mon, 14 Oct 2002 16:56
26 lines
2211 bytes
Jack D writes:

> Red Head wrote on 13-10-2002 16:58:
>> Weet iemand waar ik een interpreter , solver kan vinden om
>> wiskundige dingen op te lossen (liefst in vb) Zelf ben ik aan een
>> interpreter begonnen maar dit is echt freaky moeilijk.  Als iemand
>> de broncode heeft van een interpreter, dan kan ik die gebruiken in
>> een grafiekprogramma
>>
>> users.skynet.be/megaproductions

> Als je toegang hebt tot een UNIX systeem, kan je Yacc en Lex
> gebruiken om op basis van je taaldefinitie een
> parser/compiler/interpreter te genereren. Dit is wel C-code, maar
> kan al een goeie leidraad zijn om de VB-versie te
> implementeren... Anders kan je hem ook steeds in een DLL smijten
> natuurlijk.

de info-pagina's van yacc en lex zijn vrij goed, mocht je een goede
uitleg erover zoeken...
sjuus
domi

-- 
question = ( to ) ? be : ! be;
		-- Wm. Shakespeare
Re: wiskunde interpreter in vb
#7162
Author: Rudi Breedenraedt
Date: Fri, 18 Oct 2002 12:12
56 lines
2755 bytes
Je kan ook gebruik maken van de Microsoft Script Control. Het voordeel is
dat het heel makkelijk te implementeren is (je moet eigenlijk niks meer
doen, alleen de control gebruiken) en veel krachtiger dan alleen een
"wiskundige interpreter" (je kunt er echt programma's mee laten uitvoeren,
objecten aan doorgeven, etc...).

Ga voor een eenvoudig voorbeeldje als volgt tewerk:
1. Maak een nieuw VB6 programma, op het formulier voeg je een textbox
(Text1) en een command button (Command1) toe.
2. In de VB IDE kies je het Project menu, de References optie en kruis je de
"Microsoft Script Control 1.0" aan (staat ie er niet tussen, kies dan Browse
en zoek naar een bestand msscript.ocx in je System32 folder).
3. Schrijf volgende code:

        Private Sub Command1_Click()
            Dim engine As New MSScriptControl.ScriptControl

            On Error GoTo ErrorHandler
            engine.Language = "VBScript"
            engine.ExecuteStatement "a = 5"
            engine.ExecuteStatement "b = 7"
            engine.ExecuteStatement "c = 12"
            MsgBox engine.Eval(Text1.Text)

        Finally:
            Exit Sub

        ErrorHandler:
            MsgBox "Error in expression : " & engine.Error.Description &
vbNewLine & _
                          "> " & engine.Error.Text, vbCritical
            Resume Finally
        End Sub

Klaar !!!

Je kunt het programma nu testen door in het tekstveldje bv. het volgende op
te nemen:

a + b
    geeft 12 terug
a + b = c
    geeft True terug
sin(a + b) * cos(c)
    geeft -0.45... terug
2 * a + b
    geeft 17 terug
2 * (a + b)
    geeft 24 terug
�(�!�
    geeft een foutmelding "Invalid character"
...

Succes

Rudi
Re: wiskunde interpreter in vb
#6748
Author: Peter S'heeren
Date: Fri, 22 Nov 2002 11:42
29 lines
2442 bytes
Welk type uitdrukking wil je interpreteren? Welke bedoel je, numerieke 
uitdrukking of wiskundige uitdrukking?

De eerste soort is simpel, gewoon een operand stack en een operator 
stack maken, prefix/postfix/binaire operatoren invoeren, prioriteit en 
associativiteit bepalen, operator en operand stacks pushen/pullen en 
uitrekenen. Voorbeelden vind je genoeg op uit internet. Zoek naar iets 
als "expression evaluator" of kijk in de source van een compiler. Voor 
simpele uitdrukkingen eventueel Lexx & Jakkes.

De tweede soort is lelijk moeilijk. Syntactisch evalueren is datgene wat 
we vroeger op school deden: vereenvoudigen, overbrengen, integreren, 
differentieren, ongelijkheden oplossen, enz. Hier beoogt men niet een 
getal als resultaat, maar een andere uitdrukking (kan eventueel met 
getallen uitgerekend worden). Ik zou zeggen: begin er niet aan. Voor dit 
soort zaken schaf je beter een softwarepakket aan, zoals Derive of 
Mathematica.

Red Head wrote:
> Weet iemand waar ik een interpreter , solver kan vinden om wiskundige dingen
> op te lossen (liefst in vb)
> Zelf ben ik aan een interpreter begonnen maar dit is echt freaky moeilijk.
> Als iemand de broncode heeft van een interpreter, dan kan ik die
> gebruiken in een grafiekprogramma
> 
> users.skynet.be/megaproductions
> 
> 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads