Hilfe zur Klausuraufgabe Klausur WS 2011/12 (Mrz 2012)

Ort
Rhein-Main-Gebiet
Hochschulabschluss
Bachelor of Science
2. Hochschulabschluss
Master of Science
Studiengang
M.Sc. Wirtschaftswissenschaft
ECTS Credit Points
60 von 120
Hier meine Ergebnisse, ohne Gewähr.

Aufgabe 1:
R (KE1, S. 7), R (KE1, S. 9), F (KE1, S. 33), R (KE2, S. 9), R (KE1, S. 35)
F (KE1, S. 44f.), R (KE1, S. 65), R (KE1, S. 78), R (KE1, S. 79), F (KE1, S. 89)

Aufgabe 2a):
IF root nicht= NIL AND ....
prev:=curr|next;
ok:=FALSE;
curr:=root;
RETURN NOT ok;
nein

Aufgabe 2b):
res:=resleft+resright+1;
nnodes:=ermittleProduktanzahl(root);

Aufgabe 3a): ja, nein, ja, ja, nein, ja

Aufgabe 3b): nein, ja, nein, ja, ja, ja

Aufgabe 3c):
found: 1, wenn gefunden, sonst 0
value: gefunden Wert oder 0
 
Danke für das Teilen deiner Lösungen, auch hier möchte ich meinen Senf dazugeben :)

Aufgabe 2a
1. Fehler: FUNCTION einfuegeElement(VARIABLE root: PPTR; prec: PDAT) : PPTR;
Begründung: Die Funktion soll laut Aufgabenstellung true oder false also BOOLEAN zurückgeben.
2. Fehler: IF root != NIL AND CompareStrings(...) != 0 THEN
3. Fehler: prev := curr|.left;
4. Fehler: curr := root;
5. Fehler: RETURN NOT ok;
Bei der Frage, ob der Vergleich mit dem Wurzelelement ausreichend ist, hätte ich gedacht, dass die Antwort "ja" sein müsste. So wie ich den Code (und die Beschreibung der Funktion in der Aufgabenstellung) verstehe, wird beim Einfügen eines Elements in den Baum geprüft, ob die Gruppe übereinstimmt. Entsprechend sollten alle der Wurzel nachfolgenden Elemente die gleiche Gruppe aufweisen.

Aufgabe 2c
1. Fehler: FUNCTION aktualisierePreis(root: PPTR, prec: PDAT) : BOOLEAN;
Begründung: Hier müsste root doch eigentlich als VARIABLE übergeben werden (wie in der Funktion aus Aufgabenteil a).
2. Fehler: IF rescmp < 0 THEN pos := pos|.left;
Begründung: Ich denke in diesem Falle müsste pos := pos|.right sein.
3. Fehler: ELSE pos := pos|.right;
Begründung: Und hier entsprechend pos := pos|.left;

Aufgabe 3a
ja, nein, ja, nein, nein, ja
Begründung: Es müssen Kommata innerhalb der geschweiften Klammern verwendet werden. Ist mir aber auch erst aufgefallen, als ich es abgetippt hab ;)

Aufgabe 3b
nein, ja, nein, nein, ja, ja
Begründung: Einer signed Variablen einen unsigned Wert zuzuweisen müsste doch eigentlich verlustfrei möglich sein.

Aufgabe 3c
found:
- abhängig von der tatsächlichen Befüllung des Baumes
- 0 wenn der Baum leer ist, oder der Baum nur Knoten mit Zahlen > 10 enthält
- 1 wenn der Baum Knoten enthält die < 10 sind

value:
- abhängig von der tatsächlichen Befüllung des Baumes
- Wert des Knotens (Zahl) der bei aufsteigender Sortierung nach 10 als nächstes kommt

Aufgabe 3d
Teil 1:
n > 2: Summe fibrek(n-2) + fibrek(n-1)
1: 1
4: 1 + 1 + 2 + 3 = 7
7: 1 + 1 + 2 + 3 + 5 + 8 + 13 = 33

Teil 2:
1. Fehler: unsigned int ... Korrektur : unsigned int a = 0, b = 1, c = 0, i;
2. Fehler: for(i = 3; i < n; i++) Korrektur: for (i = 2; i <= n; i++)
3. Fehler: b = a; Korrektur: b = c;
4. Fehler: return a; Korrektur: return c;
 
1. Fehler: FUNCTION einfuegeElement(VARIABLE root: PPTR; prec: PDAT) : PPTR;
Begründung: Die Funktion soll laut Aufgabenstellung true oder false also BOOLEAN zurückgeben.
Den hatte ich übersehen :bugeye:
Bei der Frage, ob der Vergleich mit dem Wurzelelement ausreichend ist, hätte ich gedacht, dass die Antwort "ja" sein müsste. So wie ich den Code (und die Beschreibung der Funktion in der Aufgabenstellung) verstehe, wird beim Einfügen eines Elements in den Baum geprüft, ob die Gruppe übereinstimmt. Entsprechend sollten alle der Wurzel nachfolgenden Elemente die gleiche Gruppe aufweisen.
Ich hatte den Hinweis überlesen (schon wieder zu oberflächlich :redface:), dass in einem Binärbaum nur je eine Produktgruppe abgelegt wird. Damit ändere ich meine Meinung auch in ja.

Bei Aufgabe 2c war ich noch komplett im Dunklen gestanden. Jetzt sehe ich klarer :thumbsup: Gehört in FUNCTION hinter root:PPRT nicht ein ";" statt eines ","?

Aufgabe 3a
ja, nein, ja, nein, nein, ja
Begründung: Es müssen Kommata innerhalb der geschweiften Klammern verwendet werden. Ist mir aber auch erst aufgefallen, als ich es abgetippt hab ;)
Stimmt, wieder was übersehen :redface:

Einer signed Variablen einen unsigned Wert zuzuweisen müsste doch eigentlich verlustfrei möglich sein.
Laut der Übersicht in KE1, S. 65 ist die Zuweisung zwischen signed und unsigned in beide Richtungen von möglichen Wertverfälschungen betroffen

found:
- abhängig von der tatsächlichen Befüllung des Baumes
- 0 wenn der Baum leer ist, oder der Baum nur Knoten mit Zahlen > 10 enthält
- 1 wenn der Baum Knoten enthält die < 10 sind
Da lag ich mal schwer daneben. Code lesen will gelernt sein :paperbag:

value:
- abhängig von der tatsächlichen Befüllung des Baumes
- Wert des Knotens (Zahl) der bei aufsteigender Sortierung nach 10 als nächstes kommt
Müsste das nicht "vor 10" heißen? Nur bei Knoten <= 10 findet eine Zuweisung auf pvalue statt.

4: 1 + 1 + 2 + 3 = 7
Der erste Aufruf ist fibrek(4), der dann z=fibrek(3)+fibrek(2) aufruft. Bei fibrek(3) erfolgt der Aufruf z=fibrek(2)+fibrek(1).
Bei fibrek(2) wird z=2 zurückgegeben, da n > 2 nicht erfüllt ist. Dasselbe gilt bei fibrek(1). Daher komme ich in der Summe auf 5. Wo ist mein Denkfehler?
 
Gehört in FUNCTION hinter root:PPRT nicht ein ";" statt eines ","?
Da hast du völlig recht.

Laut der Übersicht in KE1, S. 65 ist die Zuweisung zwischen signed und unsigned in beide Richtungen von möglichen Wertverfälschungen betroffen
Jepp, mein Fehler :facepalm:

Müsste das nicht "vor 10" heißen? Nur bei Knoten <= 10 findet eine Zuweisung auf pvalue statt.
Interessant, wie man nach 2-3 Wochen bei der gleichen Aufgabe zu einem unterschiedlichen Ergebnis kommt. Ich denke mittlerweile, dass (je nach Befüllung des Baumes) der nächstgrößere bzw. nächstkleinere Wert in value enthalten sein kann.

Wo ist mein Denkfehler?
Tja, das ist eine gute Frage. Ich blick da meine Herangehensweise leider grad selbst nicht mehr ganz, vermute aber, dass ich davon ausging, dass die Funktion einfach die Fibonacci-Folge bis zur n-ten Stelle aufsummiert. Dies tut sie aber offensichtlich bei genauerem Hinsehen nicht...
Hm, wenn mir dazu noch was einfällt, melde ich mich nochmal :confused:
 
Tja, das ist eine gute Frage. Ich blick da meine Herangehensweise leider grad selbst nicht mehr ganz, vermute aber, dass ich davon ausging, dass die Funktion einfach die Fibonacci-Folge bis zur n-ten Stelle aufsummiert. Dies tut sie aber offensichtlich bei genauerem Hinsehen nicht...
Hm, wenn mir dazu noch was einfällt, melde ich mich nochmal :confused:
Ich meine inzwischen erkannt zu haben, dass jeweils die n-te Fibo-Zahl ausgegeben wird. Daher habe ich nun folgende Ergebnisse:
1 --> 1
4 --> 3
7 --> 13
Mein Denkfehler oben war, dass bei fibrek(2) 2 zurückgegeben wird, da z immer geich 1 gesetzt wird. Für fibrek(1) und fibrek(2) wird jeweils 1 retourniert.
 
Zu Aufgabe 1.9)
Das müsste meiner Meinung nach FALSCH sein.
bei der flexiblen 3.Schicht-Architektur kann man Leistungen anfordern.
Bei der strengen 3.Schicht-Architektur kann man nur dne Zugriff haben.
 
Zurück
Oben