Delphi-PRAXiS
Seite 2 von 6     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Taschenrechner Programmieren (https://www.delphipraxis.net/20361-taschenrechner-programmieren.html)

Nicolai1234 16. Apr 2004 16:57

Re: Taschenrechner Programmieren
 
Liste der Anhänge anzeigen (Anzahl: 2)
Ich hab es nochmal als .zip und .rar angehängt!

Jack Ryan 16. Apr 2004 17:15

Re: Taschenrechner Programmieren
 
ohhh sorry

Skiron 16. Apr 2004 17:19

Re: Taschenrechner Programmieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
ich hab mal ein beispiel geschrieben, wie mans machen könnt...
is scho fast ein kleiner parser...
mängel: eine zahl kann einige kommas haben...

Nicolai1234 16. Apr 2004 17:26

Re: Taschenrechner Programmieren
 
Wenn ich einen String(Edit.text) habe (Beispiel=1+6/6*5). Wie kann ich ihn dann ausrechnen lassen?

Skiron 16. Apr 2004 17:30

Re: Taschenrechner Programmieren
 
1+6/6*5
-suche zuerst alle / und *:
-finde das 6/6 und ersetze es durch das ergebnis (6/6 = 1)
1+1*5
-finde das 1*5 und ersetze es durch das ergebnis (1*5 = 1)
1+1
nichts mehr gefunden, also
-suche alle + und -
-finde 1+1 und ersetze es durch das ergebnis (1+1 = 2)
2
nichts mehr gefunden, also
Ergebnis = 2

himitsu 16. Apr 2004 17:32

Re: Taschenrechner Programmieren
 
Zitat:

Zitat von Skiron
finde das 1*5 und ersetze es durch das ergebnis (1*5 = 1)

:gruebel:

Nicolai1234 16. Apr 2004 17:32

Re: Taschenrechner Programmieren
 
Gibt es die Möglichkeit:
(Wenn man vorher / durch div ersetzt?

Code:
Ergebnis := strtoint(edit1.text);

Skiron 16. Apr 2004 17:35

Re: Taschenrechner Programmieren
 
Zitat:

Zitat von himitsu
Zitat:

Zitat von Skiron
finde das 1*5 und ersetze es durch das ergebnis (1*5 = 1)

:gruebel:

:oops: :oops: jetzt weiß ich warum mich mein mathelehrer nicht so richtig mag *g*

Zitat:

Zitat von Nicolai1605
Gibt es die Möglichkeit:
(Wenn man vorher / durch div ersetzt?
Code:
Ergebnis := strtoint(edit1.text);

geht nicht, dann sagt delphi z.B.
Code:
'1 div 1 ' ist kein gültiger Integerwert
oder so

glkgereon 16. Apr 2004 19:18

Re: Taschenrechner Programmieren
 
man brauch wirklich nen parser!

man muss den ganzen "scheiss" in nen array klotzen

(so etwa:
'2+7*123+34'
wird zu
a[1]:='2';
a[2]:='+';
a[3]:='7';
a[4]:='*';
a[5]:='123';
a[6]:='+';
a[7]='34'; )

dan muss man sagen

Delphi-Quellcode:
try zahl1:=strtoint(a[1])
except zeichen1:=a[1];
und so wieter....
und dann

Delphi-Quellcode:
if zeichen1:='*'
then ergebnis:=zahl1 * zahl2
else if zeichen1='/'
then ergebnis:=zahl1/zahl2;
wobei das jetzt ne spontene idee war, und wahrscheinlich das umstaädlichste überhaupt ist...

Skiron 16. Apr 2004 19:34

Re: Taschenrechner Programmieren
 
ich habs so ähnlich gemacht
nur dass ich die Zahlen in einem Array und die Zeichen in einem String habe


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:37 Uhr.
Seite 2 von 6     12 34     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz