Informatikklausur im Studiengang Elektrotechnik an der RWTH Aachen

Veröffentlicht am: in der Kategorie: Studium

Ja super, ich hab auch ne Viertel Stunde die ganzen Einzelschritte beim Selectionsort aufgeschrieben. Keine Ahnung was mich da geritten hat, aber ich hab geschrieben, der sei stabil -,- Aus Zeitgründen fehlt mir deswegen die allerletzte Teilaufgabe, würd aber doch gerne wissen, was man da eigentlich machen sollte, kann das mal jemand kurz sagen? (also wie die Aufgabenstellung war ..)

wollte mal ne kleine Umfrage starten was ihr von der Informatikklausur kommenden Dienstag haltet und wie ihr euch drauf vorbereitet
Was ich mir bisher ganz gut als Themen vorstellen könnte sind (in zufälliger Reihenfolge)
-Zeiger ( so ne call-by-reference Geschichte)
-Suchalgorithmen (auf ein array anwenden)
-Listenoperationen (wie AppendFirst/last, Delete, IsIn, intersect etc.)
-Bäume (nur traversieren, oder muss man hier auch einfügen, löschen etc draufhaben?)
-O-Notation (das große Mysterium)
-Graphen (Dijkstra&Kruskal)
-Syntaxfehler finden (-kein Semikolon, void funktionen die werte zurückgeben etc.)

ch hab mal kurz alle deine punkte etwas konkreter abgearbeitet:

sicheren Umgang mit Zeigern halte ich für wichtig (siehe Übung 3 Aufgabe 5 od. Übung 12)

Bei den Suchalgorithmen sollte man die Funktionsweise der jeweiligen Routinen verstehen, aber selbst schreiben können muss man wahrscheinlich nur so etwas wie bubble/insertion-sort. Für Quicksort müssten da noch speziellere dinge in der Aufgabenstellung vorgegeben werden. Wenn Bubblesort nun schon als letzte Übung auftaucht, könnte man darauf spekulieren(!), dass die Klausur Insertionsort verlangt.

Listenoperationen: sortiertes einfügen, löschen und suchen. Schnittmenge bilden ist dann nur noch ein Zusammenspiel vom Listendurchlauf und dem gezielten Suchen.

Bäume: traversieren(pre/in/post-order, Übung 9 Aufgabe 12). Das Einfügen in einen binären Suchbaum sollte man auch verstanden haben, dann ist es auch leicht implementierbar. Das Löschen hingegen ist aufwändiger und haben wir auch nicht großartig besprochen. Die Bestimmung der Höhe eines baumes oder die Anzahl der Blätter (Übung 9, Aufgabe 12.3) sollte man rekursiv auf jeden Fall drauf haben. Iterativ müsste man da mit einem eigenen Stack arbeiten, siehe Übungsblatt 11. 'Endrekursive' Funktionen sind allerdings auch ohne Stack iterativ umsetzbar, z.B. die Fakultäts-Berechnung. Das ist also eher Klausur-Niveau.

O-Notation: Rechenregeln... O(n)+O(n²) = ? und O(n) * O(n²) = ?, und auch die komplexität einer schleife/rekursion erkennen. (prägt euch die definition von der O-notation ein, mit der kann man die rechenoperationen "beweisen")

Graphen: Erkennen, ob ein Graph ein DAG ist und die besprochenen Algorithmen kennen. In C implementiert haben wir diese aber nicht, soweit ich weiß.

Syntax & Semantik -Fehler sprich: viel rum-programmieren, um möglichst viele fehlermeldungen des compilers zu kennen. ;)

-Also - in C *kann* eine Funktion mit Rückgabe keinen Wert zurückgeben. Das resultiert nur in einer Warnung. Aufgrund dessen, wie die Rückgabe definiert wird, wird dann der Wert eines bestimmten Registers zurückgegeben - was zufällig den richtigen Wert enthalten kann( wenn man gerade damit gerechnet hat) oder auch absoluter müll sein kann. In C++ wurde aus der Warnung ein Fehler und das geht, glücklicherweise muss man sagen, nicht mehr.
Das ganze ist auch noch ein Relikt aus Pre-Ansi-Zeit.