Fragen zum ersten Praktikum

studypad
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 158
Registriert: 30. Mär 2011 11:46

Fragen zum ersten Praktikum

Beitrag von studypad » 15. Apr 2012 16:48

Sind MathList.first Zeiger immer NULL zur Initialisierung? Oder müssen wir beim buildList uns den first-Zeiger erst NULL setzen?
Werden buildList-Ergebnisse an die bestehende Liste dran gehängt oder muss man "überschreiben"?

studypad
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 158
Registriert: 30. Mär 2011 11:46

Re: Fragen zum ersten Praktikum

Beitrag von studypad » 15. Apr 2012 17:52

Ist die Division durch Null selbst zu sichern oder sind keine Eingaben solchen Unfugs vorgesehen? Ist die Klammerung korrekt?

skY
Erstie
Erstie
Beiträge: 20
Registriert: 21. Sep 2011 15:17

Re: Fragen zum ersten Praktikum

Beitrag von skY » 15. Apr 2012 19:35

Task 1 (ii)

"Implement the two methods assembleIntNumbers() and assemblePointNumbers() in MathList. This has to be a first
step for evaluating a mathematical expression."

Es gibt im Template jedoch nur die Methoden assembleNumbers() und assemblePointNumbers()

Deshalb die kurze Frage, ob assembleNumbers() aufgerufen wird, welches dann die Int und die Point Methode aufruft, oder beide Methoden einzeln bzw. nacheinander aufgerufen werden und nur das "Int" unter den Tisch gefallen ist ;)

skY
Erstie
Erstie
Beiträge: 20
Registriert: 21. Sep 2011 15:17

Re: Fragen zum ersten Praktikum

Beitrag von skY » 15. Apr 2012 23:27

Ah, okay.
Nach dem ich mich wunderte, warum ein Test bei mir nicht lief bzw. einen Error schmiss, weiß ich jetzt wohl, wie das aufgebaut werden soll.

Also:
Beim Test "simplePointNumberExpression" sollen ja 27 Token rauskommen. Das passiert auch bei assembleNumbers, wenn man den '.' eben nicht gleich richtig verarbeitet. Bei richtiger Verarbeitung sinds 19.

Aber worin liegt da der praktische Wert? Also warum nicht nur eine Methode, die gleich alles richtig verarbeitet? So wie ich das jedenfalls implementiert habe ist assemblePointNumbers einfach ein copy&paste von assembleNumbers mit einer winzigen Änderung bei einem Vergleich.

Wenn ich diesen Vergleich also weglasse und beides wieder als unterschiedliche Methoden durchlaufen lasse (statt bei assembleNumbers() einfach die Point Methode aufzurufen :mrgreen: ) ist es auch okay - kommt also das "richtige" Ergebnis raus.


Noch eine Anmerkung - beim Test der mit testTask1 benannt ist werden auch die Expressions 3-6 mitgetestet, die unter anderem Klammern enthalten, die ja eigentlich in task1 noch ignoriert werden sollen. Weiß nicht ob es beabsichtigt ist, nochmal fragen kostet ja nix.

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

Re: Fragen zum ersten Praktikum

Beitrag von fabian.wagner » 16. Apr 2012 08:20

studypad hat geschrieben:Sind MathList.first Zeiger immer NULL zur Initialisierung? Oder müssen wir beim buildList uns den first-Zeiger erst NULL setzen?
Werden buildList-Ergebnisse an die bestehende Liste dran gehängt oder muss man "überschreiben"?
MathList.first pointer sind nicht immer NULL bei der Initialisierung. Es gibt verschiedene Konstruktoren!
Mit buildList() werden die Zeiger auf NULL gesetzt.

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

Re: Fragen zum ersten Praktikum

Beitrag von fabian.wagner » 16. Apr 2012 08:26

studypad hat geschrieben:Ist die Division durch Null selbst zu sichern oder sind keine Eingaben solchen Unfugs vorgesehen? Ist die Klammerung korrekt?
Siehe Aufgabenstellung:
Further-
more, we restrict ourselves to syntactically correct mathematical expressions.
Die Division durch null, sowie nicht endliche Zahlen (Zahlen mit unendlich vielen Nachkommastellen) fallen unter diesem Punkt.
Im Grunde kann man sagen: Alles was java.lang.BigInteger und java.lang.BigDecimal nicht berechnen kann, muss nicht berücksichtigt werden.

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

Re: Fragen zum ersten Praktikum

Beitrag von fabian.wagner » 16. Apr 2012 08:29

skY hat geschrieben:Task 1 (ii)

"Implement the two methods assembleIntNumbers() and assemblePointNumbers() in MathList. This has to be a first
step for evaluating a mathematical expression."

Es gibt im Template jedoch nur die Methoden assembleNumbers() und assemblePointNumbers()

Deshalb die kurze Frage, ob assembleNumbers() aufgerufen wird, welches dann die Int und die Point Methode aufruft, oder beide Methoden einzeln bzw. nacheinander aufgerufen werden und nur das "Int" unter den Tisch gefallen ist ;)
Nein, da habe ich mich in der Aufgabenstellung vertan. Bitte nichts bei dieser Methodensignatur verändern! Andernfalls laufen die Tests nicht.

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

Re: Fragen zum ersten Praktikum

Beitrag von fabian.wagner » 16. Apr 2012 08:33

Noch eine Anmerkung - beim Test der mit testTask1 benannt ist werden auch die Expressions 3-6 mitgetestet, die unter anderem Klammern enthalten, die ja eigentlich in task1 noch ignoriert werden sollen. Weiß nicht ob es beabsichtigt ist, nochmal fragen kostet ja nix.
Damit ist nur gemeint, dass Klammern und Operationen nicht zu einem Element zusammengefügt/angehängt werden sollen. Siehe Beispiel in der Aufgabenstellung. Denke aber, dass sollte eher kein Problem darstellen!

bagwell
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 109
Registriert: 15. Nov 2010 09:18

Re: Fragen zum ersten Praktikum

Beitrag von bagwell » 16. Apr 2012 10:32

fabian.wagner hat geschrieben:
skY hat geschrieben:Task 1 (ii)

"Implement the two methods assembleIntNumbers() and assemblePointNumbers() in MathList. This has to be a first
step for evaluating a mathematical expression."

Es gibt im Template jedoch nur die Methoden assembleNumbers() und assemblePointNumbers()

Deshalb die kurze Frage, ob assembleNumbers() aufgerufen wird, welches dann die Int und die Point Methode aufruft, oder beide Methoden einzeln bzw. nacheinander aufgerufen werden und nur das "Int" unter den Tisch gefallen ist ;)
Nein, da habe ich mich in der Aufgabenstellung vertan. Bitte nichts bei dieser Methodensignatur verändern! Andernfalls laufen die Tests nicht.
Heißt das "assembleNumbers()" soll aus

Code: Alles auswählen

"(->1->2->.3->4->+->5->)"
das hier machen:

Code: Alles auswählen

"(->12->.34->+->5->)"
und assemblePointNumbers() im Anschluss das hier?

Code: Alles auswählen

"(->12.34->+->5->)"
Warum wird das nicht in einem Schritt gemacht?

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

Re: Fragen zum ersten Praktikum

Beitrag von Senchy » 16. Apr 2012 11:18

Hi,
Methoden sollten möglichst immer nur eine "Aufgabe" haben, bzw nur eine Sache auf einmal machen.
das Zusammenfassen der Zahlen ist eine andere Operation als das Zusammenfassen von Gleitkommazahlen, daher bietet sich hier eine Trennung an (das ist auch sehr praktisch wenn man sich eigene Tests schreibt - man kann beides getrennt testen ;) )
Gruß

Edit: noch als Nachtrag eine Frage: soll assemblePointNumbers nur 3 Elemente (2 zahlen und den Punk) zu einem zusammenfassen, oder soll in der Methode noch assembleNumbers durchgeführt werden (bzw kann man davon ausgehen, dass assembleNumbers vor dem Aufruf durchgeführt wird?)
Zuletzt geändert von Senchy am 16. Apr 2012 11:29, insgesamt 1-mal geändert.

studypad
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 158
Registriert: 30. Mär 2011 11:46

Re: Fragen zum ersten Praktikum

Beitrag von studypad » 16. Apr 2012 11:18

Nein, ich glaube es ist so gemeint, dass mit der einen alle Kommazahlen assembliert werden während mit der anderen ausschließlich Ganze Zahlen assembliert werden. Nicht Vorkomma oder Nachkommasequenzen, oder etwas doch?

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

Re: Fragen zum ersten Praktikum

Beitrag von fabian.wagner » 16. Apr 2012 14:33

bagwell hat geschrieben: Heißt das "assembleNumbers()" soll aus

Code: Alles auswählen

"(->1->2->.3->4->+->5->)"
das hier machen:

Code: Alles auswählen

"(->12->.34->+->5->)"
und assemblePointNumbers() im Anschluss das hier?

Code: Alles auswählen

"(->12.34->+->5->)"
studypad hat geschrieben:Nein, ich glaube es ist so gemeint, dass mit der einen alle Kommazahlen assembliert werden während mit der anderen ausschließlich Ganze Zahlen assembliert werden. Nicht Vorkomma oder Nachkommasequenzen, oder etwas doch?
JA GENAU!!!

Nein auch die Kommas bleiben noch als einzelnes Element in der Liste enthalten. Siehe Beispiel:
Dateianhänge
AssembleNumbers.png
AssembleNumbers.png (15.08 KiB) 869 mal betrachtet
Zuletzt geändert von fabian.wagner am 18. Apr 2012 11:57, insgesamt 1-mal geändert.

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

Re: Fragen zum ersten Praktikum

Beitrag von Senchy » 16. Apr 2012 15:11

Mein vorgehen war jetzt so:

nur numbers macht aus
->1->2->3->.->4->5->6->
->123->.->456->

nur point macht aus
->1->2->3->.->4->5->6->
->1->2->3.4->5->6->

erst number dann points macht aus
->1->2->3->.->4->5->6->
->123.456->

damit bestehen zumindest die Tests (auch meine eigenen) und einen Wiederspruch zur Aufgabenstellung und zur Doku habe ich hier auch nicht oder?

Gruß

studypad
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 158
Registriert: 30. Mär 2011 11:46

Re: Fragen zum ersten Praktikum

Beitrag von studypad » 16. Apr 2012 16:32

nur points soll wirklich so arbeiten? das wird nämlich nicht explizit so getestet.

skY
Erstie
Erstie
Beiträge: 20
Registriert: 21. Sep 2011 15:17

Re: Fragen zum ersten Praktikum

Beitrag von skY » 16. Apr 2012 16:33

Ich habe es jetzt so gemacht, dass assembleNumbers nur die Zahlen nimmt, d.h. aus sowas wie 123.456 wird eben 123|.|456

Und bei assemblePoint wird ebenfalls alles zusammengefasst, nur eben die Gleitkommazahlen richtig. Bedeutet aus z.B. 1|2|+|3|.|4 wird dann komplett 12|+|3.4
eben komplett. Die Tests für Task1 laufen damit, sollte wohl okay sein. Oder soll es explizit so sein, dass PointNumbers nur die vorher falsch zusammengefügten Gleitkommazahlen richtig verwurstet?

Antworten

Zurück zu „Archiv“