Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Mit einem Array vom Typ String rechnen ? (https://www.delphipraxis.net/93412-mit-einem-array-vom-typ-string-rechnen.html)

MarquiseDeSade 5. Jun 2007 15:47


Mit einem Array vom Typ String rechnen ?
 
Hallo ihr Lieben :lol:

Ich programmiere derzeit einen Taschenrechner und möchte nun folgendes realisieren:
Der Benutzer gibt über Buttons(Zahlen 1-9) die gewünschten Zahlen ein und kann über Buttons(Operatoren für +; -; *; und /) nacheinander Werte berechnen. Über den "=" -Button soll dann die Berechnung stattfinden und das Ergebnis ausgegeben werden. Dieses Eingabenbeispiel soll zur Verdeutlichung herangezogen werden: 2+2*2 = 6
Da sich das Problem von Punkt vor Strich ergibt, wollte ich es mir so einfach wie möglich machen, sofern das geht. Und zwar irgendwie so, dass ich einen Array habe, sagen wir erstmal um es einfach zu halten von
Delphi-Quellcode:
test:array[1..10] of string;
Die Prozedur für den Button "+" soll dann ungefähr so lauten:

Delphi-Quellcode:
procedure TForm1.Button_plusClick(Sender: TObject);

begin
  inc(i);
  test[i]:=(edit1.Text)+'+';
end;

So und den Array dann irgendwie so intern in einer Rheie ausgeben lassen, dass der Pc die Zeichen als auch die Zahlen erkennt und diese dann automatisch mit Punkt vor Strich berechnen kann. Denn wenn ich doch in Delphi die Rechnung einfach so einer Variablen zuordnen würde, erkennt es doch auch automatisch diese Regel, oder ??

Also so:
ergebnis:=2+2*2;

Oder geh ich das Problem einfach zu falsch an ?? Was der Rechner können muss, ist, dass hintereinander mehrere Zahlen eingegeben werden können, ohne Rücksicht auf Punkt vor Strich. Ah so, bin noch ein Anfänger :angel2:

gruß tobias :coder:

hoika 5. Jun 2007 15:49

Re: Mit einem Array vom Typ String rechnen ?
 
Hallo,

so einfach geht das nicht.
Suche hier mal nach Formelparser.


Heiko

MarquiseDeSade 5. Jun 2007 16:10

Re: Mit einem Array vom Typ String rechnen ?
 
Mh, habe ich gemacht. Ist mir stellenweise einfach noch zu speziell und ich glaube, dass meine Idee nicht so toll ist, oder ?

Kann mir jemand vielleicht einen anderen Ansatz geben, wie ich das Prob lösen könnte ? :???:

sirius 5. Jun 2007 16:21

Re: Mit einem Array vom Typ String rechnen ?
 
Was ist an den Parsern so speziell? Es ist so ziemlich genau das was du programmieren willst!

hoika 5. Jun 2007 16:42

Re: Mit einem Array vom Typ String rechnen ?
 
Hallo,

korrekt, was soll daran sein.
Ich selber benutze übrigens CalcExpress.

Wenn du das selber machen willst,
bitte:
- zerlege den String in seine einzelnen Bestandteile
das wären Operatoren (+, - ...) und Operanden (z.B. 2, 3)
das geht über Pos(PosEx) und Copy
- baue einen Baum auf (Knoten sind die Operanden)
bei 2+3-1 sieht das also etwa so aus

+
2 3
-
1

naja, so etwa ;)
Daniel, kannst du hier nicht CorelDraw einbauen ;)


- arbeite die einzelnen Operanden ab.

Das macht das CalcExpress selber, warum also tippern ?


Heiko

MarquiseDeSade 5. Jun 2007 17:26

Re: Mit einem Array vom Typ String rechnen ?
 
Hallo :-D

"Zu speziell" meinte ich auf den Bezug hin, dass es für mich als richtig blutiger Anfänger wohl doch schon zu weit geht. Ich denke, nein ich weiss, dass es mir noch an zu vielen Grundlagen fehlt. Habe bis jetzt erst Erfahrung in TPW sammeln können.

Ich lese mir nunmal Informationen zum Parsen durch und werde mich bei Fragen wieder an euch wenden....

:coder:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:41 Uhr.

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