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 2 von 2     12
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
412 Beiträge
 
Delphi 10.3 Rio
 
#11

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.427 Beiträge
 
Delphi 10.1 Berlin Starter
 
#12

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
7.216 Beiträge
 
Delphi XE4 Professional
 
#13

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
2.272 Beiträge
 
Delphi 2010 Professional
 
#14

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
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
 
#15

AW: Mehrere Zahlen Rechnen

  Alt 13. Sep 2019, 07:57
Hallo,
mehrere Zahlen + Klammern -> Formelparser.
Jo danke hatte das auch irgendwo gelesen hättest du vielleicht eine seite wo man sich gut zu dem Thema einlesen kann? Ich finde im Internet irgendwie nichts gutes.
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.559 Beiträge
 
Delphi 6 Enterprise
 
#16

AW: Mehrere Zahlen Rechnen

  Alt 13. Sep 2019, 09:10
Ich würde ehrlich gesagt den Formelparser und somit das geklammere erstmal weg lassen und einen ganz einfachen Taschenrechner nachprogrammieren.

Du bräuchtest einen Buffer für die aktuell eingegebene Zahl und dann einen Speicher/Variable für Zahlen 1 bis 3, sowie zwei Speicher für die Rechenoperationen.

Wird eine Zahl eingegeben wird sie in den Buffer geschrieben, wird ein Operator eingegeben kommt die aktuelle Zahl vom Buffer in den Speicher für Zahl1, der Operator in den Speicher dafür und es wird der Buffer geleert und auf eine neue Zahleingabe gewartet, usw. usw.

Das ist eingetlich eine schöne Übung, um das logische Denken zu üben, wenn man das so umsetzt. Ein bißchen wie eine Statemachine für Anfänger.

Man kann das dann auch so umsetzen, das man nur eine Event-Prozedur hat für "Zahl wird eingegeben" und eine für "Operator wird eingegeben". Hierzu könnte man z.B. mit der Eigenschaft "Tags" der Button arbeiten.

Will man bei der Eingabe Komma-Zahlen zulassen, muss man sich nochmal ein paar Gedanken Extra machen.
Ralph
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
7.216 Beiträge
 
Delphi XE4 Professional
 
#17

AW: Mehrere Zahlen Rechnen

  Alt 13. Sep 2019, 11:54
Hallo,
eine ausführliche Anleitung zu Formelparsern:
https://maciejewski.com/en/implement...ser-in-delphi/

Vorsicht:
Ist nicht leicht.


Deshalb auch von mir der Vorschlag, erst mal was einfacheres zu machen.
Heiko

Geändert von hoika (16. Sep 2019 um 07:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

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

AW: Mehrere Zahlen Rechnen

  Alt 16. Sep 2019, 07:18
Ohne parsen aber mit Berechnungen ohne limit hab ich mal im Anhang ein binary plus source hochgeladen.
Vielleicht hilft es Dir bei Deiner "ich kann nur einmal Rechnen dann ist aus" Problematik.
Desweiteren erfolgen alle Button abfragen über Ihre TAG property so das man nur eine Methode für alle buttons nutzt (okay, da sind zwei um Zahlen von Operationen zu trennen *g*)

Good luck & have a nice week!
Angehängte Dateien
Dateityp: zip miniCalc.zip (373,9 KB, 0x aufgerufen)
Gruß vom KodeZwerg
Wenn ein unerwarteter Fehler aufgetreten ist, frage ich mich immer, welche Fehler erwartet wurden...
  Mit Zitat antworten Zitat
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 19:14 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