Hallo alle miteinander.
Sorry. War einige Zeit nicht online.
Hallo andiE
Dein 1. Ziel sollte so sein:
Eine Windows-Form, die bei Maus-Klick auf das Fenster ausgeführt wird. Zwei Operanden(Textfelder) und die Operation(Radio-Button) werden eingestellt. Bei Druck auf den "OK"-Button wird in die Ansicht das Ergebnis gezeichnet.
-> Erledigt. Ich habe allerdings nur keine Radio-Buttons zur Auswahl der gewünschten Operation sondern eine Funktion, welche den Operator erkennt.
2. Ziel=1. Erweiterung
Zusätzlich können mehrere Zahlensysteme eingestellt werden
-> Erledigt. Zahlensystemerkennung wird ebenfalls mit einer Funktion erkannt.
Ich rechne alle eingegebenen Variablen zuerst ins Dezimalsystem um, mache dann die Operation und anschließend folgt die Wandlung ins gewünschte Format.
3. Ziel =2. Erweiterung
Umwandlung der Form zur Eingabe der Aufgabe mit einem Operandin ein Textfeld. Umstellung der Ansicht auf eine FormView. Ein zweites Textfeld zeigt das Ergebnis. Ein Button "Losrechnen"
Aufgabenlösung mit einer Parser-Klasse.
-> erledigt
4. Ziel=3. Erweiterung
Umwandlung des Parsers für Aufgaben mt mehreren Operanden mit der typischen Leserichtung von links nach rechts.
-> Ich denke mal erledigt.
Ich nehm den Eingabestring und zerteile ihn.
Erste Variable: 0 bis zum Operator
dann : und anschließendes Zielzahlen system oder zweite Variable bis zum Ende oder : und anschließendes Zielzahlensystem
5. Ziel =4. Erweiterung
Umstellung des Parsers auf Punkt-vor-Strichrechnung
-> Jetzt wirds interessant. Wie würdest Du das machen? es gibt bei mir nur einen Operator. Eine Erweiterung auf verschachtelte Aufgaben (z.b. 3*(4-2)) wäre echt interessant.
6. Ziel =5. Erweiterung
Umstellung des Parsers auf Zahlensysteme
-> Schon erledigt mit der StringUntersuchen()-Fkt.
Fernziel=6. Erweiterung
Hinzufügen komplexer Zahlen als eigen entwickelte Datenstruktur
-> Ich hab mir ne ganze Klasse CVariable gegönnt. Diese hat folgende Atribute: stringvar, realstringvar, imagstringvar, realteil, imagteil. Außerdem habe ich die grundlegenden Operationen +-*/ überschrieben.
Nach meiner Erfahrung solltest du früh anfangen, dir klarzumachen und vorzustellen, wie die Programme funktionieren und aufgebaut sind, und wie die beteiligten Objekte erzeugt und zerstört werden.
-> Objekte werden mit new erzeugt und um die Zerstörung muss ich mich doch nicht kümmern. Macht doch der Garbage-... (weiß grad nich wie er heißt)
Im Moment habe ich aber folgendes Problem:
double var10 // Wert zur Laufzeit z.b. 127,4
int ganzzahl = Math.Truncate(var10) // Wert zur Laufzeit 127
double kommazahl = var10- ganzzahl // Wert sollte 0,4 sein.
Leider ist kommazahl aber 0.40000000000000568. Und ich weiß nicht warum.
Wäre froh wenn mir da jemand weiterhelfen könnten.
VG und gute Nacht
Herki