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
pruefungen:bachelor:aud:loesung-miniklausur-13 [12.01.2016 22:53] Zulleyy3pruefungen:bachelor:aud:loesung-miniklausur-13 [09.01.2017 23:50] (aktuell) thejonny
Zeile 7: Zeile 7:
 ==== Aufgabe 1 - Wissensfragen ==== ==== Aufgabe 1 - Wissensfragen ====
  
-**a)** falsch: nur bei assert(x < 4711) wären die Codefragmente äquivalent \\+**a)** falsch: Assertions können selektiv per Flag beim Ausführen ab-/angeschaltet werden. Assertions sind also praktisch nie äquivalent zu anderen Codestücken.\\
  
 **b)** Option 2 und 3 sind richtig \\ **b)** Option 2 und 3 sind richtig \\
Zeile 81: Zeile 81:
  
 **c)** -2 zwischen dem head-Element und 7 einfügen. Die next-Referenz des Sentinel-Elements zeigt dann auf -2, und next von -2 verweist auf 7. **c)** -2 zwischen dem head-Element und 7 einfügen. Die next-Referenz des Sentinel-Elements zeigt dann auf -2, und next von -2 verweist auf 7.
 +
 +**d)** O(n), da das Element, nach dem eingefügt werden soll, immer erst per linearer Suche gesucht werden müsste.
  
 **e)**  **e)** 
Zeile 88: Zeile 90:
    Entry drag = head;    Entry drag = head;
        
-   while(cur !=head){ +   // Fügt das Element immer hinter gleichen Elementen ein 
-     if(cur.element >toAdd.element){ +   // zB. füge 3'' in -1 -> 2 -> 3 -> 3' -> 5 -> ... ein: 
-       drag.next = toAdd; +   //                   -1 -> 2 -> 3 -> 3' -> 3'' -> 5 -> ..
-       toAdd.next = cur+   while(cur.element < toAdd.element && cur != head){
-     }+
      drag = cur;      drag = cur;
      cur = drag.next;      cur = drag.next;
Zeile 113: Zeile 114:
 **axs** **axs**
 <code> <code>
 +// Werte überschreiben
 +// Axiom set(x, val, create) nicht spezifiziert, da es nicht weiter
 +// aufgelöst werden kann, denn set ist ein Konstruktor.
 +set(x, val1, set(x, val2, aa)) = set(x, val1, aa)
 +set(x, val1, set(y, val2, aa)) = set(y, val2, set(x, val1, aa)) wenn x != y
 +    // reihenfolge ist egal bei unterschiedlichen x,y, bei gleichem index wird überschrieben.
 +
 get(x,create) = null get(x,create) = null
 get(x, set(y, e, aa)) = e, wenn x = y;  sonst: get(x, aa) get(x, set(y, e, aa)) = e, wenn x = y;  sonst: get(x, aa)
Zeile 118: Zeile 126:
 delete(x, set(y, e, aa)) = aa, wenn x = y; sonst: set(y, e, delete(x, aa)) delete(x, set(y, e, aa)) = aa, wenn x = y; sonst: set(y, e, delete(x, aa))
 size(create) = 0 size(create) = 0
-size(x, set(x, e, aa) = size(aa), wenn get(x, aa) = null; sonst: 1 + size(aa) +size(set(x, e, aa)) = 1 + size(aa), wenn get(x, aa) = null 
 +size(set(x, e, aa)) = size(aa), sont
 </code> </code>