INFORMATIK I
Übung 8 : Funktionen I
22. April 2015
Daniel Hentzen
dhentzen@student.ethz.ch

Übung 7 : Pointers
Theorie
-
Funktionen
- Struktur
- Arrays übergeben
- call by value
- call by reference
- pointers
- references
- Rekursion
Funktionsstruktur
Arrays als Argumente übergeben
Array übergeben =
-
pointer auf das erste Element
-
Grösse !
Call By Value
Call by Reference : Pointers

Call By Reference : Reference

Rekursion
Eine Funktion ist rekursiv, wenn sie sich in ihrer Definition selbst aufruft.
Beispiel : Fakultät

Iterative Lösung :
Rekursive Lösung
Beispiel : Fibonacci

Vorteile der Rekursion
- Vereinfachung eines komplexen Problems in einfache Teilprobleme
- einfache, mathematische Darstellung
- iterative Lösungen sind oft komplizierter
Nachteile der Rekursion
- oft langsamer als iterative Lösungen
- kann zu "stack overflow" führen (zuviele Aufrufe, Rekursion zu tief...)
Food for thought
Einige Probleme mit eleganten rekursiven Lösungen :
- Potenzen
- Summe eines Arrays
- Maximum eines Arrays
- Fraktale
- Weg in einem Labyrinth
- Sudoku
- ...
Übung 8 : Funktionen I
Aufgabe 1 : GGT
ggT(a,b) = a, falls b = 0
ggT(a,b) = ggT(b, a % b), falls b != 0
Aufgabe 2 : Geometrische Folge
a(0) ?
q ?
was passiert bei jedem Schritt?
rekursiv : Basisfall?
Aufgabe 3 : Strings
b)
- 1. Zeichen gross
-
falls Leerzeichen --> nächstes Zeichen gross
c)
Vertauschen mit Zusatzvariable
Aufgabe 4 : UNIX : Find
find <Verzeichnis> -name "..." // Pfad anzeigen
find ./ -name "*.cpp" // alle cpp files anzeigen im aktuellen Verzeichnis
find <Verzeichnis> -name "..." -exec <Befehl> {} \; /* Befehl ausführen auf diesen Dateien */
find ./ -name "test.txt" -exec rm {} \; //findet und löscht "test.txt"
Übung 8 : Funktionen I
By Daniel Hentzen
Übung 8 : Funktionen I
- 779