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 ÜberarbeitungLetzte ÜberarbeitungBeide Seiten, nächste Überarbeitung | ||
pruefungen:bachelor:aud:loesungss10 [26.07.2013 19:48] – Dawodo | pruefungen:bachelor:aud:loesungss10 [28.03.2016 11:52] – Marcel[Inf] | ||
---|---|---|---|
Zeile 26: | Zeile 26: | ||
**e)** Richtig | **e)** Richtig | ||
- | **f)** 2. und 3. Antwort sind richtig | + | **f)** 2. und 3. Antwort sind richtig |
==== Aufgabe 2 - AVL-Bäume ==== | ==== Aufgabe 2 - AVL-Bäume ==== | ||
Zeile 217: | Zeile 217: | ||
while(i < left.length && j < right.length) { | while(i < left.length && j < right.length) { | ||
- | if(left[i] < right[j]) { | + | if(left[i] <= right[j]) { |
result[k] = left[i++]; | result[k] = left[i++]; | ||
} else { | } else { | ||
Zeile 233: | Zeile 233: | ||
} | } | ||
- | while(j < left.length) { | + | while(j < right.length) { |
result[k] = right[j]; | result[k] = right[j]; | ||
Zeile 273: | Zeile 273: | ||
^ Nürnberg | Würzburg | | ^ Nürnberg | Würzburg | | ||
^ Nürnberg | Hof | | ^ Nürnberg | Hof | | ||
+ | |||
+ | Es sind auch leichte Abwandlungen hiervon gültig. | ||
**c)** | **c)** | ||
- | AD Holledau <-> Passau | + | (Scheinbar nicht mehr Stoff aktueller Semester) |
+ | |||
+ | Ein Euler-Pfad ist ein Pfad, der jede Kante exakt einmal enthält. | ||
+ | Mögliche Lösung: | ||
==== Aufgabe 7 - UML ==== | ==== Aufgabe 7 - UML ==== | ||
**a)** | **a)** | ||
- | {{: | + | {{: |
- | {{: | + | {{: |
**b)** | **b)** | ||
- | Eventuell | + | (Scheinbar |
==== Aufgabe 8 - Rekursion und Iteration ==== | ==== Aufgabe 8 - Rekursion und Iteration ==== | ||
**a)** | **a)** | ||
- | Kaskadenartige Rekursion, da mehrere rekursive Aufrufe im Rumpf vorkommen. | + | Kaskadenartige Rekursion, da mehrere rekursive Aufrufe im Rumpf vorkommen.(auf Schleife achten) |
**b)** | **b)** | ||
Zeile 306: | Zeile 311: | ||
private static int knapsack (Item [ ] items , int capacity) { | private static int knapsack (Item [ ] items , int capacity) { | ||
if(maxKnown[capacity]!= -1) { | if(maxKnown[capacity]!= -1) { | ||
- | return | + | return maxKnown[capacity]; |
} | } | ||
Zeile 313: | Zeile 318: | ||
int spaceLeft = capacity − items [i].size; | int spaceLeft = capacity − items [i].size; | ||
if(spaceLeft >= 0 ) { | if(spaceLeft >= 0 ) { | ||
- | int value = knapsack (items, spaceLeft) + items [i].value; | + | int value = knapsack(items, |
if(value > maxValue) { | if(value > maxValue) { | ||
Zeile 343: | Zeile 348: | ||
< | < | ||
- | **LO:** Falsch, | + | **LO:** Falsch, |
- | kfs = 1, kf = 1 | + | k = 1, kf = 1, kfs = 1 |
- | kf! - 1 = 0 | + | kfs = kf! - 1 |
+ | 1 = 1 - 1 | ||
+ | 1 = 0 | ||
- | **RO:** Richtig, Summe wird bis zum momentanen k gemacht, wie im code! | + | **RO:** Richtig, Summe wird bis zum momentanen k gebildet |
- | **LU:** Falsch, | + | **LU:** Falsch, |
- | kfs = 1, kf = 1 | + | k = 1, kf = 1, kfs = 1 |
- | kfs + k! = 2 | + | kf = kfs + k! |
+ | 1 = 1 + 1! | ||
+ | 1 = 2 | ||
**RU:** Falsch, es wird bis n-1 summiert, egal wie oft die schleife durchlaufen wird | **RU:** Falsch, es wird bis n-1 summiert, egal wie oft die schleife durchlaufen wird | ||
- | kfs = 1, kf = 1 | + | Alternativ: Schon vor der Schleife ungültig: |
- | (k + 1)! = 2 | + | k = 1, kf = 1, kfs = 1 |
+ | ... ∧ kf = (k + 1)! ∧ ... | ||
+ | ... ∧ 1 = (1 + 1)! ∧ ... | ||
+ | ... ∧ 1 = 2 ∧ ... | ||
</ | </ | ||
**b) ii)** | **b) ii)** | ||
< | < | ||
- | Zu zeigen: | + | Zu zeigen: |
wp("kf *= k; kfs += kf; k++;", kfs = ∑ i! ∧ kf = (k-1)! ∧ 1 <= k <= n) = | wp("kf *= k; kfs += kf; k++;", kfs = ∑ i! ∧ kf = (k-1)! ∧ 1 <= k <= n) = | ||
Zeile 376: | Zeile 388: | ||
</ | </ | ||
- | old: | + | **b) ii)** |
- | + | V = (n - 1) - k | |
- | < | + | |
- | wp(" | + | |
- | = wp("kf = kf*k, kfs = kfs + kf, k = k+1" kfs = ∑i! ∧ kf = k! ∧ 1 <= k ü 1 <= n) | + | |
- | = wp("kf = kf*k, kfs = kfs + kf, k = k+1" kfs + kf = ∑i! ∧ kf = k! 1 <= k+1 <=n) | + | |
- | = kfs + kf * k = ∑ i kf * k = k! ∧ 1 <= k + 1 <= n | + | |
- | = kfs = ∑i! - kf*k ∧ kf = (k-1)! ∧ 0 <= k <= n-1 | + | |
- | <-- b ∧ I = ∑i! ∧ kf= (k-1)! ∧ 1 <= k <= n | + | |
- | </ | + | |
+ | k wird sukzessive erhöht, während (n-1) von der Eingabe abhängig, aber im Programm selbst konstant ist. | ||
+ | V ist damit monoton fallend. Durch die Abbruchbedingung der Schleife ist V nach unten durch die 0 beschränkt. |