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:loesungss16 [02.07.2018 12:32] – aud123 | pruefungen:bachelor:aud:loesungss16 [25.03.2020 10:18] (aktuell) – kat04 | ||
---|---|---|---|
Zeile 183: | Zeile 183: | ||
<code java> | <code java> | ||
public E previous() { | public E previous() { | ||
- | // TODO Auto-generated method stub | ||
if(prev != null){ | if(prev != null){ | ||
E vTmp=prev.v; | E vTmp=prev.v; | ||
Zeile 243: | Zeile 242: | ||
==== Aufgabe 5 ADT ==== | ==== Aufgabe 5 ADT ==== | ||
- | **a) ** | + | |
- | getCol(Step(l), | + | |
- | getCol(Step(l), | + | |
| | ||
- | **b) ** | + | **a) ** |
- | | + | <code java> |
- | | + | |
+ | | ||
+ | </ | ||
| | ||
- | Obige Lösung ist mMn falsch, dem Aufruf werden kein d, kein x und kein y mitgegeben. Meine (womöglich immer noch falsche) Lösung: | + | **b) ** |
- | + | <code java> | |
- | getDir(Step(l)) = (getDir(l)+3)%4 falls getCol(l, getX(l), getY(l)) == false | + | getDir(Step(l)) = (getDir(l) + 3) % 4, falls getCol(l, getX(l), getY(l)) == false |
- | getDir(Step(l)) = (getDir(l)+1)%4 sonst | + | getDir(Step(l)) = (getDir(l) + 1) % 4, sonst |
+ | </ | ||
**c) ** | **c) ** | ||
- | | + | <code java> |
- | getX(Step(l)) = getX(l) - 1 falls (getDir | + | |
- | getX(Step(l)) = x sonst | + | getX(Step(l)) = getX(l) - 1, falls getDir(Step(l)) == 3 //wie oben nur umgekehrt, auch in den Bildern zu sehen |
+ | getX(Step(l)) = getX(l), | ||
+ | </ | ||
| | ||
- | Gleiches wie oben: Was soll x, y sein? Warum wird getDir ohne Parameter aufgerufen? Meine (evtl ebenfalls falsche) Lösung: | + | ** d) ** |
- | | + | < |
- | | + | Beachte: Das Koordinatensystem ist nach unten geklappt, d.h. die y-Werte drehen sich bei den Blickrichtungen Norden/ |
- | | + | Wo steht das? Reine Interpretationssache. Das Raster im Bild ist nach oben auch positiv... |
- | + | ||
- | **d) ** | + | ---------> |
- | <code java> | + | | |
+ | | | ||
+ | | | ||
+ | y | ||
+ | </ | ||
+ | <code java> | ||
public class LangtonAntJava{ | public class LangtonAntJava{ | ||
| | ||
Zeile 280: | Zeile 286: | ||
| | ||
if(d == 0){ | if(d == 0){ | ||
- | y -= 1; | + | y -= 1; |
} else if (d == 1){ | } else if (d == 1){ | ||
- | x += 1; | + | x += 1; // muesste hier nicht x -= 1 stehen, da Blickrichtung nach Osten? Stimme dem zu. Autor kennt, wie bei c) schon erwähnt, die Himmelsrichtungen nicht. |
} else if (d == 2){ | } else if (d == 2){ | ||
- | y += 1; | + | y += 1; |
} else if (d == 3){ | } else if (d == 3){ | ||
- | x -= 1; | + | x -= 1; // muesste hier nicht x += 1 stehen, da Blickrichtung nach Westen? |
} | } | ||
} | } | ||
Zeile 342: | Zeile 348: | ||
abDiff-=2*(a.get(p)); | abDiff-=2*(a.get(p)); | ||
b.add(a.remove(p)); | b.add(a.remove(p)); | ||
- | helfer(p); | + | helfer(p); |
// Backtracking zur 2. Rekursion: | // Backtracking zur 2. Rekursion: |