2. Programmieraufgabe Klausur SS15

ek65baze
Windoof-User
Windoof-User
Beiträge: 29
Registriert: 24. Apr 2015 18:46

2. Programmieraufgabe Klausur SS15

Beitrag von ek65baze »

Hallo, ich wollte fragen ob sich noch jemand konkret an die Aufgabenstellung der 2. Programmieraufgabe der letzten Klausur erinnern kann.
Ich weiß noch das es eine Liste mit Knoten gab und man prüfen sollte ob dies einen korrekten B-Baum darstellt. Man sollte noch eine HashMap benutzen um zu prüfen welche Knoten man schon durchlaufen hat, kann mich aber an weitere Details nicht mehr erinnern.

Hallo
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 162
Registriert: 22. Apr 2015 19:03

Re: 2. Programmieraufgabe Klausur SS15

Beitrag von Hallo »

Ich kann mich leider nicht erinnern, aber weisst du was die 1. Programmieraufgabe als Aufgabenstellung hatte?

ek65baze
Windoof-User
Windoof-User
Beiträge: 29
Registriert: 24. Apr 2015 18:46

Re: 2. Programmieraufgabe Klausur SS15

Beitrag von ek65baze »

Die erste war soweit ich weiß, du hast 2 Listen mit einzelnen Buchstaben als Strings und einen comparator. Die Methode soll beide Wörter vergleichen und ausgeben welches Wort lexikographisch kleiner und welches größer oder ob beide gleich sind. Weiß nicht mehr ob das iterativ oder rekursiv implementiert werden sollte.

PY7
Neuling
Neuling
Beiträge: 7
Registriert: 3. Jun 2015 19:01

Re: 2. Programmieraufgabe Klausur SS15

Beitrag von PY7 »

Ich kann mich leider nicht erinnern, aber weisst du was die 1. Programmieraufgabe als Aufgabenstellung hatte?
in der erster Aufgabe mussten wir zwei Strings vergleichen, wobei jeder String in einer LinkedList gespeichert wurde. (iterativ)
Hallo, ich wollte fragen ob sich noch jemand konkret an die Aufgabenstellung der 2. Programmieraufgabe der letzten Klausur erinnern kann.
Ich weiß noch das es eine Liste mit Knoten gab und man prüfen sollte ob dies einen korrekten B-Baum darstellt. Man sollte noch eine HashMap benutzen um zu prüfen welche Knoten man schon durchlaufen hat, kann mich aber an weitere Details nicht mehr erinnern.
in der zweiter Aufgabe müssten wir ein "MultiwaySearchTree" auf Korrektheit überprüfen.(rekursiv)
wir hatten die Klasse "MultiwaySearchTreeNode", die eine LinkedList von "children" als lokale Variable hatte.
ich glaube die gegebene Struktur war eine richtige "MultiwaySearchTree" wenn keine der "children" gleich Wurzel war, und wenn der jetzige Knoten in einem vorherigen Durchlauf nicht besucht wurde (hier hat man die HashSet benutzt).

ek65baze
Windoof-User
Windoof-User
Beiträge: 29
Registriert: 24. Apr 2015 18:46

Re: 2. Programmieraufgabe Klausur SS15

Beitrag von ek65baze »

Ahh dankeschön. Könnte eine Lösung zur 2. ungefähr so aussehen?

Code: Alles auswählen

public boolean multiSearchTree(){
	return multiSearchTree(root, new HashSet<Node>());
}

private boolean multiSearchTree(Node n, set){
	for(Node child : n.childrens){
		if(set.contains(child) || child == root)
			return false;
			
		set.add(child);
		if(!multiSearchTree(child, set))
			return false;
	}
	return true;
}

string
Neuling
Neuling
Beiträge: 4
Registriert: 4. Apr 2016 09:36

Re: 2. Programmieraufgabe Klausur SS15

Beitrag von string »

Hi,
wozu brauchte man denn bei der ersten Aufgabe bei Strings einen Comparator?

ek65baze
Windoof-User
Windoof-User
Beiträge: 29
Registriert: 24. Apr 2015 18:46

Re: 2. Programmieraufgabe Klausur SS15

Beitrag von ek65baze »

Der Comperator entscheided für dich was lexikographisch kleiner, größer oder gleich ist. Das sollte das ganze vereinfachen, woher sollstest du denn z.b. wissen was größer ist, # oder % oder sind beide vlt. gleich? Der Comparator definiert das halt für dich.

string
Neuling
Neuling
Beiträge: 4
Registriert: 4. Apr 2016 09:36

Re: 2. Programmieraufgabe Klausur SS15

Beitrag von string »

ek65baze hat geschrieben:Der Comperator entscheided für dich was lexikographisch kleiner, größer oder gleich ist. Das sollte das ganze vereinfachen, woher sollstest du denn z.b. wissen was größer ist, # oder % oder sind beide vlt. gleich? Der Comparator definiert das halt für dich.
Aber hat String nicht schon ein compareTo und somit auch einen Vergleich für z.B. # , % ?

ek65baze
Windoof-User
Windoof-User
Beiträge: 29
Registriert: 24. Apr 2015 18:46

Re: 2. Programmieraufgabe Klausur SS15

Beitrag von ek65baze »

Ich glaube du solltest dir mal den Begriff lexikographisch klar machen, es geht nicht um das Vergleichen der Buchstaben sondern um den Stellenwert den sie besitzen.

string
Neuling
Neuling
Beiträge: 4
Registriert: 4. Apr 2016 09:36

Re: 2. Programmieraufgabe Klausur SS15

Beitrag von string »

Hm, ok, für mich gibt String::compareTo aber doch genau den stellenwert zurück. # ist kleiner als /. Der einzige unterschied ist ja das mir bei compareTo sogar noch die Stellenwertedistanz angegeben wird (z.B -12,0,12) und bei einem Comparator nur -1,0,1. Aber das ist ja auch <>0. Oder ist es wichtig, dass man es mit -1,0,1 macht?

ek65baze
Windoof-User
Windoof-User
Beiträge: 29
Registriert: 24. Apr 2015 18:46

Re: 2. Programmieraufgabe Klausur SS15

Beitrag von ek65baze »

Und was ist wenn der Kunde aber möchte das # größer als % ist? Das weißt du ja nicht, deswegen regelt der Comparator das für dich.

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

Re: 2. Programmieraufgabe Klausur SS15

Beitrag von Prof. Karsten Weihe »

ek65baze hat geschrieben:Und was ist wenn der Kunde aber möchte das # größer als % ist? Das weißt du ja nicht, deswegen regelt der Comparator das für dich.
Genau!

Im Video zu Generics und Collections ist noch ein (hoffentlich) motivierendes Beispiel, wozu Comparator gut ist:

Code: Alles auswählen

public class Studi {
    public String nachname;
    public String vorname;
    public int matrikelnummer;
}
Man kann nun zum Beispiel zwei Klassen von java.util.Comparator<Studi> ableiten, so dass Methode compare im einen Fall die Matrikelnummern vergleicht, im anderen Fall die Nachnamen und - falls die identisch sind - die Vornamen.

Eine Implementation eines Sortieralgorithmus mit einer Collection und einen Comparator (mit demselben generischen Parameter) als Argumente kann dann einmal verwendet werden, um Studierende nach Matrikelnummern zu sortieren, ein anderes Mal zum Sortieren nach Namen. Ist doch nett, oder? 8)

KW

string
Neuling
Neuling
Beiträge: 4
Registriert: 4. Apr 2016 09:36

Re: 2. Programmieraufgabe Klausur SS15

Beitrag von string »

Hallo,
ja, danke. Das mit dem Kunden machte es klar.
Das Bespiel mit den Studi Comparatoren war mir gleich klar. Allerdings hatte ich mich da schon beim Lesen des Pdf's gefragt, ob bei dem Vergleich der Namen nicht immer compareTo verwendet werden müßte? Im Video -> s1.vorname.compare(s2.vorname) etc.
Bei dem erklären der Comparatoren die um Number extended werden, wird auch Character als T extends Number verwendet, obwohl Character nicht von Number erbt? Wie wird das gemacht?

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

Re: 2. Programmieraufgabe Klausur SS15

Beitrag von Prof. Karsten Weihe »

Da scheint wohl etwas leicht fehlerhaft im Video zu sein, ist bisher noch keinem aufgefallen... :oops:

KW

Antworten

Zurück zu „Archiv“