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 [31.07.2017 19:09] – ab21ajus | pruefungen:bachelor:aud:loesungss16 [25.03.2020 10:18] (aktuell) – kat04 | ||
---|---|---|---|
Zeile 100: | Zeile 100: | ||
| | ||
- | **h)** 2 und 3 | + | **h)** 2 und 4 |
* zu 1) | * zu 1) | ||
* this kann nicht in einem statischen Kontext verwendet werden, sonst Fehler => Cannot use this in a static context | * this kann nicht in einem statischen Kontext verwendet werden, sonst Fehler => Cannot use this in a static context | ||
Zeile 108: | Zeile 108: | ||
* zu 3) | * zu 3) | ||
- | * anscheinend doch, nur der konkrete nutzen ist mir nicht bekannt | + | * 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: |
+ | * | ||
Zeile 181: | 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 241: | 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)) = x - 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)) = x - 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 315: | 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: |