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.
Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige ÜberarbeitungLetzte ÜberarbeitungBeide Seiten, nächste Überarbeitung | ||
pruefungen:bachelor:aud:loesungss16 [07.07.2019 11:29] – Verbesserung Aufgabe 5a),d) dom | pruefungen:bachelor:aud:loesungss16 [25.03.2020 10:17] – kat04 | ||
---|---|---|---|
Zeile 139: | Zeile 139: | ||
**e)** | **e)** | ||
- | Darstellung als Array: | + | Darstellung als Array: |
**f)** | **f)** | ||
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), | + | |
| | ||
- | + | **a) ** | |
<code java> | <code java> | ||
- | // Obige Lösung halte ich für falsch, da man l.getX bzw. l.getY nicht schreiben darf. | ||
- | // Mein Verbesserungsvorschlag, | ||
- | |||
getCol(Step(l), | getCol(Step(l), | ||
- | getCol(Step(l), | + | getCol(Step(l), |
</ | </ | ||
| | ||
**b) ** | **b) ** | ||
- | getDir(Step(l)) = (d+3)%4 falls getCol(l, | + | <code java> |
- | getDir(Step(l)) = (d+1)%4 sonst | + | getDir(Step(l)) = (getDir(l) + 3) % 4, falls getCol(l, getX(l), getY(l)) == false |
- | + | getDir(Step(l)) = (getDir(l) + 1) % 4, sonst | |
- | 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: | + | </ |
- | + | ||
- | getDir(Step(l)) = (getDir(l)+3)%4 falls getCol(l, getX(l), getY(l)) == false | + | |
- | 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), sonst | |
- | Gleiches wie oben: Was soll x, y sein? Warum wird getDir ohne Parameter aufgerufen? Meine (evtl ebenfalls falsche) Lösung: | + | </ |
- | getX(Step(l)) | + | |
- | getX(Step(l)) = getX(l) - 1 falls getDir(Step(l)) == 3 | + | |
- | getX(Step(l)) = getX(l) sonst | + | |
| | ||
** d) ** | ** 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... | ||
+ | |||
+ | ---------> | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | y | ||
+ | </ | ||
<code java> | <code java> | ||
public class LangtonAntJava{ | public class LangtonAntJava{ | ||
Zeile 289: | Zeile 286: | ||
| | ||
if(d == 0){ | if(d == 0){ | ||
- | y -= 1; // müsste y += 1; heißen, da d = 0 Blickrichtung Norden ist. | + | y -= 1; |
} else if (d == 1){ | } else if (d == 1){ | ||
- | x += 1; // müsste | + | x += 1; // muesste hier nicht x -= 1 stehen, da Blickrichtung |
} else if (d == 2){ | } else if (d == 2){ | ||
- | y += 1; // müsste y -= 1; heißen, da d = 2 Blickrichtung Süden ist. | + | y += 1; |
} else if (d == 3){ | } else if (d == 3){ | ||
- | x -= 1; // müsste | + | x -= 1; // muesste hier nicht x += 1 stehen, da Blickrichtung |
} | } | ||
} | } | ||
Zeile 351: | 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: |