Frage zu Praktikum 1, Aufgabe 1 ii) AssembleNumbers()

christophbued
Mausschubser
Mausschubser
Beiträge: 54
Registriert: 12. Mär 2012 13:43

Re: Frage zu Praktikum 1, Aufgabe 1 ii) AssembleNumbers()

Beitrag von christophbued »

mein du if (p == null )

(isInteger(p.data()) && s == null)


haben eben mal den debugger angeworfen und der sagt mit das in der zeile

// nächstes zeichen operator
if (!isOperator(p.data()) && s != null) {

p == null ist...

dann hab ich mir eine methode geschrieben die alles schritt für schritt macht da ist p aber nicht == null...

könnt ihr mir einfach schnell die Zeile berichtigen ...häng jetzt schon zwei tage an der Aufgabe...muss mal weiter kommen...:-(

genix
Windoof-User
Windoof-User
Beiträge: 39
Registriert: 16. Okt 2010 13:41

Re: Frage zu Praktikum 1, Aufgabe 1 ii) AssembleNumbers()

Beitrag von genix »

Hi,

änder mal alle außer das erste if zu "else if".

Oder füg zu den Bedingungen "p != null && " hinzu.

Und zum 1. Punkt:

Code: Alles auswählen

if (p == null) {
     if(s != null) s.setNext(null); // hier fehlte der check auf s != null
     return ;
}
Also: immer schön prüfen, wenn es nicht eindeutig ist, ob eine Variable einen 'null' Wert hat.

Julian1
Neuling
Neuling
Beiträge: 5
Registriert: 20. Apr 2012 21:39

Re: Frage zu Praktikum 1, Aufgabe 1 ii) AssembleNumbers()

Beitrag von Julian1 »

Ich habe mittlerweile meinen Fehler gefunden, es war unter anderem ein Fehler in der Hilfsmethode.
Das mit dem Debugger müsste ich mir eigentlich mal merken für die nächsten Praktika, auch in Aufgabe 2 habe ich sehr viel damit arbeiten müssen^^

christophbued
Mausschubser
Mausschubser
Beiträge: 54
Registriert: 12. Mär 2012 13:43

Re: Frage zu Praktikum 1, Aufgabe 1 ii) AssembleNumbers()

Beitrag von christophbued »

Soll AssembleNumbers() bzw AssemblePointNumbers() eigentlich auch Klammer finden und sie wie folgt einfügen????
das brauch man ja nachher aber in der aufgabestellung ist es nicht verlangt

"(12 + 12) +(34-3)"
(->12->+->12->) usw.

Benutzeravatar
JannikV
Nerd
Nerd
Beiträge: 609
Registriert: 24. Apr 2011 12:42

Re: Frage zu Praktikum 1, Aufgabe 1 ii) AssembleNumbers()

Beitrag von JannikV »

Mit den Klammern soll assembleXXX gar nichts machen. Also weder in ein anderes Element stecken, noch diese löschen.

VG

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

Re: Frage zu Praktikum 1, Aufgabe 1 ii) AssembleNumbers()

Beitrag von fabian.wagner »

Mit den Klammern soll assembleXXX gar nichts machen. Also weder in ein anderes Element stecken, noch diese löschen.
Was genau hättest du denn gemacht?

hier assemble = zusammenbauen, zusammenstellen etc.
Das heißt implizit auch, dass man keine neuen MathElements erzeugen soll! Sondern die alten bearbeiten muss... 8) Wenn man das macht, schlägt später ein Test fehl.

christophbued
Mausschubser
Mausschubser
Beiträge: 54
Registriert: 12. Mär 2012 13:43

Re: Frage zu Praktikum 1, Aufgabe 1 ii) AssembleNumbers()

Beitrag von christophbued »

Und was ist jetzt wenn ich eine Liste habe wo auch klammer enthalten sind....
gibt ja im test wie berück sichtige ich die dann???

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

Re: Frage zu Praktikum 1, Aufgabe 1 ii) AssembleNumbers()

Beitrag von bagwell »

christophbued hat geschrieben:Und was ist jetzt wenn ich eine Liste habe wo auch klammer enthalten sind....
gibt ja im test wie berück sichtige ich die dann???
Iterier doch einfach durch die ganze Liste und füg nur die Elemente zu einem zusammen, die eine Zahl darstellen.
Wenn in deine Liste eine Klammer oder ein Operator auftaucht, gehst du in deiner Schleife einfach eine Position weiter.

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

Re: Frage zu Praktikum 1, Aufgabe 1 ii) AssembleNumbers()

Beitrag von fabian.wagner »

bagwell hat geschrieben:
christophbued hat geschrieben:Und was ist jetzt wenn ich eine Liste habe wo auch klammer enthalten sind....
gibt ja im test wie berück sichtige ich die dann???
Iterier doch einfach durch die ganze Liste und füg nur die Elemente zu einem zusammen, die eine Zahl darstellen.
Wenn in deine Liste eine Klammer oder ein Operator auftaucht, gehst du in deiner Schleife einfach eine Position weiter.
Genau... und erzeuge bitte keine neuen MathElements :)

christophbued
Mausschubser
Mausschubser
Beiträge: 54
Registriert: 12. Mär 2012 13:43

Re: Frage zu Praktikum 1, Aufgabe 1 ii) AssembleNumbers()

Beitrag von christophbued »

jetzt bin ich total verwirrt AssembleNumbers() bzw. AssemblPointNumber() sollen doch solch eine liste

1 -> 2 -> 3 -> + -> 2-> 3->

zusammen zu solch einer liste
123-> + -> 23

also muss ich auch operatore beachten

aber klammer soll ich jetzt hier nicht beachten??

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

Re: Frage zu Praktikum 1, Aufgabe 1 ii) AssembleNumbers()

Beitrag von fabian.wagner »

christophbued hat geschrieben:jetzt bin ich total verwirrt AssembleNumbers() bzw. AssemblPointNumber() sollen doch solch eine liste

1 -> 2 -> 3 -> + -> 2-> 3->

zusammen zu solch einer liste
123-> + -> 23

also muss ich auch operatore beachten

aber klammer soll ich jetzt hier nicht beachten??
Hier gibt es ja keine Klammern. Ja, ein Anwendungsfall oben stimmt.

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

Re: Frage zu Praktikum 1, Aufgabe 1 ii) AssembleNumbers()

Beitrag von bagwell »

christophbued hat geschrieben:jetzt bin ich total verwirrt AssembleNumbers() bzw. AssemblPointNumber() sollen doch solch eine liste

1 -> 2 -> 3 -> + -> 2-> 3->

zusammen zu solch einer liste
123-> + -> 23

also muss ich auch operatore beachten

aber klammer soll ich jetzt hier nicht beachten??
Nochmal:
Ob du operatoren oder Klammern oder sonstwas in der Liste noch stehen hast, kann bei assembleNumbers() egal sein. Füge nur die Elemente zu einem Element zusammen die eine Zahl sind,
grobe Vorgehensweise:
IF element.bistDuEineZahl()==true
THEN füge die nächsten Elemente solange zusammen bis Element.bistDuEineZahl()==false;
ELSE Element weiterschalten

kain
Mausschubser
Mausschubser
Beiträge: 92
Registriert: 30. Sep 2009 13:49

Re: Frage zu Praktikum 1, Aufgabe 1 ii) AssembleNumbers()

Beitrag von kain »

Hallo, ich habe einen seltsamen Fall:

Fehlermeldung:

Expression 6 does not maintain the correct elements after calling assembleNumbers().
Expression 5 does not maintain the correct elements after calling assembleNumbers().
Expression 6 does not have the correct length after calling assembleNumbers().
Expression 5 does not have the correct length after calling assembleNumbers().

Liegt daran, da beim Parsen folgendes geschieht: 8923747823|4788923408|92304| statt 8923747823478892340892304. Passiert bei allen Zahlen in exp5 und exp6, die länger als 10 Stellen sind.

Hat einer eine Idee? Ich kann mir das nicht erklären. Benutze concat.

Danke.

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

Re: Frage zu Praktikum 1, Aufgabe 1 ii) AssembleNumbers()

Beitrag von Eric_B »

du prüfst ob es ein Integer ist ein Integer kann aber max 2147483647 seien von daher ist dann eben bei Großen Zahlen irgendwann Schluss also musst dir was anderes überlegen als Kriterium. (Reguläre Ausdrücke können helfen ;-))

kain
Mausschubser
Mausschubser
Beiträge: 92
Registriert: 30. Sep 2009 13:49

Re: Frage zu Praktikum 1, Aufgabe 1 ii) AssembleNumbers()

Beitrag von kain »

Danke, hast recht... :oops:

Antworten

Zurück zu „Archiv“