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.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
Letzte ÜberarbeitungBeide Seiten, nächste Überarbeitung
pruefungen:bachelor:aud:loesungss16 [02.07.2018 12:32] aud123pruefungen:bachelor:aud:loesungss16 [25.03.2020 10:17] kat04
Zeile 139: Zeile 139:
 **e)** **e)**
  
-Darstellung als Array: 28,24,13,21,19,3,7+Darstellung als Array: 3,19,7,28,24,11,12,42
  
 **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), x, y) = NOT(getCol(l,x,y) falls x=l.getX && y=l.getY +
-  getCol(Step(l), x, y) = getCol(l, x, y) sonst+
      
- **b) ** + **a) ** 
-  getDir(Step(l)) = (d+3)%4 falls getCol(l,x,y) = false +<code java> 
-  getDir(Step(l)) = (d+1)%4 sonst+  getCol(Step(l), x, y) = NOT(getCol(l,x,y), falls x getX(l) && y = getY(l) 
 +  getCol(Step(l), x, y) =     getCol(l,x,y)sonst 
 +</code>
      
-  Obige Lösung ist mMn falsch, dem Aufruf werden kein d, kein x und kein y mitgegeben. Meine (womöglich immer noch falscheLö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) % 4falls getCol(l, getX(l), getY(l)) == false 
-  getDir(Step(l)) = (getDir(l)+1)%4 sonst +  getDir(Step(l)) = (getDir(l) + 1) % 4sonst 
 +</code>
            
  **c) **  **c) **
-  getX(Step(l)) = getX(l) + 1 falls (getDir == 0 & getCol(l,x,y) == false) || (getDir == 2 & getCol(l,x,y) == true) +<code java> 
-  getX(Step(l)) = getX(l) - 1 falls (getDir == 0 & getCol(l,x,y== true|| (getDir == 2 & getCol(l,x,y) == false) +  getX(Step(l)) = getX(l) + 1falls getDir(Step(l)) == 1 // + und - vertauscht? 1 Westenalso nach links also -1 
-  getX(Step(l)) = sonst+  getX(Step(l)) = getX(l) - 1falls getDir(Step(l)) == 3 //wie oben nur umgekehrtauch in den Bildern zu sehen 
 +  getX(Step(l)) = getX(l), sonst  
 +</code>  
      
-  Gleiches wie obenWas soll x, y seinWarum wird getDir ohne Parameter aufgerufen? Meine (evtl ebenfalls falsche) Lösung: + ** d) ** 
-  getX(Step(l)) = getX(l) + 1 falls getDir(Step(l)) == 1 +<code> 
-  getX(Step(l)) = getX(l) 1 falls getDir(Step(l)) == 3 +BeachteDas Koordinatensystem ist nach unten geklapptd.h. die y-Werte drehen sich bei den Blickrichtungen Norden/Sueden um.  
-  getX(Step(l)) = getX(l) sonst  +Wo steht dasReine Interpretationssache. Das Raster im Bild ist nach oben auch positiv... 
-   + 
-  **d) ** +---------> x 
-<code java> +| 
 +| 
 +
 +
 +</code> 
 +<code java>
           public class LangtonAntJava{           public class LangtonAntJava{
                boolean[][] raster = new boolean[4711][4242];                boolean[][] raster = new boolean[4711][4242];
Zeile 280: Zeile 286:
                    raster[x][y] = !raster[x][y];                    raster[x][y] = !raster[x][y];
                    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); //sollte hier nicht auch p+1 stehen? sonst mach ich den gleichen Schritt nochmal // Nein, da ja der aktuelle Wert der Stelle P entfernt wird, wenn du jetzt p +1 machen würdest, würdest du einen Wert überspringen 
  
  // Backtracking zur 2. Rekursion:  // Backtracking zur 2. Rekursion: