findAddOrSubOperation und findMulOrDivOperation fehlerhaft?

Eric_B
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 112
Registriert: 14. Okt 2010 22:44

findAddOrSubOperation und findMulOrDivOperation fehlerhaft?

Beitrag von Eric_B »

Die beiden Funktionen laufen wenn es die gewählte Operation in der Funktion nicht gibt in eine NullPointerException ich denke mal nicht das das so gewollt ist.
Auch ist es etwas "unpraktisch" das die Funktion aus Klammern ausbricht und immer nur am Anfang beginnt zu Suchen. Das führt dazu das wenn ich innerhalb einer Klammer (evaluateSimpleExpression) prüfen will ob es eine MulOrDivOperation gibt eine neue Methode schreiben muss die
- einen Startpunkt als Parameter hat
- nicht aus Klammern ausbricht
- nicht in eine null Pointer Exception läuft wenn es die Operation nicht gibt sondern dann eben null zurück gibt.

Eric
Zuletzt geändert von Eric_B am 17. Apr 2012 16:10, insgesamt 1-mal geändert.

fabian.wagner
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 152
Registriert: 19. Okt 2010 12:51

Re: findAddOrSubOperation und findMulOrDivOperation fehlerha

Beitrag von fabian.wagner »

Die beiden Funktionen laufen wenn es die gewählte Operation in der Funktion nicht gibt in eine NullPointerException ich denke mal nicht das das so gewollt ist.
Wenn die Funktionen in eine NullPointerException laufen, dann hast du vermutlich etwas falsch programmiert, denn du schreibst den Methodenrumpf! Der ist nicht vorgegeben.

Die beiden Funktionen sollen jeweils den linken Operanten einer gefundenen Punkt- bzw. Strichrechnung zurück geben. Natürlich kannst du dann in einer NullPointerException landen wenn es keine derartige Operation gibt. Das muss allerdings dein Programm abfangen!
- einen Startpunkt als Parameter hat
- nicht aus Klammern ausbricht
Verstehe dein Problem, hatte dieses auch und hatte mir ebenfalls mehrere Gedanken darüber gemacht. Man kann es aber elegant umschiffen, wenn man eine neue MathList, die nur die SimpleExpression enthält, anlegt und dann mit dieser rechnet. Wenn man fertig mit dem Ausrechnen ist, kann man dann dementsprechende Pointerersetzungen durchführen.

Eric_B
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 112
Registriert: 14. Okt 2010 22:44

Re: findAddOrSubOperation und findMulOrDivOperation fehlerha

Beitrag von Eric_B »

Ups ^^ irgendwie dachte ich die waren vorgegeben xD mein Fehler xD

naja aber hab dann trotzdem eine neue gebraucht wegen dem Problem mit dem fehlendem Parameter xD

Ich sollte mir echt makieren was ich gemacht hab und was aus der Vorlage stammt ^^

fabian.wagner
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 152
Registriert: 19. Okt 2010 12:51

Re: findAddOrSubOperation und findMulOrDivOperation fehlerha

Beitrag von fabian.wagner »

Eric_B hat geschrieben:Ups ^^ irgendwie dachte ich die waren vorgegeben xD mein Fehler xD

naja aber hab dann trotzdem eine neue gebraucht wegen dem Problem mit dem fehlendem Parameter xD

Ich sollte mir echt makieren was ich gemacht hab und was aus der Vorlage stammt ^^
Schau mal im anderen Thread nach... Vielleicht hilft dir da was 8)

Eric_B
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 112
Registriert: 14. Okt 2010 22:44

Re: findAddOrSubOperation und findMulOrDivOperation fehlerha

Beitrag von Eric_B »

hab das "Problem" schon behoben gehabt als ich es hier geschrieben hab.

Ich sag nur mal ein Schlagwort "Polymorphismus" dann muss man auch nicht mit irgendwelchen zusätzlichen Klassenvariablen arbeiten.

Eric
Zuletzt geändert von Eric_B am 19. Apr 2012 22:39, insgesamt 1-mal geändert.

Prof. Karsten Weihe
Dozentin/Dozent
Beiträge: 1824
Registriert: 21. Feb 2005 16:33

Re: findAddOrSubOperation und findMulOrDivOperation fehlerha

Beitrag von Prof. Karsten Weihe »

Eric_B hat geschrieben: Ich sag nur mal ein Schlagwort "Polimorphismus"
Mit google u.ä. sucht man besser nach Polymorphismus. 8)

KW

Senchy
Windoof-User
Windoof-User
Beiträge: 37
Registriert: 6. Okt 2010 19:14

Re: findAddOrSubOperation und findMulOrDivOperation fehlerha

Beitrag von Senchy »

Oder nach "Überladen von Methoden in Java", ich nehme an das meinte Eric_B konkret.
Gruß

brjan
Erstie
Erstie
Beiträge: 20
Registriert: 28. Jul 2011 12:21

Re: findAddOrSubOperation und findMulOrDivOperation fehlerha

Beitrag von brjan »

fabian.wagner hat geschrieben:
- einen Startpunkt als Parameter hat
- nicht aus Klammern ausbricht
Verstehe dein Problem, hatte dieses auch und hatte mir ebenfalls mehrere Gedaigtnken darüber gemacht. Man kann es aber elegant umschiffen, wenn man eine neue MathList, die nur die SimpleExpression enthält, anlegt und dann mit dieser rechnet. Wenn man fertig mit dem Ausrechnen ist, kann man dann dementsprechende Pointerersetzungen durchführen.
Also ich frag mich bei dieser Geschichte immer noch, ob ich was übersehe. Lösungsmöglichkeiten sind zwar da, jedoch empfinde ich die nicht als sauber. Wenn ich eine neue MathList mit nur einer SimpleExpression anlegen will, dann brauche ich ja auch einen kopierten Satz von MathElements, sonst wäre das Listenende nicht zu verwirklichen.

Ich lege erstens eine neue MathList an, die mit 'begin' beginnt, nutze zweitens die toString-Methode dieser MathList, um dann alles hinter der schließenden Klammer wegzuschneiden zu können. Mit dem geschnittenen String erzeuge ich im dritten Schritt die MathList die ich brauche.

Benötigt wird also eine temporäre MathList als Zwischenschritt?! Eine andere Möglichkeit wäre es natürlich das nicht benötigte Ende der Liste "abzukoppeln". Doch dann kann ich mir die neue MathList auch sparen, denn dann ist ja die aktuelle MathList temporär für die find-Methoden "umgebaut".

Aber wäre das dann nicht wiederum eine Zweckentfremdung der next-Variablen des letzten benötigt Elements?

fabian.wagner
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 152
Registriert: 19. Okt 2010 12:51

Re: findAddOrSubOperation und findMulOrDivOperation fehlerha

Beitrag von fabian.wagner »

brjan hat geschrieben:
fabian.wagner hat geschrieben:
- einen Startpunkt als Parameter hat
- nicht aus Klammern ausbricht
Verstehe dein Problem, hatte dieses auch und hatte mir ebenfalls mehrere Gedaigtnken darüber gemacht. Man kann es aber elegant umschiffen, wenn man eine neue MathList, die nur die SimpleExpression enthält, anlegt und dann mit dieser rechnet. Wenn man fertig mit dem Ausrechnen ist, kann man dann dementsprechende Pointerersetzungen durchführen.
Also ich frag mich bei dieser Geschichte immer noch, ob ich was übersehe. Lösungsmöglichkeiten sind zwar da, jedoch empfinde ich die nicht als sauber. Wenn ich eine neue MathList mit nur einer SimpleExpression anlegen will, dann brauche ich ja auch einen kopierten Satz von MathElements, sonst wäre das Listenende nicht zu verwirklichen.

Ich lege erstens eine neue MathList an, die mit 'begin' beginnt, nutze zweitens die toString-Methode dieser MathList, um dann alles hinter der schließenden Klammer wegzuschneiden zu können. Mit dem geschnittenen String erzeuge ich im dritten Schritt die MathList die ich brauche.

Benötigt wird also eine temporäre MathList als Zwischenschritt?! Eine andere Möglichkeit wäre es natürlich das nicht benötigte Ende der Liste "abzukoppeln". Doch dann kann ich mir die neue MathList auch sparen, denn dann ist ja die aktuelle MathList temporär für die find-Methoden "umgebaut".
Aber wäre das dann nicht wiederum eine Zweckentfremdung der next-Variablen des letzten benötigt Elements?
Ich lege erstens eine neue MathList an, die mit 'begin' beginnt, nutze zweitens die toString-Methode dieser MathList, um dann alles hinter der schließenden Klammer wegzuschneiden zu können. Mit dem geschnittenen String erzeuge ich im dritten Schritt die MathList die ich brauche.
Es geht auch anders 8) Über eine temporäre MathList gehst du dann, ja.

Eric_B
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 112
Registriert: 14. Okt 2010 22:44

Re: findAddOrSubOperation und findMulOrDivOperation fehlerha

Beitrag von Eric_B »

Ich habe es so gelöst das ich meine find Methoden und meine evaluateSimpleExpression bei ) abbrechen lasse.
Da ich evaluateSimpleExpression usw ja keine MathList übergeben kann.
(man könnte nur das erste Element der neuen Liste übergeben aber dann muss man die Liste auch bei ) abschneiden und dann kann ich mir den Aufwand mit dem Erstellen und Zuschneiden der neuen Liste auch einfach sparen und direkt damit arbeiten das ich bei ) abbreche (findAddOrSub und findMulOrDiv (und findSwap)) brauchen dann zwar noch einen Parameter aber das darf ich ja über Hilfsfunktionen abbilden. (Polymorphie der Funktionen)

Eric

Antworten

Zurück zu „Archiv“