Delphi-PRAXiS

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.

uplink 4. Mär 2007 17:51

Re: Taschenrechner programmieren...
 
Das der Windows-Taschenrechner nicht weiß das punktrechnung vor Strichrechnung kommt halt ich für ein Gerücht, gib mal 9+81/9 ein ohne Klammern und sonstiges. Bei mir kommt da 18 raus...

zecke 4. Mär 2007 19:13

Re: Taschenrechner programmieren...
 
:hi:

Das kommt auf den Modus an. Im Standard-Modus (Davon bin ich ausgegangen) kennt er das nicht. Im wissenschaftlichen Modus, kennt er die Regeln. Modus wechseln ist im Menupunkt 'Ansicht'.

Axxus 4. Mär 2007 21:29

Re: Taschenrechner programmieren...
 
Mhh ganz ehrlich ich finde den Taschenrechner von Windows besch*****

Viel sinnvoller fände ich ein zusätzliches Editfenster, indem dir deine aktuelle Rechnung angezeigt wird. Wenn ich mit dem Windows Taschenrechner rechnen müsste würde ich bei komplizierten Rechnungen verzweifeln, da mir da der Überblick fehlt.

Am sinnvollsten halte ich einfach nur ein Editfenster, wo der Endbenutzer seine Rechnung per Tastatur eintippt und noch ein Button, wo rechnene draufsteht, und ein Label, wo das ergebnis angezeigt wird.

Dann machst du noch nen Button mit HIlfe und wenn ma da draufklickt, öffnet sich ein dialogfeld indem die Befehle für Wurzel und Quadrat stehen.

Die Herausforderung für dich besteht dann darin den string so zu parsen, dass du damit rechnen kannst, wie man das realisieren kann weiß ich noch nicht, müsste man überlegen, aber iich finde es sinnvoller, also 12 verschiedene Button und ein Label

Daniel G 4. Mär 2007 22:20

Re: Taschenrechner programmieren...
 
Zitat:

Zitat von Axxus
also 12 verschiedene Button und ein Label

Soll Menschen geben, die arbeiten mit Tablet PCs und tippen lieber mit'm Stift auf die Zahlen und *,/,-,+ Zeichen. :wink:

Evtl. könnte man auch beide Möglichkeiten anbieten. Und was den Parser angeht, so gibt es davon auch ein paar hier im Forum... :wink:

uplink 5. Mär 2007 07:20

Re: Taschenrechner programmieren...
 
Ok ich werd mal unter parsen nachgucken. Das Eingeben des Terms muss über Tasten gehen, so will es die Aufgabenstellung :( aber ich hab mir gedacht, dass man das auch noch per Tastatur machen kann, was ja nicht so schwer is...
Achso und ja ick bin in der Wissenschaftlichen Einstellung des Win-Rechner ^^

Mfg Uplink


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