Abfolge ??
-
Belies dich mal etwas zum Thema Automaten Theorie (Statemachines)
-junix
-
aber jetzt mal allgemein, wie kann ich das machen, dass er zuerst Zahl1 ausgeben soll, die Anzeige löschen (auf nichts zurücksetzen) und dann Zahl2 anzeigen soll?
-
Ich hasse zwar selbstzitate aber:
junix schrieb:
Belies dich mal etwas zum Thema Automaten Theorie (Statemachines)
Oder formuliere die Frage neu.
-
und wo soll ich mich zu diesem Thema belesen?
Google sagt er habe nichts

und hier im forum find ich nichts
-
Paladin schrieb:
und wo soll ich mich zu diesem Thema belesen?
Herr Wikipedia meint:
http://de.wikipedia.org/wiki/Automatentheoriewovon wahrscheinlich
http://de.wikipedia.org/wiki/Endlicher_Automat
etwas für dich ist.
-
danke

-
muss doch nochmal was fragen:
ist das wirklichganz ausgeschlossen, dass man nur ein Eingabefeld hat, das nach dem Operatordruck auf nichts zurückstellt, der operator die erste Zahl speichert und mann dann die Zweite zahl eingeben kann, worauf dann beim =Zeichen das resultat kommt?
sozusagen der WindowsRechner
im ganzen weiten Internet finde ich nicht eine lösung!!!!!!!!

danke
-
Hallo
da du ja bereits genau weist, was du umsetzten willst, warum machst du es denn nicht? Nimm ein Edit und ein Button, und führe in dem OnClick-Event deine Rechnung aus.
Wie bereits gsagt, brauchst du auch kein Array, sondern eine Zahl reicht aus, um das aktuelle Ergebnis zu speichern.bis bald
akari
-
das ist schon richtig, würde auch einfach gehen aber mein problem ist, dass ich die Zahlen als buttons habe, die dann auf einem Label auftauchen. sieht etwa wie der vom Windows aus, einfach schönner
-
Und wo ist jetzt da das Problem bei?
-
Hallo
nimm die Eingenschaft Tag der Buttons, schreib die entsprechende Zahl rein und frag die Eigenschaft in einer gemeinsamen Eventfunktion ab.
Lies dir mal die FAQ zum Thema Control durch.bis bald
akari
-
Also ist der Tag wie ein Speicher?
habe jetzt aber noch das Problem, dass er die Zweite eingegebene Zahl DANACH addieren ... soll.bis jetzt habe ich das mal rausbekommen:
float Zahl1, Zahl2, Ergebnis1, Zeichen; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Zeichen = "0"; Label1 ->Caption = Label1 ->Caption + Zeichen; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { AnsiString Zeichen = "1"; Label1 ->Caption = Label1 ->Caption + Zeichen; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { AnsiString Zeichen = "2"; Label1 ->Caption = Label1 ->Caption + Zeichen; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button4Click(TObject *Sender) { AnsiString Zeichen = "3"; Label1 ->Caption = Label1 ->Caption + Zeichen; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button5Click(TObject *Sender) { AnsiString Zeichen = "4"; Label1 ->Caption = Label1 ->Caption + Zeichen; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button6Click(TObject *Sender) { AnsiString Zeichen = "5"; Label1 ->Caption = Label1 ->Caption + Zeichen; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button7Click(TObject *Sender) { AnsiString Zeichen = "6"; Label1 ->Caption = Label1 ->Caption + Zeichen; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button9Click(TObject *Sender) { AnsiString Zeichen = "7"; Label1 ->Caption = Label1 ->Caption + Zeichen; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button8Click(TObject *Sender) { AnsiString Zeichen = "8"; Label1 ->Caption = Label1 ->Caption + Zeichen; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button10Click(TObject *Sender) { AnsiString Zeichen = "9"; Label1 ->Caption = Label1 ->Caption + Zeichen; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button14Click(TObject *Sender) { AnsiString Zeichen = "."; Label1 ->Caption = Label1 ->Caption + Zeichen; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button16Click(TObject *Sender) { AnsiString Zeichen = "00"; Label1 ->Caption = Label1 ->Caption + Zeichen; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button12Click(TObject *Sender) { Label1 ->Caption = Zahl1; Button12 ->Tag = Zahl1; Label1 ->Caption = ""; Label1 ->Caption = Zahl2; Ergebnis1 = Zahl1 + Zahl2; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button15Click(TObject *Sender) { Label1 ->Caption = Zahl1; Ergebnis2 = Zahl1 - Zahl2; Label1 ->Caption = ""; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button13Click(TObject *Sender) { Label1 ->Caption = Zahl1; Ergebnis3 = Zahl1 / Zahl2; Label1 ->Caption = ""; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button11Click(TObject *Sender) { Label1 ->Caption = Zahl1; Ergebnis4 = Zahl1 * Zahl2; Label1 ->Caption = ""; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button17Click(TObject *Sender) { Label1 ->Caption = AnsiString(Ergebnis1); Label1 ->Caption = ""; } //---------------------------------------------------------------------------tut mir leid wegen die darstellung

-
das letzte ist das gleichzeichen, die vier davor die operatoren und dann noch die Zahlen
-
Hallo
noch mal zum Tag (auf Deutsch : Marke, Markierung)
einfach im OI die Zifferntasten durchnummerieren (Ziffernbutton "1" bekommt Tag 1...). Dann weist du allen diesen Buttons eine Funktion zu, denn Rest der alten Funktionen löscht du (einfach alle Befehle aus Funktion löschen und speichern)
Dann kannst du in die neue Funktion reinschreiben :void __fastcall TForm1::ButtonNumberClick(TObject *Sender) { TControl *Component = dynamic_cast<TComponent *> (Sender); if (Component == NULL) return; AnsiString Zeichen = IntToStr(Component->Tag); Label1 ->Caption = Label1 ->Caption + Zeichen; }desweiteren rate ich dir, deinen Controls passende Namen zu geben.
Und ein paar Kommentare zu schreiben.denn Sinn deiner Operationen verstehe ich nicht, vielleicht kannst du dir noch etwas klarer darstellen.
-
erst mal danke
die operatoren sind * / + -
im prinzip will ich den gleichen Rechner bauen, wie der von Windows.
hab mir sicher schon 10 stunden den kopf zerbrochen und gesucht und gesucht
dieser component, was hat der für eine Funktion und muss ich TComponent
zu den Float reinschreiben (hab den namen vergessen)
-
Hallo
was die Operatoren machen sollen, ist mir klar, ich verstehe nur deine Umsatzung nicht. Speziell die des +, wo du auf ein Tag zugreifst.
Zum Beispiel sehe ich nicht wie du mal eine Zahl aus einem Edit holst und in Zahl1 oder Zahl2 steckts.bis bald
akari
-
langsam versteh ich das auch nicht mehr, was ich machen will, also:
Mann soll die erste Zahl zum beispiel 12 durch die Buttons 1 und 2 klicken.
wenn man nun auf das + zeichen klikt, soll er sich die erste zahl also 12 merken, die anzeige wo vorher 12 gestanden ist, auf nichts zurücksetzen, damit man die zweite zahl einkicken kann z.B. 16. nun soll er die vorher gespeicherte Zahl12 mir der neuen zahl 16 addieren, sich das ergebnis merken und beim klick auf das gleichheitszeichen das resultat 28 bringen.
wahlweise dann die anderen Operatoren mit ihren verschiedenen rechenarten dasselbetönt simpel oder
aber ich bin irgendwie zu blöd!!

die hauptsache ist aber, dass das ganze nur mit einem Feld, in dem die Zahl steht, auskommt
WIE DER WINDOWSRECHNER
.
-
Hallo
mal ein einfaches Beispiel für + :
void __fastcall TForm1::Button1AddClick(TObject *Sender) { float Zahl = StrToFloat(Label1->Caption); // Zahl aus Label holen und speichern Ergebnis += Zahl; // Ergebnis bestimmen Label1->Caption = ""; // Eingabe zurücksetzen }Ich empfehle dir noch, die globale Variable
float Ergebnis;in die Header-Datei des Forms, direkt unter das Symbol
private :zu schreiben. Den Rest brauchst du nicht.
bis bald
akari
-
das sollte eigentlich ganz gut klappen, aber er bringt noch die fehlermeldung mit der gleitkommazahl
irgendwie bringt er zetzt immer das doppelte de zahl als ergebnis.appropos gleitkommazahl, was ist das und wie bringe ich es wieder weg?
-
Hallo
aber er bringt noch die fehlermeldung mit der gleitkommazahl
welche Fehlermeldung genau?
Bitte mit betreffendem Code-Auschnitt.appropos gleitkommazahl, was ist das und wie bringe ich es wieder weg?
int = Festkommazahl = Ganze Zahl
float = Gleitkommazahl = Gebrochene Zahl, z.B. 1,3
näheres kannst du in einem passendem Buch oder Tutorial finden, siehe Menüeintrag ganz oben rechts.bis bald
akari