{short description of image}
{short description of image}
best viewed
or (finally!!)
Main
3D Graphics OpenGL
Vordiplom Info III
Vordiplom InfoI und InfoII
Vordiplom TI1 und TI2
DKV-Karate
Download
System-Specs
1280x1024
800x600

Vordiplom

INFORMATIK I UND II VOM 28.Maerz.2001
Universitaet Freiburg im Breisgau

Vorbemerkung:
Das was hier aufgeschrieben ist, ist alles andere wie vollstaendig und
soll nur einen groben Ueberblick ueber den Verlauf der Teilpruefungen darstellen.
(Besser zuviel Trash wie zuwenig *g* )

Viel Spass beim Lesen!




Vordiplomsklausur  Info1 und Info2 vom Mi.28.Maerz 2001            
Gesamtdauer: 180min  

Info1 Teil:

- Geg: (statischen Semantik)
  
  "Delta","Gamma" |- code.toUppercase().charAt(0) : char

  a) Erklaeren Sie das Urteil
  b) Geben Sie passendes "Delta" an
  c) Geben Sie passendes "Gamma" an (fuer beide
     Methoden: String.toUppercase und String.charAt() ) 
  d) Geben Sie die Regeln an, mit denen das Urteil
     hergeleitet werden kann.
  

- Erklaeren Sie die Begriffe "VB" und
  "NB" von Methoden und Klassen.
 

- Gegeben war ein Stueck Programmcode bestehend aus
  while-Schleife und darin ein IF-Statement.
  Gegeben war die Schleifeninvariante und 
  ges. war ein vollstaendiges Hoarekalkuel.
  (Die SchleifenInvariante war riesig!)


- Gegeben sind folgende zwei Java-Klassen:

 public class A
 { void p() {System.out.println("A.p()");}
 
   void q() {System.out.println("A.q()");
             q(); }
 }//A

 public class B extends A
 { void q() {System.out.println("B.q()");}

   void r() {System.out.println("B.r()");
             super.q(); }
 }//B 

Was steht auf dem Bildschirm nach Ausfuehrung 
 folgender vier Programme:

 a)   public static void main(String[] args)
      { B b = new B();
        b.p();}

 b)   public static void main(String[] args)
      { B b = new B();
        b.q();}

 c)   public static void main(String[] args)
      { B b = new B();
        b.r();}

 d)   public static void main(String[] args)
      { A a = new A();
        a.r();}
  

- Gesucht war eine neue Klasse, in der man Variablen
  deklarieren musste. Die Variablen wurden gegeben,
  man musste diese nur richtig in die Klasse eintragen.
  (War sehr einfach! Nichts extremes!)

- Es war der Rumpf einer neuen Klasse gegeben welche
  auf Variablen der alten Klasse aus der vorherigen 
  Aufgabe zurueckgriff, und damit rechnete.
  (Fuer jemanden der ein bissl mit Java gespielt hat
   war die Aufgabe auch sehr einfach!)


- Im Haskellteil ist folgender Induktionsbeweis zu fuehren:

  geg: rev[]    = []                 
       rev(h:t) = rev t++[h]

       map f []    = []
       map f (h:t) = (f h):map f t

  Zeige: Fuer alle (endlichen) Listen l und k gilt:    
         a) map f (l++k)  = (map f l)++(map f k)
         b) map f (rev l) = rev (map f l)
            (Tip: fuer b) kann man Teil a) benutzen.) 


- Definieren Sie einen Datentyp fuer binaere Baeume,
  fuer den gilt: 
  die inneren Knoten eines Baumes sind jeweils mit
  einer Zeichenkette beschriftet
  und die Blaetter sind ganze Zahlen. 
 

- Zu Patternmatching: 
 
  Welche der folgenden Haskell-Ausdruecke sind typkorrekt?
  Geben Sie dann den Typ an.

  a) f1 x y = x
  b) f2 x y = x == y
  c) f3 x = x x
  d) f4 x y = if x y then y else not y
  e) f5 x = map (==x)
 

- Ges: Haskell Ausdruck der eine unendliche Lazy-Liste
  darstellt, in der das k-te Element die Summe der 
  Zahlen 1 bis einschliesslich k ist.     

Info2 Teil:

- Gegeben sei folgende Zahlenreihe:

  7 , 2 , 6 , 3 , 5 , 8 , 9 , 1 , 4 

  Sortieren Sie die Zahlen mit dem Quicksort-Algorithmus 
  und geben Sie die Zwischenergebnisse jeweils beim
  Ueberkreuzen der Zeiger an. 


- Hashing:
  Gegeben sei eine leere, 13 Felder umfassende Hashtabelle
  und folgende Schluessel:

  18 , 23 , 17 , 10 , 5 , 21 , 8

  Dazu seien folgende zwei Hashfunktionen gegeben:

  h(x)  = x mod 13  und  h'(x) = 1 + (x mod 11)

  a) Fuegen Sie diese Schluessel mittels Double-Hashing
     in die Tabelle ein.

  b) Was ist der Vorteil von Double-Hashing gegenueber
     - Linearem Sondieren?
     - Quadratischem Sondieren? 


- Folgendes Array sei gegeben:

  1 , 4 , 7 , 16 , 32 , 54 , 83 , 172

  Geben Sie den detaillierten Verlauf nach der Suche des
  Schluessels 44 , wenn:

  a) Exponentielle Suche mit anschliessender Linearer Suche
     angewandt wird.

  b) Binaere Suche angewandt wird.


- Gegeben sei folgende Zahlenreihenfolge:

  1 , 3 , 7 , 8 , 2 , 9 , 6 
  
  Stellen Sie einen Max-Heap in Array und in
  Baumdartellung her.
  Geben Sie die Anzahl der Schluesselvergleiche an.


- Gesucht ist ein AVL-Baum, in dem folgende Schluessel
  der Reihe nach eingefuegt werden:

  9 , 6 , 8 , 7 , 3 , 1

  a) Geben Sie die Anzahl der durchgefuehrten Rotationen an.

  b) Welche Arten von Rotationen wurden durchgefuehrt?


- Gegeben ist folgender Suchbaum: (siehe Grafik)

  a) Geben Sie folgende Sortierreihenfolge an
   
     - preorder	   :  (loesg: 30,24,11,12,13,28,25,32)	
   
     - inorder     :  (loesg: 11,12,13,24,25,28,30,32) 

     - postorder   :  (loesg: 13,12,11,25,28,24,32,30)

     [Wenn Ihr die Grafik nicht sehen koennt,
      dann koennt Ihr mit Hilfe der Sortierreihenfolgen 
      den Baum rekonstruieren *g*]
     
  b) Fuegen Sie die Schluessel 31 und 26 in den Baum ein.

  c) Entfernen Sie nun die Schluessel 32 und 24.


- Was ist die Laufzeit von Quicksort, Heapsort, Mergesort?


So! Das wars! An mehr kann ich mich nicht mehr erinnern. ;-)

Achja, vielleicht noch folgendes:
Das kam meines Wissens "nicht" dran im Info1 VD Maerz 2001:
Vielleicht kommt das in Eurem Vordiplom dran? ;-)

- Haskell: Succ Zero Datentyp
- Haskell: Listcomprehension
- Haskell: Hoarekalkuel
- Turingmaschine
- Regulaerer Ausdruck, Registermaschinen Programm
- While-Statements instead of for,if,switch..
- Erklaerung funktionaler/imperativer Programmierung
- Kein IEEE, 2CP, BV
- Stapel/Schlange
- Struktogramm
- Def. Algorithmus
- Model View Controller
- Arrays
- Eager/Lazy Auswertung


Und das kam nicht dran im Info2 VD
- Double Hashing nach Brent (uff!)
- Rekursionsgleichungen loesen (schade *g*)
[...]





             

(neue verbesserte Version vom 4.Mai 2001)