Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Neuen Beitrag zur Code-Library hinzufügen (https://www.delphipraxis.net/33-neuen-beitrag-zur-code-library-hinzufuegen/)
-   -   Delphi Mehrere Zahlen Rechnen (https://www.delphipraxis.net/201947-mehrere-zahlen-rechnen.html)

DelphiDustin 12. Sep 2019 13:40

Mehrere Zahlen Rechnen
 
Hallo Leute ich mal wieder,

Ich habe einen Taschenrechenr programmiert bei dem man die Zahlen über Buttons eingibt isher konnte man immer nur 2 Zhalen eingeben ich möchte jetzt aber das man mit mehr Zahlen rechnen kann. Ich habe die vermutung das man mit arrays arbeiten muss aber ich weiß nicht genau wie ich das anstellen soll.

Delphi-Quellcode:
var
  Form4: TForm4;
         Zahl1, Zahl2:double;
         istKomma, istPlus, istMinus, istMal, istGeteielt, istErgebnis:Boolean;
implementation

{$R *.dfm}


procedure TForm4.Plus;
begin
edit1.Text:=floattostr(Zahl1+Zahl2);
end;

procedure TForm4.Minus;
begin
  edit1.Text:=floattostr(Zahl1-Zahl2);
end;

procedure TForm4.Mal;
begin
edit1.Text:=floattostr(Zahl1*Zahl2);
end;

procedure TForm4.Geteielt;
begin
edit1.Text:=floattostr(Zahl1/Zahl2);
end;

procedure TForm4.GeteieltButtonClick(Sender: TObject);
begin
     zahl1:=strtofloat(edit1.Text);
     istKomma:=false;
     edit1.Text:='';
     label1.Caption:=floattostr(Zahl1)+'/';
istGeteielt:=True ;
istPlus:=false;
istMinus:=false;
istMal:=false;
istErgebnis:=true;
end;

procedure TForm4.MalButtonClick(Sender: TObject);
begin
   zahl1:=strtofloat(edit1.Text);
   istKomma:=false;
   edit1.Text:='';
        label1.Caption:=floattostr(Zahl1)+'*';
istMal:=True ;
istPlus:=false;
istMinus:=false;
istGeteielt:=false;
istErgebnis:=true;
end;

procedure TForm4.MinusButtonClick(Sender: TObject);
begin
    zahl1:=strtofloat(edit1.Text);
    istKomma:=false;
    edit1.Text:='';
         label1.Caption:=floattostr(Zahl1)+'-';
  istMinus:=True;
  istPlus:=false;
  istMal:=false;
  istGeteielt:=false;
  istErgebnis:=true;
end;

procedure TForm4.PlusButtonClick(Sender: TObject);
begin
   zahl1:=strtofloat(edit1.Text);
   istKomma:=false;
   edit1.Text:='';
        label1.Caption:=floattostr(Zahl1)+'+';
istPlus:=True;
istMinus:=false;
istMal:=false;
istGeteielt:=false;
istErgebnis:=true;
end;

procedure TForm4.GleichButtonClick(Sender: TObject);
begin
label1.Caption:='';
istKomma:=false;
zahl2:=strtofloat(edit1.Text);
  if istPlus=true then plus;
  if istMinus=true then Minus;
  if istMal=true then Mal;
  if istGeteielt=true then Geteielt;
end;

procedure TForm4.NullButtonClick(Sender: TObject);
begin
edit1.Text:=edit1.Text+'0'
end;

procedure TForm4.EinsButtonClick(Sender: TObject);
begin
  edit1.Text:=edit1.Text+'1'
end;

procedure TForm4.ZweiButtonClick(Sender: TObject);
begin
 edit1.Text:=edit1.Text+'2'
end;

procedure TForm4.DreiButtonClick(Sender: TObject);
begin
 edit1.Text:=edit1.Text+'3'
end;

procedure TForm4.VierButtonClick(Sender: TObject);
begin
   edit1.Text:=edit1.Text+'4'
end;

procedure TForm4.FünfButtonClick(Sender: TObject);
begin
    edit1.Text:=edit1.Text+'5'
end;

procedure TForm4.SechsButtonClick(Sender: TObject);
begin
    edit1.Text:=edit1.Text+'6'
end;
procedure TForm4.SiebenButtonClick(Sender: TObject);
begin
  edit1.Text:=edit1.Text+'7' ;
end;

procedure TForm4.AchtButtonClick(Sender: TObject);
begin
    edit1.Text:=edit1.Text+'8'
end;

procedure TForm4.BackSpaceButtonClick(Sender: TObject);
var
    Länge:string;
    NeueLänge:Integer;
begin
if istErgebnis=false then
    Länge:= edit1.Text;
    NeueLänge:=Length(edit1.Text);
    setlength(länge,NeueLänge-1);
    NeueLänge:=NeueLänge-1;
    edit1.text:=Länge
end;


procedure TForm4.NeunButtonClick(Sender: TObject);
begin
    edit1.Text:=edit1.Text+'9'
end;

procedure TForm4.KommaButtonClick(Sender: TObject);
begin
if istKomma=false then
edit1.Text:=edit1.Text+',';
if istKomma=false then
      istKomma:=true
end;

procedure TForm4.LöschenButtonClick(Sender: TObject);
begin
     edit1.Text:='';
     label1.Caption:=''
end;

end.
lg Dustin

Klaus01 12. Sep 2019 13:45

AW: Mehrere Zahlen Rechnen
 
.. ist beim Taschenrechner die Funktionsweise nicht so:

Zahl1 eingeben
Rechenoperation drücken
Zahl2 eingeben
= drücken.
Rechenoperation drücken
Zahl 3 eingeben
= drücken

Mit Klammern wird es etwas komplizierter.

Grüße
Klaus

DelphiDustin 12. Sep 2019 13:51

AW: Mehrere Zahlen Rechnen
 
Zitat:

Zitat von Klaus01 (Beitrag 1445867)
.. ist beim Taschenrechner die Funktionsweise nicht so:

Zahl1 eingeben
Rechenoperation drücken
Zahl2 eingeben
= drücken.
Rechenoperation drücken
Zahl 3 eingeben
= drücken

Mit Klammern wird es etwas komplizierter.

Wie würde man das denn Programieren?

KodeZwerg 12. Sep 2019 14:26

AW: Mehrere Zahlen Rechnen
 
Dir fehlt an sehr vielen Stellen ein Terminator Zeichen.
Beispiel aus
Delphi-Quellcode:
procedure TForm4.EinsButtonClick(Sender: TObject);
begin
  edit1.Text:=edit1.Text+'1'
end;
würde ich ein
Delphi-Quellcode:
procedure TForm4.EinsButtonClick(Sender: TObject);
begin
  edit1.Text:=edit1.Text+'1';
end;
machen. Vielleicht liegt darin Dein Problem?

DelphiDustin 12. Sep 2019 14:33

AW: Mehrere Zahlen Rechnen
 
Zitat:

Zitat von KodeZwerg (Beitrag 1445870)
Dir fehlt an sehr vielen Stellen ein Terminator Zeichen.
Beispiel aus

Stimmt füg ich gleich hinzu

Zitat:

Zitat von KodeZwerg (Beitrag 1445870)
Vielleicht liegt darin Dein Problem?

Der Rechner funktioniert ja es geht mir nur darum mit mehreren zahlen als 2 zu rechnen

Jonas Shinaniganz 12. Sep 2019 14:44

AW: Mehrere Zahlen Rechnen
 
Naja, zur Zeit hast du ja nur 2 Textfelder für 2 Zahlen, wie möchtest du denn die weiteren Zahlen zum rechnen eingeben?
Gruß Jonas

DelphiDustin 12. Sep 2019 14:49

AW: Mehrere Zahlen Rechnen
 
Zitat:

Zitat von Jonas Shinaniganz (Beitrag 1445876)
Naja, zur Zeit hast du ja nur 2 Textfelder für 2 Zahlen, wie möchtest du denn die weiteren Zahlen zum rechnen eingeben?
Gruß Jonas

Ja ich weiß(hab übrigens nur ein textfeld für beide zahlen) ich möchte aber jetzt auch keine 20 weiteren doubles eingeben um damit zu rechnen es gibt ja bestimmt einen leicteren Weg über Arrays oder so

Jonas Shinaniganz 12. Sep 2019 14:57

AW: Mehrere Zahlen Rechnen
 
Ok, verstehe :P
Du könntest den Rechner so umbauen, dass dein Gleich-Button das Ergebnis zusätzlich noch in Zahl 1 speichert,
dann könnte man die nächste Zahl mit deinen Knöpfen eingeben und mit dem Ergebnis aus dem vorherigen Schritt weiter rechnen...

ich vermute das sind nicht "allzuviele" Anpassungen.

edit:

Manche Taschenrechner arbeiten auch auf die Art, dass wenn man als Beispiel 1+1 rechnet und dann nochmal + drückt, einfach erstmal 1+1 gerechnet wird und dann 2+ in der Eingabe steht. Dass wäre dann vergleichbar mit dem von mir beschriebenen Ansatz.

DelphiDustin 12. Sep 2019 15:08

AW: Mehrere Zahlen Rechnen
 
Zitat:

Zitat von Jonas Shinaniganz (Beitrag 1445880)
Ok, verstehe :P
Du könntest den Rechner so umbauen, dass dein Gleich-Button das Ergebnis zusätzlich noch in Zahl 1 speichert,
dann könnte man die nächste Zahl mit deinen Knöpfen eingeben und mit dem Ergebnis aus dem vorherigen Schritt weiter rechnen...

Das ist tasächlich schon möglich :-D
Aber es wird von mir verlangt das der Rechner zum beispiel

Zahl1+Zahl2*Zahl3

direkt rechnen kann ohne einmal "=" Zu drücken.
Und natürlich mit Punkt vor Strich.

KodeZwerg 12. Sep 2019 15:19

AW: Mehrere Zahlen Rechnen
 
In meinem Calculator hab ich nur zwei Edit's, eins für Eingabe eins für Ausgabe.
Also bei einem weiteren "+" "-" "*" "/" etc wird mit der Ausgabe gearbeitet und dann eine Eingabe im ersten Edit erwartet (oder umgekehrt, ist schon ein paar Jahrzehnte her...).
Egal ob man zwischenzeitlich auf "=" klickt oder was auch immer macht, Input und Output halt miteinander in Harmonie ab-/arbeiten lassen.

Mfg.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:07 Uhr.
Seite 1 von 2  1 2      

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