Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Prüfungen im Bachelor-Studium (1. - 5. Semester) » aud » Forendiskussionen (Übersicht)
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
pruefungen:bachelor:aud:loesungws08 [17.02.2013 21:37] – Dawodo | pruefungen:bachelor:aud:loesungws08 [11.05.2019 12:09] (aktuell) – SpeedyGonzalez | ||
---|---|---|---|
Zeile 78: | Zeile 78: | ||
==== Aufgabe 4 - ADT ==== | ==== Aufgabe 4 - ADT ==== | ||
**a)** | **a)** | ||
- | | + | < |
- | contains(x, append(x, L)) = 1 + contains(x, L) | + | contains(x, create) = false |
- | contains(x, append(y, L)) = contains(x, L) | + | contains(x, append(x, L)) = true |
+ | contains(x, append(y, L)) = contains(x, L) | ||
+ | </ | ||
**b)** | **b)** | ||
- | A -> D -> create | + | A -> D |
**c)** | **c)** | ||
- | + | < | |
- | append(head(append(D, | + | append(head(append(D, |
- | A1 | + | A1 |
- | = append(head(prepend(D, | + | = append(head(prepend(D, |
- | A1 | + | A1 |
- | = append(head(prepend(D, | + | = append(head(prepend(D, |
- | A3 | + | A3 |
- | = append(D, prepend(A, create)) = | + | = append(D, prepend(A, create)) = |
- | A2 | + | A2 |
- | = prepend(A, append(D, create)) = | + | = prepend(A, append(D, create)) = |
- | A1 | + | A1 |
- | = prepend(A, prepend(D, create)) | + | = prepend(A, prepend(D, create)) |
+ | </ | ||
==== Aufgabe 5 - Pseudo-Zufallszahlen ==== | ==== Aufgabe 5 - Pseudo-Zufallszahlen ==== | ||
Zeile 119: | Zeile 121: | ||
return lin(1, 2, 3, n); | return lin(1, 2, 3, n); | ||
} | } | ||
+ | private static int lin(int a, int b, int c, int steps) { ... | ||
</ | </ | ||
Zeile 126: | Zeile 129: | ||
f(2) = 3 \\ | f(2) = 3 \\ | ||
- | Aus dem gegebenen Aufruf und dieser Basisfälle lässt sich schließen: \\ | + | Aus dem gegebenen Aufruf |
- | a = 1 = f(0) -> f(n - 3) \\ | + | a = 1 = f(0) --> |
- | b = 2 = f(1) -> f(n - 2) \\ | + | b = 2 = f(1) --> |
- | c = 3 = f(2) -> f(n - 1) \\ | + | c = 3 = f(2) --> |
+ | |||
+ | Das Wichtige an dieser Aufgabe ist sich bewusst zu machen, wie die Werte im angegebenem Aufruf, mit den Basisfällen bzw. f(n-3), f(n-2), f(n-1) in der angegebenen Formel korrespondieren. Das Ziel ist ja diese Werte der Formel in Java-Code auszudrücken. | ||
Somit wissen wir: \\ | Somit wissen wir: \\ | ||
Zeile 158: | Zeile 163: | ||
return a; | return a; | ||
- | lin(b, c, 1 + (((c - b) * a) % 100), steps - 1); | + | return |
} | } | ||
</ | </ | ||
Zeile 168: | Zeile 173: | ||
f(0) = lin(1, 2, 3, 0) \\ | f(0) = lin(1, 2, 3, 0) \\ | ||
Das Ergebnis steht in Variable a. | Das Ergebnis steht in Variable a. | ||
+ | |||
**c)** | **c)** | ||
Zeile 177: | Zeile 183: | ||
while(n > 0) { | while(n > 0) { | ||
- | int fn = 1 + (((c - b) * a) % 100) | + | int fn = 1 + (((c - b) * a) % 100); |
a = b; | a = b; | ||
b = c; | b = c; | ||
Zeile 236: | Zeile 242: | ||
**a)** | **a)** | ||
- | Der Wert jedes Knotens muss größer, als der seiner Kinder sein. | + | Der Wert jedes Knotens muss größer |
**b)** | **b)** | ||
Zeile 256: | Zeile 262: | ||
<code java> | <code java> | ||
public int parentIndex (int childIndex) { | public int parentIndex (int childIndex) { | ||
- | return (childIndex - 1) / 2; | + | return |
+ | //Oder auch einfach nur | ||
+ | // return childIndex/2; | ||
} | } | ||
</ | </ |