AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Zahlen Rechnen

Ein Thema von DelphiDustin · begonnen am 12. Sep 2019 · letzter Beitrag vom 16. Sep 2019
Antwort Antwort
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.757 Beiträge
 
Delphi 10.4 Sydney
 
#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
3.690 Beiträge
 
Delphi 11 Alexandria
 
#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
  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
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.856 Beiträge
 
Delphi 12 Athens
 
#7

AW: Mehrere Zahlen Rechnen

  Alt 12. Sep 2019, 18:43
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?
Nein, daran liegt es nicht, auch wenn es säuberer mit ist.
Es gibt nämlich eine kleine wenig beachtete Spezialregel für die Syntax:
vor dem letzten End des Blocks darf das ; weggelassen werden

Der Compiler meckert da nicht und das Programm tut, was man programmiert hat.
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#8

AW: Mehrere Zahlen Rechnen

  Alt 12. Sep 2019, 20:31
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?
Ist das Semikolon gemeint?

Wenn irgendwo eines fehlen täte, würde der Compiler es doch gleich monieren!

Tatsächlich ist das Semikolon in Pascal kein Terminatorzeichen. Man könnte es genausogut auch vor jede Anweisung schreiben, das wäre auch möglich und würde genausogut funktionieren. Doch es ist auch kein Einleitungszeichen.

In Wirklichkeit ist es ein (Ab)Trenn(ungs)zeichen und dient dazu, Anweisungen voneinander zu trennen (und genau dafür benutze ich es auch).

Den Unfug, daß hinter jeder Anweisung ein Semikolon zu setzen sei, ja gesetzt werden muß, las ich sogar schon in einem Delphibuch.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Mehrere Zahlen Rechnen

  Alt 13. Sep 2019, 06:38
Hallo,
mehrere Zahlen + Klammern -> Formelparser.

Das ist dann kein Array, sondern ein Baum.
Die Knoten sind das jeweilige Rechenzeichen bzw. die Klammer.

Klingt etwas komplizierter -> ist es auch.
Heiko

Geändert von hoika (13. Sep 2019 um 06:57 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.690 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Mehrere Zahlen Rechnen

  Alt 13. Sep 2019, 07:25
In Wirklichkeit ist es ein (Ab)Trenn(ungs)zeichen und dient dazu, Anweisungen voneinander zu trennen (und genau dafür benutze ich es auch).
Mag noch etwas früh sein, da das Wort "trennen" bei Dir vorkommt, nenn ich es halt terminieren, sprich "Anweisung ist hier am Ende und die nächste kann kommen"
Es gibt nämlich eine kleine wenig beachtete Spezialregel für die Syntax:
vor dem letzten End des Blocks darf das ; weggelassen werden
Ohhhkay, das war mir neu, Danke für den Hinweis.
mehrere Zahlen + Klammern -> Formelparser.
Das tat ich am Ende dann auch, zum erlernen war mir das mit zwei Edit's ausreichend.
Sehr guter Tipp!

Einen guten Morgen und einen schönen Tag euch allen!
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:40 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