AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Mehrere Zahlen Rechnen

Ein Thema von DelphiDustin · begonnen am 12. Sep 2019 · letzter Beitrag vom 16. Sep 2019
Antwort Antwort
Seite 1 von 2  1 2   
DelphiDustin

Registriert seit: 10. Sep 2019
14 Beiträge
 
#1

Mehrere Zahlen Rechnen

  Alt 12. Sep 2019, 13:40
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
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.307 Beiträge
 
Delphi XE7 Professional
 
#2

AW: Mehrere Zahlen Rechnen

  Alt 12. Sep 2019, 13:45
.. 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
Klaus
  Mit Zitat antworten Zitat
DelphiDustin

Registriert seit: 10. Sep 2019
14 Beiträge
 
#3

AW: Mehrere Zahlen Rechnen

  Alt 12. Sep 2019, 13:51
.. 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?
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
2.272 Beiträge
 
Delphi 2010 Professional
 
#4

AW: Mehrere Zahlen Rechnen

  Alt 12. Sep 2019, 14:26
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?
Gruß vom KodeZwerg
Wenn ein unerwarteter Fehler aufgetreten ist, frage ich mich immer, welche Fehler erwartet wurden...
  Mit Zitat antworten Zitat
DelphiDustin

Registriert seit: 10. Sep 2019
14 Beiträge
 
#5

AW: Mehrere Zahlen Rechnen

  Alt 12. Sep 2019, 14:33
Dir fehlt an sehr vielen Stellen ein Terminator Zeichen.
Beispiel aus
Stimmt füg ich gleich hinzu

Vielleicht liegt darin Dein Problem?
Der Rechner funktioniert ja es geht mir nur darum mit mehreren zahlen als 2 zu rechnen
  Mit Zitat antworten Zitat
Benutzerbild von Jonas Shinaniganz
Jonas Shinaniganz

Registriert seit: 30. Aug 2011
249 Beiträge
 
Delphi XE5 Ultimate
 
#6

AW: Mehrere Zahlen Rechnen

  Alt 12. Sep 2019, 14:44
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
Die Leiter der Entwicklungsabteilung dreht total am Mausrad!
  Mit Zitat antworten Zitat
DelphiDustin

Registriert seit: 10. Sep 2019
14 Beiträge
 
#7

AW: Mehrere Zahlen Rechnen

  Alt 12. Sep 2019, 14:49
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
  Mit Zitat antworten Zitat
Benutzerbild von Jonas Shinaniganz
Jonas Shinaniganz

Registriert seit: 30. Aug 2011
249 Beiträge
 
Delphi XE5 Ultimate
 
#8

AW: Mehrere Zahlen Rechnen

  Alt 12. Sep 2019, 14:57
Ok, verstehe
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.
Die Leiter der Entwicklungsabteilung dreht total am Mausrad!

Geändert von Jonas Shinaniganz (12. Sep 2019 um 15:01 Uhr)
  Mit Zitat antworten Zitat
DelphiDustin

Registriert seit: 10. Sep 2019
14 Beiträge
 
#9

AW: Mehrere Zahlen Rechnen

  Alt 12. Sep 2019, 15:08
Ok, verstehe
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
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.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
2.272 Beiträge
 
Delphi 2010 Professional
 
#10

AW: Mehrere Zahlen Rechnen

  Alt 12. Sep 2019, 15:19
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.
Gruß vom KodeZwerg
Wenn ein unerwarteter Fehler aufgetreten ist, frage ich mich immer, welche Fehler erwartet wurden...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf