Mathematischen code ausführen

openeye

Grünschnabel
hi,

ich mache gerade meine ersten versuche mit einem taschenrechner.

ich hab ein label und eine deaktiviertes textfeld.

in dem label soll alles ausgegeben werden, was auf dem taschenrechner eingegeben wird.

im textfeld soll immer direkt das zwischenergebnis gegeben werden.

wie stelle ich es nun an, dass ich mathematischen code ausführen kann?

ich habe z.b.

Code:
Private Sub cmddiv_Click()
lblshow.Caption = lblshow.Caption & cmddiv.Caption
num = Val(txtNum.Text)
txtNum.Text = " "
txtNum.Text = num
End Sub

jedoch ist txtNum.Text am ende genau das selbe wie vorher. nicht das ausgerechnete ergebnis.

ich würd mich über hilfe freuen!

danke!

viele grüße

openeye
 
Meinst du mit mathematischem Code dass der Anwender zum Bespiel folgendes eingibt und von diesem Term dann das Ergebnis berechnet werden soll?
Code:
3 + 9 : 4
Wenn ich dich richtig verstanden habe, soll dein Programm die Rechenregeln beachten (Punkt vor Strich, usw) und dann bei diesem Beispiel als Ergebnis 5,25 ausgeben?
 
das problem bei mir ist, wenn ich 1 * 2 + 5 eingebe, schreibt er das selbe als string in das textfeld, ohne es mathematisch zu sehen.

er soll es halt ausrechnen, und nicht als textstring verarbeiten.
 
Dazu brauchst du einen Parser, der dir den Term incl. Operatoren zerlegt.
Und du musst natülich festlegen welche Operatoren verwendet werden dürfen, welche Zahlen (natürliche, fließkomma) und die Regeln, also z.B. Punkt-Vor-Strich usw...
Das selbst zu schreiben erfordert schon 1-2 Jahre Programmiererfahrung und außerdem ist VB nicht gerade geeignet für sowas.

Gruß Homer
 
Mit anderen Worten: es gibt keine fertige Funktion, die du verwenden könntest. Musst alles selber machen (oder im Internet nach Codes suchen). Vielleicht gibt es ja auch eine DLL die das erledigt, warscheinlich aber nicht kostenlos.
 
so kompliziert solls garnicht werden ;)

erstmal will ich nur die tasten erlauben, die auf meinem taschenrechner zu sehen sind.

daher es kann nur 1 2 3 4 5 6 7 8 9 0 */+- verwendet werden.

das komische ist einfach, dass vb die zeichen * / + und - nicht als mathematische operatoren sieht, sondern als zeichen.

das ist mein einziges problem.

wisst ihr dafür eine lösung?

viele grüße

openeye
 
Du kannst es vereinfachen.

Die Werte, die du in die Textfelder eingibts müssen Variablen zugeordnet werden.
Dann ist z.B. der Wert im Textfeld 1 die variable a und der wert in textfeld 2 die Variable b.

Dann erstellst du dir Buttons (Radio oder CMD)
Mit der Caption "addieren" oderso
Der Button führt dann die addition von a + b aus
und weißt diesen neuen wert einer weiteren variable z.B. Summe zu.

Die Variable Summe beinhaltet nun das ergebnis der Addition.

Diese Variable kannst du nun in deinem Label ausgeben.


Dann würde dir das Label das Ergebnis ausgeben.
Wenn du noch eine Zeile möchtest die dir das ausgibt was du in text1.text und in
text2.text eingegeben hast musst du das über das Change ereignis vom textfeld
machen.

Das ist meiner Meinung nach die einfachste Lösung.
Wenn du Probs hast melde dich einfach ;)
 
Zuletzt bearbeitet:
Zurück