Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Prüfungen im Bachelor-Studium (1. - 5. Semester) » pfp » Aufgabe 1: Wissensfragen
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
pruefungen:bachelor:pfp:loesungss13 [17.07.2014 14:00] – Alicen | pruefungen:bachelor:pfp:loesungss13 [18.02.2017 22:38] (aktuell) – kafalk | ||
---|---|---|---|
Zeile 12: | Zeile 12: | ||
==== Aufgabe 2: Petri-Netze ==== | ==== Aufgabe 2: Petri-Netze ==== | ||
- | (Wer das hier mit Zeichnungen vervollständigen möchte, darf das gerne tun!) | + | (Das originale Word-Dokument zum Bild habe ich auch hier in denselben Namensraum zwecks etwaigen Änderungen hochgeladen.) |
- | a) | + | {{: |
- | Wenn man auch ein Token ergänzen darf: | + | |
- | Mit einer erneuten Stelle ergänzen. von t1 und t3 zur Stelle hin, von der Stelle zu t2 und t4. | + | * a) (Mindestens? |
- | Wenn man Beschränkungen hinzufügen darf, mit einer Stelle mit Beschränkung 1, | + | - Oben links: Wenn man auch ein Token ergänzen darf: Mit einer erneuten Stelle ergänzen. von t1 und t3 zur Stelle hin, von der Stelle zu t2 und t4. |
- | dann von t2 und t4 zur Lockstelle, von der Lockstelle zu t1 und t3. | + | - Oben rechts: |
+ | - Unten links: Ohne Token und Beschränkung Version II: p4 zu t2 und p2 zu t4, jeweils als Doppelpfeil. | ||
+ | - Unten rechts: Ohne Token und Beschränkung: | ||
- | Ohne Token und Beschränkung: | + | * b) |
- | p4 zu t2, p2 zu t4, t1 zu p4, t3 zu p2 | + | |
- | (Praxisfern) | + | |
- | S = ( 0, 1, 1, 0, 0, 0)(Traversiert) | + | S = ( 0, 1, 1, 0, 0, 0)(Transponiert) |
| | ||
Zeile 35: | Zeile 35: | ||
0 | 0 | ||
- | c) | + | * c) |
Nein. Durch t4-> | Nein. Durch t4-> | ||
- | d) | + | * d) |
t4-> | t4-> | ||
Zeile 46: | Zeile 46: | ||
a) | a) | ||
- | for(int i = 0; i < nStages; i++){ | + | |
- | + | boolean lastThread = (i == threads.length - 1); | |
- | boolean lastThread = (i == threads.length - 1); | + | |
- | + | inQueue< | |
- | inQueue< | + | |
- | + | outQueue< | |
- | outQueue< | + | |
- | + | threads[i] = new StageThread(i, | |
- | threads[i] = new StageThread(i, | + | threads[i].start(); |
- | threads[i].start(); | + | } |
- | + | ||
- | } | + | |
b) | b) | ||
Zeile 69: | Zeile 67: | ||
4) if(!lastThread) outQueue.put(value); | 4) if(!lastThread) outQueue.put(value); | ||
- | return; | + | return; break auch möglich! |
==== Aufgabe 4: Schreibtischlauf ==== | ==== Aufgabe 4: Schreibtischlauf ==== | ||
Zeile 96: | Zeile 94: | ||
==== Aufgabe 5: Collatz ==== | ==== Aufgabe 5: Collatz ==== | ||
- | a) | + | **a)** |
- | (Int => Boolean) => (Int => Int, Int => Int) => Int => Int = | + | def construct: |
i => (e, o) => n => if(i(n)) e(n) else o(n) | i => (e, o) => n => if(i(n)) e(n) else o(n) | ||
- | b) | + | **b)** |
- | def f: Int => Stream[Int] = n => n #:: f(c(n)) | + | def f: Int => Stream[Int] = n => n #:: f(c(n)) |
- | c) | + | **c)** |
- | def oddCount: (Int, Int) => Int = | + | // toList vor foldLeft ist optional, Stream bietet auch diese Funktion |
- | (n, k) => f(n).take(k).toList.foldLeft(0)((a, | + | |
==== Aufgabe 6: Scala / Graphen faerben ==== | ==== Aufgabe 6: Scala / Graphen faerben ==== | ||
Zeile 123: | Zeile 121: | ||
def getFreeColor: | def getFreeColor: | ||
+ | |||
+ | Alternativ mit dropWhile: | ||
+ | |||
+ | def getFreeColor: | ||
+ | |||
+ | Rekursive Alternative: | ||
+ | |||
+ | def getFreeColor: | ||
+ | if (cs.contains(0)) { | ||
+ | getFreeColor(cs.map(_-1)) + 1 | ||
+ | } | ||
+ | else { | ||
+ | 0 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | Oder mit foldLeft | ||
+ | |||
+ | def getFreeColor: | ||
+ | list.foldLeft(0)((a, | ||
+ | |||
**b)** | **b)** | ||
def colorGraph: List[Node] => List[Coloring] => List[Coloring] = { | def colorGraph: List[Node] => List[Coloring] => List[Coloring] = { | ||
- | case Nil => cols => cols | + | nod => cols => nod match { |
- | | + | case Nil => cols |
- | | + | case n::ns=> colorGraph(ns)(nextFreeColor(cols)(n):: |
+ | } | ||
+ | } | ||