Aufgabe 4.3

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Aufgabe 4.3
Hat irgendwer 'ne Idee wie man die Aufgabe 4.3 löst?

Man kann die parseArr aus der parseVec bauen, wenn man die ein bisschen anpasst. Aber Beispiel2 (<[v,],[<[a],a>,[v,a]]>) funktioniert nicht.


ja ich wär auch ma für ne lösung dankbar, aber bitte keine grundsatzdiskussion :slight_smile:


[m]protected boolean parseArr() {

	switch (nextChar()) {

	case 'a':
	    return true;

	case '[': 
	    if (couldArr()) {
		if (parseArr()) {
		    while (peekChar() == ',') {
			nextChar();
			if (couldArr()) {
			    if (!parseArr()) return false;
			} else if (couldVec()) {
			    if (!parseVec()) return false;
			} else {
			    return false;
			}
		    }
		    return nextChar() == ']';
		}
	    } else if (couldVec()) {
		if (parseVec()) {
		    while (peekChar() == ',') {
			nextChar();
			if (couldArr()) {
			    if (!parseArr()) return false;
			} else if (couldVec()) {
			    if (!parseVec()) return false;
			} else {
			    return false;
			}
		    }
		    return nextChar() == ']';
	        }
	    }
	    /* fällt durch */
	default:
	    return false;
	}
}[/m]

Geht aber auch weng einfacher, hab meine erste lösung (die zwar funktioniert hat aber auch noch bug hatte das paar ungueltige selbsterfundene wörter teilweise als richtig anerkannt werden) noch weng anpassen lassen und da kam dann obiges raus, was bis jetzt jeden test überstanden hat.

mh…
Wieso hast du den Code so ausführlich geschrieben?
Also das dings funktioniert auch völlig analog zur parseVec-Methode.
Insofern ist der Code vielleicht nicht unbedingt leichter zu verstehen, aber auf jeden Fall genauso zweckmäßig. =)
→ Andere Variante (völlig analog zur parseVec-Methode):

protected boolean parseArr(){
switch (nextChar()) {
case ‘a’: return true;
case ‘[’: if ((couldVec() && parseVec()) || (couldArr() && parseArr())){ // check for Vec/Arr
while (peekChar()==‘,’){
nextChar(); //skip the ‘,’
if (couldVec()||couldArr()){ //check for next Vec/Arr
if (!parseVec()||!parseArr()) return false;
} else return false;
}
return nextChar()==‘]’; // check for closing current Vec
}
//else fall throught
default: return false;
}
}

omg Falsche Datei
lol ich kacknappL hab den falschen Code reingestellt :smiley:
Da ist noch ein kleiner Bug drin. Hier kann man irgendwie Beiträge net editieren oder? oO
also Korrektur hier:

protected boolean parseArr(){
switch (nextChar()) {
case ‘a’: return true;
case ‘[’: if ((couldVec() && parseVec()) || (couldArr() && parseArr())){ // check for Vec/Arr
while (peekChar()==‘,’){
nextChar(); //skip the ‘,’
if (couldVec()){ //check for next Vec (hier lag der Bug,sry)
if (!parseVec()) return false;
}
else if (couldArr()){ //check for next Arr
if (!parseArr()) return false;
} else return false;
}
return nextChar()==‘]’; // check for closing current Vec
}
//else fall throught
default: return false;
}
}


Oder so ja


räusper Diskutieren über die Aufgaben ist ja erwünscht, aber kompletten Code austauschen ist nicht so dolle. Ihr erinnert euch ja an die Regeln zum Plagiarismus, die ihr alle gelesen habt :wink:

edit: doch, man kann editieren, rechts oben sollte ändern stehen


hm… =)
Alles klar… stimmt schon. grml@Plagiarismus

Warum is das denn eigentlich so streng verboten? Also ich meine, eigentlich könnte man es ja jedem selbst überlassen, ob er seine Aufgaben macht oder nicht.
Spätestens in der Klausur muss er das Zeug doch können, denke ich. Die Schein-Hürde ist irgendwie ein bissl überbewertet, was meiner Meinung nach etwas übertrieben ist… oO :scared: :nuts: :slight_smile:

Zum Editieren finde ich allerdings nichts. Ich habe da nur die Buttons “Zitieren” und “Antworten”. :-/

EDIT: häää?? Nur bei diesem einen Beitrag jetzt kann ich “Ändern”… bei älteren nicht. Oder kann man das nur, solange noch keine Antwort danach kam?


Naja man könnte es schon jedem selber überlassen, ob er seine Programme selber schreibt oder von anderen abschreibt, Problem ist halt das dann sehr viel mehr Leute durch die Prüfungen rasseln würden. So müssen sich alle bemühen ihre Programme selber zu schreiben und man kann schneller festestellen ob das Studium für einen geeignet ist oder nicht und muss dazu nicht zuerst die Prüfungen nicht bestehen.

Edit:
Edit Button funktioniert! :smiley:


hm, ist auf jeden Fall ein Argument…
Naja, mir prinzipiell auch egal. :slight_smile: Hab mich halt nur immer gewundert, warum da so ein Gedröhne drum gemacht wird, mit aufwendigen Kontroll-Programmen, welche die Code-Struktur aller Programme vergleichen.
=)


Es ist nicht nachvollziehbar, wer von wem kopiert hat, von daher gibt es im Fall von Abschreiben für alle Betroffenen 0 Punkte - allein deswegen sollte es schon im Interesse jedes einzelnen liegen, keinen kompletten Programmcode zu posten. Einzelne Ausschnitte sind natürlich ok. Sich untereinander zu helfen und auszutauschen ist erlaubt und auch sehr sinnvoll - man lernt schließlich auch etwas, wenn man es einem anderen erklärt. Bei copy&paste geht der Lerneffekt dagegen eher gegen 0…


Klar kann man das jedem selber überlassen. Aber will man das? In der Uni sollen Wissenschaftler ausgebildet werden, die „Wissen schaffen“ können. Abschreiben ist kein neues Wissen schaffen, sondern Wissen „stehlen“. Und sowas will man nicht an der Uni.
Genauso wie man in nem Sportverein keine Leute haben will die durch Dopping oder Absprache gewinnen, sondern die durch eigene Leistung und die richtigen Taktiken/Spielzüge des Trainers eben besser sind als andere.
In der Metapher ist dann das Plagiarismusgedröhne die Prävention und die regelmäsigen Doppingkontrollen. :wink:


Das mit dem editieren scheint immer nur eine Zeit nach Erstellung des Beitrages zu gehen