Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Taschenrechner programmieren... (https://www.delphipraxis.net/87689-taschenrechner-programmieren.html)

uplink 4. Mär 2007 17:15


Taschenrechner programmieren...
 
Hallo alle zusammen,

ich muss als Hausaufgabe einen Taschenrechner programmieren, mit den Grundrechenarten und so weiter. Das ist auch alles nicht wirklich ein Problem da ich die entsprechenden Befehle für Wurzel und Quadrieren kann. Desweiteren wollte ich den Taschenrechner wie den Windows Taschenrechner mit nur einem Eingabefeld gestalten, jedoch komm ich damit in Probleme wo ich nicht wirklich weiterkomme. Wollt euch mal fragen wie die Logik hinter dem Windows Taschenrechner ist... Ich hoffe ihr versteht mein Problem.

Mfg Uplink

zecke 4. Mär 2007 17:17

Re: Taschenrechner programmieren...
 
:hi:

Zitat:

Zitat von uplink
Ich hoffe ihr versteht mein Problem.

Ehrlich gesagt: nein :?

Wo ist denn das Problem bzw. wo kommst Du nicht weiter?

Ein Edit und Buttons. Das ist die Logik vom Windows-Taschenrechner :mrgreen:

Phoenix 4. Mär 2007 17:20

Re: Taschenrechner programmieren...
 
Im Prinzip wird die aktuelle Eingabe beim Betätigen einer Funktion in eine Variable gepackt und das Edit geleert. Bei der nächsten Funktion wird die Variable mit der aktuellen Eingabe verwurstet und das zwischenergebnis in der Variablen gespeichert usw. bis auf = gedrückt wird und das Ergebnis in der Anzeige landet.

uplink 4. Mär 2007 17:22

Re: Taschenrechner programmieren...
 
Ok ich versuch mich nochmal ^^.
Wenn ich jetz mit Hilfe der Buttons von mir aus 123+123+123 eingebe kommt halt 369 raus, sollte logisch sein :D
Jetzt wollt ich wissen wie ich das halt zu berwerkstelligen habe, weil die Operation ja schon vor der Eingabe des zweiten Summanden aufgerufen wird. Also wenn ich jetzt x + y rechnen würde , würde ich beim Klick auf den "+" Button ja erst das x gegeben haben und nich x und y.
Theoretisch müsste ich irgendwie die Additions-Prozedure anhalten und ihr sagen sie soll solange warten bis y auch verfügbar ist, nur weiß ich nicht wie ich das machen soll :?: :?: :?:

uplink 4. Mär 2007 17:23

Re: Taschenrechner programmieren...
 
@ Phoenix woher weiß dann der Taschenrechner das mal und durch vor plus und minus kommen?

passsy 4. Mär 2007 17:26

Re: Taschenrechner programmieren...
 
zahl ins edit dann taste drücken dann wird edit leer 2 zahl [...] rechnen dücken und im edit steht das ergebnis


wo is das prob?

Phoenix 4. Mär 2007 17:27

Re: Taschenrechner programmieren...
 
Das musst Du ihm beibringen :)

Klassische Fallunterscheidung.

zecke 4. Mär 2007 17:27

Re: Taschenrechner programmieren...
 
:hi:

Dann würde ich an deiner Stelle, die '+'-Funktion nicht mit dem Klick auf den '+'-Button ausführen, sondern erst beim Drücken der '='-Taste. Bei der '='-Taste dann den String durchgehen und nach Operationen schauen, diese dann ausführen. Stichwort parsen könnte behilflich sein :)

edit[roter Kasten]:
Zitat:

Zitat von uplink
@ Phoenix woher weiß dann der Taschenrechner das mal und durch vor plus und minus kommen?

Das weiß er auch nicht und es interessiert ihn auch nicht, weil der Windowstaschenrechner Eingabe für Eingabe rechnet. Dafür muss man dann Klammern setzen. Du möchtest, so wie ich es verstanden, erst am Ende einer Eingabe ausrechnen, also mehrere Terme eingeben.

passsy 4. Mär 2007 17:30

Re: Taschenrechner programmieren...
 
ok ganz einfach edit1.text musch ner variable zuweisen dann drückst du n button der sagt was passieren soll also z.b. +

das merken wir uns auch in ner variable und

dann merken wir uns auch das nächste was im edit steht nachdem wir es beim auf den button drücken leer gemacht haben

dann drücken wir den button rechnen und 1.var +2.var [...] werden gerechnet und dem edit übergeben


eigtl. ganz simple

uplink 4. Mär 2007 17:30

Re: Taschenrechner programmieren...
 
Ja naja ich meine, wenn mein Taschenrechne mehrere Operationen rechnen kann, dann kann er auch nur eine rechnen ;)
Ich würde es halt auch gerne bevorzugen, wenn halt nach jeder Operation das entsprechende Zwischenergebnis kommt. Ich weiß aber nicht wirklich wie ich das programmieren soll, hab wahrscheinlich ne Denkblockade oder so :D

@ passy: wie kann man denn nach deinem Schema das hier rechnen: 123+123*123, ohne das man irgendwie zwischendurch auf rechnen klickt sondern halt erst am Ende.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:14 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