Formel-Ausrechner
Übersicht

![]() |
simiBetreff: Formel-Ausrechner |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
hatte mal vor langer Zeit dieses kleine Programm geschriebn, das eine Formel ausrechnet. Es unterstützt aber nicht die Punkt-vor-Strichrechnung-Regel. Vielleicht kanns ja jemand brauchen. Code: [AUSKLAPPEN] Type ZahlT Field Typ Field Wert End Type Global Search,Weiter Print Formel("(5*8) + 10 - (13 * (4/2))-(2/2)") Function Formel(Formel$) Formel = Formel + " " For x = 1 To Len(Formel) Zeichen$ = Mid(Formel,x,1) ;Schauen für Operanden und Klammern Select Zeichen$ Case "+" z.ZahlT = New ZahlT Z\Typ = 1:z\Wert = 0 Case "-" z.ZahlT = New ZahlT Z\Typ = 1:z\Wert = 1 Case "*" z.ZahlT = New ZahlT Z\Typ = 1:z\Wert = 2 Case "/" z.ZahlT = New ZahlT Z\Typ = 1:z\Wert = 3 Case "(" z.ZahlT = New ZahlT Z\Typ = 2;:z\Wert = 0 Case ")" z.ZahlT = New ZahlT Z\Typ = 3;:z\Wert = 0 End Select ;Schauen für Zahl If Instr("0123456789",Zeichen$) >= 1 Then Zahl$ = Zahl$ + Zeichen$ If Instr("0123456789",Mid(Formel,x+1,1)) = 0 Then z.ZahlT = New ZahlT Z\Typ = 4:z\Wert = Int(Zahl$) Zahl$ = "" End If End If Next Return Ausrechnen() End Function Function Ausrechnen() For z.ZahlT = Each ZahlT If Search Then z.ZahlT = Object.ZahlT(Weiter):Search = 0:Goto Forward If z\Typ = 2 Then Search = 1 Weiter = Handle(z.ZahlT) z\Wert = Ausrechnen() z\Typ = 4 End If If z\Typ = 3 Then Search = 1 weiter = Handle(z.ZahlT) Return Ergebnis End If If z\Typ = 1 Then Operator = z\Wert If z\Typ = 4 Then Select Operator Case 0 Ergebnis = Ergebnis + z\Wert Case 1 Ergebnis = Ergebnis - z\Wert Case 2 Ergebnis = Ergebnis * z\Wert Case 3 Ergebnis = Ergebnis / z\Wert End Select End If .Forward Next Return Ergebnis End Function cu simi |
||
- Zuletzt bearbeitet von simi am Mi, Jun 07, 2006 20:40, insgesamt einmal bearbeitet
![]() |
ChrisAttack |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok, aber warum nicht
ergebnis = (5*8) + 10 - (13 * (4/2))-(2/2) ?!? ![]() |
||
B3D
MSVC++ DX9SDK |
Kekskiller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Weil man solche Ausrechenmöglichkeiten zum Beispiel
für Taschenrechner benötigt. |
||
![]() |
DCSieger des B2D Retro Wettbewerb / Aug 04 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn ich mich nicht ganz stark irre, hat ST mal sowas gemacht und das hatte wirklich alles drauf. Klammer Zeug und so auch. | ||
Core i5 4670K | 4 x 3,40 GHZ | 16 GB Ram | GeForce GTX 960 | HTC Vive | Win 10 Pro
www.UnrealSoftware.de | www.StrandedOnline.de | www.CS2D.com | www.CarnageContest.com | www.Stranded3.com |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group