Oppure

Loading
07/02/08 20:15
antometal
c'è il modo per far inserire all' utente una funzione matematica in una textbox???
mi spiego cn un sempio...
in una textbox scrivo una funzione, tipo x^2 per poi visualizzarla
aaa
08/02/08 17:34
P4p3r0g4
non esiste qualcosa del genere ma se ci pensi non è impossibile crearlo.(certo no è facile o banale)
devi fare un'analisi testuale sulla funzione e ricavare le operazioni che la compongono e dopo calcolare un bel po di punti.
aaa
08/02/08 18:48
antometal
so che nn è impossibile anzi sarebbete "abbastanza semplice" se ci fossero sl le 4 oprazioni base della matematica (anche le parentesi al limite), ma per inserire calcoli + tosti ce ne vuole
e sicuramente tt cio nn piacerebbe alla cpu

grazie cmq...8-|
aaa
08/02/08 22:35
Shutdown
Sinceramente non credo che sia tanto semplice
effettuare il parsing di operazioni elementari con parentesi... Poi parere mio...

L'espressione
-5+((3*4)/9)-(((8*8)-(7/4))*50)
non è tanto semplice da analizzare... Eppure usa solo le quattro operazioni base e le parentesi...
Ultima modifica effettuata da Shutdown 08/02/08 22:38
aaa
08/02/08 23:51
P4p3r0g4
una volta che hai x (che aumenta progressivamente per tracciare un grafico)
è solo da definire l'ordine delle parentesi.
e ci sono un po di calcoli.
in fin dei conti sono da tradurre "solo" val assoluti logaritmi esponenziali radicali seni coseni somme sottrazioni moltiplicazioni fratte.
tutte funzoni già implementate in vb.
limiti integrali e derivate te li sogni.
aaa
09/02/08 9:39
gantonio
Ma no ... in VB6 puoi farlo abbastanza semplicemente ... ad esempio, per capirci

Dim sc As Object

Private Sub Command1_Click()
    Dim x As Double, y As Double
    
    For x = -3.14 To 3.14 Step 3.14 / 4
        y = sc.Run("Compute", x)
        MsgBox y
    Next x
End Sub

Private Sub Form_Load()
    Dim Code As String
    Dim Fnz As String
    
    Set sc = CreateObject("ScriptControl")
    sc.Language = "VBScript"

    ' Questa e' la stringa con la funzione    
    Fnz = "Sin(arg)^2*Cos(arg)^2"
    
    Code = Code & "Function Compute(arg)" & vbCrLf
    Code = Code & "  Compute=" & Fnz & vbCrLf
    Code = Code & "End Function" & vbCrLf
    
    sc.AddCode Code
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Set sc = Nothing
End Sub
Ultima modifica effettuata da gantonio 09/02/08 17:54
aaa
09/02/08 15:46
P4p3r0g4
gantonio,

WTF.

Ma dove le trovi funzioni del genere?

se ho capito bene crei una istanza vbscript aggiornabile dal programma. una specie di polimorfismo del programma. crei un "sorgente" vbscript che ti svolga le funzioni da string.

-------------------------------
Niente parolacce. :k:
Ultima modifica effettuata da Shutdown 11/02/08 7:24
aaa
09/02/08 17:58
gantonio
Postato originariamente da P4p3r0g4:
Ma dove le trovi funzioni del genere?

Non sono funzionalita' particolari ... anzi, moltissimi programmatori VB le conoscono e le usano ... (mi ricordo di averlo mostrato a dei giovani colleghi tanti anni fa, poco dopo essere stato nominato MVP ...)


se ho capito bene crei una istanza vbscript aggiornabile dal programma. una specie di polimorfismo del programma. crei un "sorgente" vbscript che ti svolga le funzioni da string.

Diciamo che, piu' o meno, e' cosi' ... (ma niente polimorfismo ... )

--------------------------------
Aggiornato messaggio quotato.
Ultima modifica effettuata da Shutdown 11/02/08 7:25
aaa