Hi, ich habe am 03.11.2018 die PRG20 Klausur geschrieben. Ich versuche nachfolgend alle Aufgaben, die mir noch einfallen zusammenzufassen. Insgesamt war die Klausur relativ fair, wie ich finde. Einige Aufgaben waren jedoch recht aufwendig und schwieriger, als in den Skripten oder in den Probeklausuren. Zahlensysteme kamen zum Beispiel gar nicht dran. Viel Erfolg bei den Klausuren!
A) Detailaufgaben (insgesamt 7 Aufgaben)
1) Besteht eine Vererbungsbeziehung zwischen Buch und einer Seite. Begründen Sie Ihre Antwort. (Objektorientierung)
2) Was ist Rekursion? Wann bietet sich die Anwendung an?
3) In einem Unternehmen werden zuerst die neu eingestellten Mitarbeiten entlassen, wenn es nicht gut läuft. Welche Datenstruktur bietet sich in diesem Fall an? (Stack/Stapel)
4) Was ist ein Referenzdatentyp? Geben Sie ein Beispiel an.
5) Was bedeutet der Begriff Redundanz in der Programmierung?
6) Was ist eine Variable und was ist ein Datentyp? Unterschied erläutern und Beispiel nennen.
7) Letzte Aufgabe fällt mir nicht mehr ein.
B) Komplexaufgaben
B1) Bäume
1) Erklären, was Niveau, n-ärerBaum und Höhe bedeutet sowie den gegebenen Suchbaum traversieren mit Inorder, Postorder und Preorder.
2) Gegeben war ein Baum, der wie ein Inhaltsverzeichnis eines Buches aussah. So in etwa sah das aus (ohne Gewähr auf Vollständigkeit oder Korrektheit. Sollte aber zum Verständnis der Aufgabe genügen).
Niveau 0 war die Überschrift. Niveau 1 waren Einleitung, Hauptteil, Kapitel 1, Kapitel 2, Kapitel 3, Zusammenfassung. Niveau 2 waren Kapitel 1.1 und 2.1. Niveau 3 waren Kapitel 1.1.1 und Kapitel 2.1.1. Man sollte einen Pseudocode schreiben, der als Ergebnis ein Inhaltsverzeichnis ausgibt.
Das Inhaltsverzeichnis war beispielhaft wie folgt dargestellt:
Einleitung
Hauptteil
Kapitel 1
Kapitel 1.1
Kapitel 1.1.1
Kapitel 2
Kapitel 2.1
Kapitel 2.1.1
Kapitel 3
Zusammenfassung
3) Es waren 3 binäre Suchbäume dargestellt und man sollte entscheiden/beschreiben, ob diese korrekte binäre Suchbäume sind. Erster Suchbaum bestand nur aus einem Knoten (Gewicht 33). Zweiter war ein korrekter bin. Suchbaum. Und der dritte Suchbaum war nicht korrekt, weil einige Knoten falsch einsortiert waren.
4) Man sollte eine Folge von Zahlen (etwa 8 verschiedene Zahlen) in einen binären Suchbaum einsortieren und diesen wiedergeben.
B2) Graphen
1) Systematischer Durchlauf. Man sollte das Konzept der Tiefensuche erklären und einen Pseudocode dazu erstellen.
2) Es war ein relativ aufwendiger ungerichteter Graph gegeben (etwa 20 Knoten). Man sollte die Tiefensuche durchführen.
3) Weitere Fragen fallen mir nicht mehr ein, da ich B2 nicht bearbeitet habe.
B3) Sortieralgorithmen
1) Erklären Sie den Bubblesort. Geben Sie einen Pseudocode an und zeigen Sie die Arbeitsweise an einem selbstgewählten Beispiel.
2) Erklären Sie den Insertsort. Geben Sie einen Pseudocode an und zeigen Sie die Arbeitsweise an einem selbstgewählten Beispiel.
3) Führen Sie eine Aufwandsabschätzung für Insertsort und Bubblesort durch. Für welchen Algorithmus würden Sie sich bei einer Implementierung entscheiden?