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 [21.03.2018 16:25] – RaspberryPie | pruefungen:bachelor:aud:loesungss16 [25.03.2020 10:17] – kat04 | ||
---|---|---|---|
Zeile 108: | Zeile 108: | ||
* zu 3) | * zu 3) | ||
- | * richtig, siehe [[https:// | + | * falsch, siehe [[https:// |
* zu 4) | * zu 4) | ||
- | * Genau genommen initialisiert die Laufzeitumgebung jede Objekt- und Klassenvariable zunächst mit 0, null oder false und später mit einem Wert. Daher ist die Nullung von Hand nicht nötig: | + | * Genau genommen initialisiert die Laufzeitumgebung jede Objekt- und Klassenvariable zunächst mit 0, null oder false und später mit einem Wert. Daher ist die Nullung von Hand nicht nötig: genau das sagt die Antwort, also richtig |
+ | * | ||
Zeile 138: | Zeile 139: | ||
**e)** | **e)** | ||
- | Darstellung als Array: | + | Darstellung als Array: |
**f)** | **f)** | ||
Zeile 182: | 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 242: | 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), 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) ** | ||
+ | < | ||
+ | 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> | ||
+ | public class LangtonAntJava{ | ||
+ | | ||
+ | int x = 666, y = 666, d = 0; // Position und Richtung | ||
+ | void step(){ | ||
+ | | ||
+ | d = (d+1)%4; | ||
+ | } else { | ||
+ | d = (d+3)%4; | ||
+ | } | ||
+ | | ||
+ | if(d == 0){ | ||
+ | y -= 1; | ||
+ | } else if (d == 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){ | ||
+ | y += 1; | ||
+ | } else if (d == 3){ | ||
+ | x -= 1; // muesste hier nicht x += 1 stehen, da Blickrichtung nach Westen? | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
==== Aufgabe 6 Binäre Suche ==== | ==== Aufgabe 6 Binäre Suche ==== | ||
Zeile 316: | 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: |