Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Prüfungen im Bachelor-Studium (1. - 5. Semester) » aud » Forendiskussionen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
Nächste ÜberarbeitungBeide Seiten, nächste Überarbeitung
pruefungen:bachelor:aud:loesung-miniklausur-15 [03.03.2016 09:54] tomabrafixpruefungen:bachelor:aud:loesung-miniklausur-15 [09.01.2018 11:09] Zulleyy3
Zeile 11: Zeile 11:
 ==== Aufgabe 2 - Rekursion ==== ==== Aufgabe 2 - Rekursion ====
 <code java> <code java>
- public static List<List<Long>> pm(long n){ +static List<List<Long>> potenzmenge(long n) { 
- List<List<Long>> pm = new ArrayList(); + List<List<Long>> pm = new ArrayList<>(); 
- if(n==0){ + if (n <= 0) { 
- pm.add( new ArrayList<Long>() );+ // Basisfall 
 + pm.add(new ArrayList<Long>()); 
 + } else { 
 + // Rekursion 
 + List<List<Long>> rek = potenzmenge(n - 1); 
 + // Ergebnisse zusammenfuehren 
 + for (List<Long> ohneN : rek) { 
 + List<Long> mitN = new ArrayList<>(ohneN); // *noch* ohne n 
 + mitN.add(n); 
 + pm.add(mitN); 
 + pm.add(ohneN);
  }  }
- else{ 
- List<List<Long>> rek = pm(n-1); 
- for(List<Long> ohneN : rek){ 
- List<Long> mitN = new ArrayList(ohneN); 
- mitN.add(n); 
- pm.add(mitN); 
- pm.add(ohneN); 
- } 
- } 
- return pm; 
  }  }
 + return pm;
 +}
 </code> </code>
 ==== Aufgabe 3 - ADT ==== ==== Aufgabe 3 - ADT ====
 +<code>
 +isBlack(new, x, y) = false
 +
 +isBlack(flip(cv, x1, y1), x2, y2) =
 +    !isBlack(cv, x2, y2)    falls x1=x2 && y1=y2
 +    isBlack(cv, x2, y2)      sonst
 +
 +bottom(new) = 0
 +bottom(flip(cv, x1, y1)) =
 +    y1               falls y1 < bottom(cv) && !isBlack(cv, x1, y1)
 +    bottom(cv)       sonst
 +</code>
 +
 ==== Aufgabe 4 - Dynamische Programmierung ==== ==== Aufgabe 4 - Dynamische Programmierung ====
 <code java> <code java>
- private long pLR(int n, long[] ps){ +private long pLR(int n, long[] ps) { 
- ps[1] = 2; + ps[1] = 2; 
- if( ps[n== 0 ){ + if (n >2) { 
- ps[n] = pLR(n-1,ps); + ps[n] = pLR(n - 1, ps); 
- int i =0 ; + int i = 0; 
- do{ + do { 
- ps[n]++; + ps[n]++; 
- for(i=1; i<n && ps[n]%ps[i] != 0; i++){ + for (i = 1; i < n && ps[n] % ps[i] != 0; i++) { 
- +
- } while( i!=n ); + } while (i != n); // kleineren Teiler gefunden?
-+
- return ps[n];+
  }  }
 + return ps[n];
 +}
 </code> </code>
 ==== Aufgabe 5 - Streuspeicherung ==== ==== Aufgabe 5 - Streuspeicherung ====
 Diese Aufgabe entspricht 1:1 [[https://fsi.cs.fau.de/dw/pruefungen/bachelor/aud/loesungws14#aufgabe_4_-_streuspeicherung_18|Aufgabe 4 aus der Klausur WS14/15]]. Diese Aufgabe entspricht 1:1 [[https://fsi.cs.fau.de/dw/pruefungen/bachelor/aud/loesungws14#aufgabe_4_-_streuspeicherung_18|Aufgabe 4 aus der Klausur WS14/15]].