AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Taschenrechner bauen, Problem mit Addition
Thema durchsuchen
Ansicht
Themen-Optionen

Taschenrechner bauen, Problem mit Addition

Ein Thema von Steve-0 · begonnen am 18. Feb 2010 · letzter Beitrag vom 18. Feb 2010
Antwort Antwort
Seite 1 von 2  1 2      
Steve-0

Registriert seit: 30. Nov 2009
10 Beiträge
 
#1

Taschenrechner bauen, Problem mit Addition

  Alt 18. Feb 2010, 16:59
Aufgabe ist es, einen Taschenrechner zu schreiben, der u.a. auch Addition beherrscht.
Der Taschenrechner hat ein Edit-Feld, in das Zahlen eingegeben werden können (StrToFloat, aber da liegt auch nciht das Problem), mit denen der Taschenrechner dann über versch. Buttons auf der Benutzeroberfläche Rechnungen durchführt(Eingabefeld ist auch gleich Ausgabefeld). Vorher hatte ich nur Rechnungen, wo etwas mit der eingegebenen Zahl selbst passieren sollte (Wurzel, Quadrat), aber bei der Addition muss ich ja 2 Zahlen angeben, die dann addiert werden. Ich will aber trotzdem nur ein Edit-Feld benutzen.

Wisst ihr ne Lösung, wie man z.B. die eingegebenen Werte bei Klick aufs "+" speichern kann und dann einen neuen Wert eingeben kann und dann bei Klick auf einen "="-Button das Ergebnis erscheint? Cool wäre es auch, wenn sich der Schritt mit dem Klick aufs "+" wiederholen lassen kkönnte, sodass auch Rechnungen, wie x+y+z+a+b+c+d machbar wären.

Danke im Voraus
  Mit Zitat antworten Zitat
Benutzerbild von BackOrifice
BackOrifice

Registriert seit: 6. Jun 2005
74 Beiträge
 
Delphi 2007 Architect
 
#2

Re: Taschenrechner bauen, Problem mit Addition

  Alt 18. Feb 2010, 17:08
Variable global für die Funktion (private?) deklarieren und beim OnClick des '+' speichern, was im Editfeld steht. Ist die Variable vorher <> 0, führst du die Berechnung durch.
Henning
  Mit Zitat antworten Zitat
Benutzerbild von MuTzE.Y85
MuTzE.Y85

Registriert seit: 11. Apr 2006
152 Beiträge
 
#3

Re: Taschenrechner bauen, Problem mit Addition

  Alt 18. Feb 2010, 17:11
Globale Variable deklarieren:

var
Speicher: Extended; //Oder was auch immer

Und dann vorher dort speichern und wieder holen beim drücken auf "="
LAN-PC: C2Q Q9550 @ 4004 MHz @ 1.232 V @ Mugen 2 | DFI LANParty JR P45-T2RS | G.Skill 4GB DDR2-1000 CL5 | ZOTAC GTX 280 @ GTX 285 @ 1.06 V | WD Caviar Blue 320GB / WD Caviar Black 640GB | BeQuiet DPP P7 450W | Antec Mini P180
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Taschenrechner bauen, Problem mit Addition

  Alt 18. Feb 2010, 17:17
Moin,
solange du nur von links nach rechts rechnest, also sagen wir mal so, alle Rechenregeln vernachlässigst (2+3*2 = 10) kannst du das so machen, dass du dir das Ergebnis zwischenspeicherst. Und nebenbei in einem Boolean speicherst ob bereits mindestens eine Zahl eingegeben wurde.
Das heißt, wenn man gibt das so ein:
  1. Zuerst die 2 in das Edit
  2. Das Plus drücken (die 2 hier zwischenspeichern und speichern, dass eine Zahl gespeichert wurde)
  3. Die 3 in das Edit
  4. Das Mal drücken (hier jetzt die Zahl aus den Zwischenspeicher mit den Operator von oben (das plus) mit der neuen Zahl verarbeiten und in den zwischenspeicher schreiben)
  5. Die 2 in das Edit
  6. Das gleich drücken (hier wieder die Zahlen aus den Zwischenspeicher und der zwei mit dem Opeator verknüpfen und jetzt das Ergebnis nur ausgeben und in den Boolean so setzen, dass er weiß, dass keine Zahl eingeben wurde)
Das heißt du müsstest auch den Operator speichern. Das geht entweder über eine Delphi-Referenz durchsuchenEnumeration oder (nicht ganz so schön) über Konstanten und Integer.

MfG
Fabian

PS: Ist ja cool das ein Thread von mir als erstes auftaucht
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Steve-0

Registriert seit: 30. Nov 2009
10 Beiträge
 
#5

Re: Taschenrechner bauen, Problem mit Addition

  Alt 18. Feb 2010, 17:26
Ja, die Prozedur hab ich auch schon durchgedacht, ich weiß nur nicht, wie man zwischenspeichert, kann da einer mal den Code zu reinschreiben?

Danke, schonmal
  Mit Zitat antworten Zitat
Benutzerbild von Mariaki
Mariaki

Registriert seit: 21. Sep 2008
64 Beiträge
 
RAD-Studio 2010 Arc
 
#6

Re: Taschenrechner bauen, Problem mit Addition

  Alt 18. Feb 2010, 17:31
mach das doch mit pos('+',s) und dann die zahl vor und nach dem '+' addieren und ergebnis anstatt Zahl1+Zahl2 in den String einfügen... das gleiche dann mit */-. Setzt das dann in je eine 'While pos(..)<>0 do' Schleife.
Wenn du dann die Schleifen in der richtigen Reihenfolge machst (*/+-) hast du sogar die mathematische-Richtigkeit drin.
Das ganze reicht dann wenn du das in die =-Button-Procedure packst. Das hat den Vorteil dass der Rechner auch funtioniert, wenn der Benuzter deine Tasten nicht nutzt und es so hinein schreibt.
Es wird nur ein Problem wenn du auch Klammern haben möchtest.

Gruß Mariaki
Benedikt
Warum merken die ganzen Christen eigentlich nicht, dass Gott veraltet ist. Zur Zeit von Jesus war er ein gutes Medium um Moral zu verbreiten.. aber Heute?!?
  Mit Zitat antworten Zitat
Steve-0

Registriert seit: 30. Nov 2009
10 Beiträge
 
#7

Re: Taschenrechner bauen, Problem mit Addition

  Alt 18. Feb 2010, 17:32
Ja, der Taschenrechner soll aber über die Tasten laufen, das war die Vorgabe für die Aufgabe
  Mit Zitat antworten Zitat
Benutzerbild von Mariaki
Mariaki

Registriert seit: 21. Sep 2008
64 Beiträge
 
RAD-Studio 2010 Arc
 
#8

Re: Taschenrechner bauen, Problem mit Addition

  Alt 18. Feb 2010, 17:34
Würde ja auch noch klappen.. nur dass die tasten nur noch die Funktion des Einfügens haben.
Benedikt
Warum merken die ganzen Christen eigentlich nicht, dass Gott veraltet ist. Zur Zeit von Jesus war er ein gutes Medium um Moral zu verbreiten.. aber Heute?!?
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Taschenrechner bauen, Problem mit Addition

  Alt 18. Feb 2010, 18:29
Ich hatte auch mal eine Aufgabe und habe diese dann ausgeweitet, beherrschte schließlich Punkt vor Strich.
Man hat einen Term eingegeben, dieser wurde dann in Rechenzeichen und Zahlen zerlegt und dann nach Punkt vor Strich ausgerechnet.

Guck mal hier


So läuft das Ganze auch nur über Tasten...
Liebe Grüße!
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Taschenrechner bauen, Problem mit Addition

  Alt 18. Feb 2010, 19:42
Hallo,
um etwas zwischenzuspeichern musst du nur definieren das es einen Zwischenspeicher gibt. Dafür muss du entscheiden, wer alles den Zwischenspeicher kennt. Umso weniger umso besser!
Delphi-Quellcode:
type
  TClass = class(...)
    // 2.
  private
    // 1.
  public
    // 2.
  end;

var
  // 3.

implementation
Dabei würde ich sie immer in den privaten Bereich schreiben, und nur wenns nicht anders geht in den public-Bereich. Und in äußersten Notfällen geht auch der 3. Bereich. Aber denn sollte man sogut es geht vermeiden.

Dort schreibst du dann zuerst den Namen des Zwischenspeichers dann ein Doppelpunkt und dann gibst du den Typ an. Integer speichert zum Beispiel Ganzzahlen mit Vorzeichen und string eine Zeichenkette und Extended eine Fließkommazahl. Für weitere Infos zu den Datentypen empfehle ich ein Tutorial (siehe www.delphi-treff.de), die Wikipedia oder die Delphi Hilfe.

Danach kannst du jeder Zeit mit der Zuweisung einen Wert zuweisen (<name> := <neuer wert>). Wenn man den Wert bekommen will, einfach hinschreiben und dann damit arbeiten.
Aber ich denke da solltest du erstmal ein Tutorial lesen.

MfG
Fabian
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:00 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