Rechnungen
Übersicht

PhloxBetreff: Rechnungen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So, ich hab mich mal hingesetzt und angefangen einen kleinen
einfachen Scriptinterpreter zu schreiben. Nun, ich muss natürlich auch mit dem Ding rechnen können. Daher hab ich mir eine kleine Rechenfunktion geschrieben. Warum funktioniert diese nicht? Ich habe tagelang nachgedacht und mich dadurch davor gedrückt, indem ich eine IDE mit VisualBasic geschrieben habe. ![]() Code: [AUSKLAPPEN] zhl=Rechnen("322-2")
Print zhl WaitKey End Function Rechnen(r$) Local I Local ergebnis Local lrch ;(=letztes Rechenzeichen) If Instr(r$,"+")=0 And Instr(r$,"-")=0 And Instr(r$,"/")=0 And Instr(r$,"*")=0 Then Return r$ For I=1 To Len(r$) If Mid(r$,I,1)="+" Then ergebnis=ergebnis+Int(Mid(r$,lrch+1,I-(lrch+1))):lrch=I If Mid(r$,I,1)="-" Then ergebnis=ergebnis-Int(Mid(r$,lrch+1,I-(lrch+1))):lrch=I If Mid(r$,I,1)="*" Then ergebnis=ergebnis*Int(Mid(r$,lrch+1,I-(lrch+1))):lrch=I If Mid(r$,I,1)="/" Then ergebnis=ergebnis/Int(Mid(r$,lrch+1,I-(lrch+1))):lrch=I Next Return ergebnis End Function |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
zerlege es doch erstmal in zwei Werte und dem Operator(oder wie das heißt)
select o case "+" e=a+b case "-" e=a-b case "*" e=a*b case "/" e=a/b end select |
||
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Habs nicht ganz begriefn was du genau willst...
Hier wär ein notbedürftiger rechner Code: [AUSKLAPPEN] AppTitle "Calculator V.1.3", "Are you sure?" Graphics 800,600,16,2 logo = LoadImage("c:\Graphics\calclogo.bmp") HidePointer ClsColor 14,36,114 Cls DrawImage logo,500,400 Locate 760,430 Locate 755,430 Print"1.3" Locate 280,0 Print "Welcome to Calculator V.1.3" Locate 280,15 Print "___________________________" Locate 280,35 Print " Built by Oz " Print "" Print "" Print "" Print "" Print "" Print " Type 1 for + " Print " Type 2 for - " Print " Type 3 for * " Print " Type 4 for / " Print " Type End to End" Print "" .aba Wahl$ = Input ("Type Number and Press Enter to Start => ") Select Wahl Case "1" Goto plus Case "2" Goto minus Case "3" Goto times Case "4" Goto divide Case "End" End Case "end" End Default Print "" Print " Invalide Input, please Type 1-4 " Print "" Goto aba End Select .plus Print "" Print "" Print " Please type first number" Print " Please type second number" Print "--------------------------" z1#=Input ("First Number ") If z1= End Then End Print " +" z2#=Input ("Second Nubmer ") If z2= End Then End Print"" ergebniss1# = z1+z2 Print ergebniss1 Print"" Goto aba .minus Print "" Print "" Print " Please type first number" Print " Please type second number" Print "--------------------------" z1#=Input ("First Number ") If z1= End Then End Print " -" z2#=Input ("Second Number ") If z2= End Then End Print"" ergebniss1# = z1-z2 Print ergebniss1 Print"" Goto aba .times Print "" Print "" Print " Please type first number" Print " Please type second number" Print "--------------------------" z1#=Input ("First Number ") If z1= End Then End Print " *" z2#=Input ("Second Number ") If z2= End Then End Print"" ergebniss1# = z1*z2 Print ergebniss1 Print"" Goto aba .divide Print "" Print "" Print " Please type first number" Print " Please type second number" Print "--------------------------" z1#=Input ("First Number ") If z1= End Then End Print " /" z2#=Input ("Second Number ") If z2= End Then End Print"" ergebniss1# = z1/z2 Print ergebniss1 Print"" Goto aba Repeat Until KeyHit(1) End |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ozzi789
sag mir doch mal warum man 1 2 3 4 eingeben muß und nicht direkt + - * / ??? |
||
Phlox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Eigentlich wollte ich aus einem String alle Rechenschritte auslesen, da
Blitz ja sowas nicht kann: r$="5+4" m=r$ dan ist m ja nicht 5+4 (also 9) sondern 0, da die Rechnung in r$ nicht erkannt wird. SRY, wenn ich mich in meinem ersten Post nicht genau genug ausgedrück habe. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der trick ist es die Strings zu zerlegen, nach den einzelnen Rechenoperationen zu suchen und dann passend zu verzweigen.
Und deine Signatur ist viel zu lang, Phlox, kürz die bitte. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann musst du einfach mit MID$ die Zahl(en) vor dem +-/* rausfiltern und dann +-/* Die Zahl(en) nach dem +-/* nehmen (bis zum nächsten +-/*). Und das solang, bis kein +-/* mehr hinten im String steht ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
Phlox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ah, ok... ich werde die Funktion noch mal neu schreiben.
@BladeRunner:Sorry, ist die Signatur so besser? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Perfekt. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group