Hochschule Regensburg Terminierung und Determinierung, Applikative und Imperative Algorithmen Test Nr. 12_3 Spezielle Algorithmen Name: ________________________ Lehrbeauftragter: Prof. Sauer Vorname: _____________________ 1. Wann heißt ein Algorithmus terminierend? __________________________________________ ______________________________________________________________________________ 2. Was bedeutet determinierter Ablauf eines Algorithmus? _______________________________ ______________________________________________________________________________ 3. Wann wird ein determiniertes Ergebnis von Algorithmen geliefert? _______________________ ______________________________________________________________________________ ______________________________________________________________________________ 4. Welche Paradigma werden in der Informatik diskutiert? ______________________________________________________________________________ ______________________________________________________________________________ 5. Was versteht man unter einem Algorithmenparadigma? _______________________________ ______________________________________________________________________________ 6. Was versteht man unter einem objektorientiertem Paradigma? __________________________ ______________________________________________________________________________ ______________________________________________________________________________ 7. Welche grundlegenden Algorithmen-Paradigmen sind bekannt? - _____________________________________________________________________________ _____________________________________________________________________________ - _____________________________________________________________________________ _____________________________________________________________________________ _____________________________________________________________________________ 1 8. Zeige, wie in Java bzw. in C++ jeweils die Fakultät bzw. der größte gemeinsame Teiler a) in der Form eines applikativen Algorithmus b) in der Form eines imperativen Algorithmus implementiert werden kann. Fakultätsberechnung a) ________________________________________ _________________________________________ _________________________________________ _________________________________________ b) ________________________________________ ________________________________________ ________________________________________ ________________________________________ ________________________________________ ________________________________________ ________________________________________ ________________________________________ ________________________________________ Größter gemeinsamer Teiler a) ________________________________________ ________________________________________ ________________________________________ ________________________________________ ________________________________________ b) ________________________________________ ________________________________________ ________________________________________ ________________________________________ ________________________________________ ________________________________________ 2 Fachhochschule Regensburg Terminierung und Determinierung, Applikative und Imperative Algorithmen Test Nr. 12_2 (Lösung) Algorithmen und Datenstrukturen Name: ________________________ Lehrbeauftragter: Prof. Sauer Vorname: _____________________ 1. Wann heißt ein Algorithmus terminierend? Ein Algorithmus heißt terminierend, wenn er (bei jeder erlaubten Eingabe von Parameterwerten) nach endlich vielen Schritten abbricht 2. Was bedeutet determinierter Ablauf eines Algorithmus? Der Algorithmus legt eine eindeutige Vorgabe der Schrittfolge der auszuführenden Schritte fest. 3. Wann wird ein determiniertes Ergebnis von Algorithmen geliefert? Ein determiniertes Ergebnis wird von Algorithmen dann geliefert, wenn bei vorgegebener Eingabe ein eindeutiges Ergebnis geliefert wird, auch bei mehrfacher Ausführung des Algorithmus (natürlich mit denselben Eingabeparametern) 4. Welche Paradigma werden in der Informatik diskutiert? - Algorithmenparadigma - objektorientiertes Paradigma 5. Was versteht man unter einem Algorithmenparadigma? Ein Algorithmenparadigma legt die Denkmuster fest, die einer Beschreibung eines Algorithmus zugrunde liegen. 6. Was versteht man unter einem objektorientiertem Paradigma? Das ist ein Paradigma zur Strukturierung von Algorithmen, das sowohl mit applikativen, imperativen und logischen Konzepten zusammen eingesetzt werden kann. 7. Welche grundlegenden Algorithmen-Paradigmen sind bekannt? - Applikative Algorithmen sind eine Verallgemeinerung der Funktionsauswertung mathematisch notierter Funktionen. In ihnen spielt die Rekursion eine wesentliche Rolle - Imperative Algorithmen basieren auf einem einfachen Maschinenmodell mit gespeicherten und änderbaren Werten (basiert auf den Konzepten Anweisungen und Variablen). Hier werden primär Schleifen und Alternativen als Kontrollbausteine eingesetzt. 8. Zeige, wie in Java jeweils die Fakultät bzw. der größte gemeinsame Teiler c) in der Form eines applikativen Algorithmus 3 d) in der Form eines imperativen Algorithmus implementiert werden kann. Fakultätsberechnung a) public static int fak(int n) { if (n == 0) return 1; else return n*fak(n-1); } b) public static int fakIt(int n) { int y = 1; while (n > 1) { y = y * n; n--; } return y; } Größter gemeinsamer Teiler a) public static int ggt(int x, int y) { if (y == 0) return x; else return ggt(y,x % y); // damit ist auch die Funktion endrekursiv } b) public static int ggtIt(int a, int b) { while (a != b) if (a > b) a -= b; else b -= a; return a; } 4