Basics Flashcards
Was besagt der euklidsche Algorithmus?
Der GGT zweier Zahlen ist auch GGT ihrer Differenz.
Beschreibe den euklidschen Algorithmus iterativ.
while(a != b){ if(a > b){ a = a - b; } else{ b = b - a; } ggT = a; }
Definition Algorithmus
Eine Anleitung zur Lösung einer Aufgabenstellung, die so präzise formuliert ist, dass sie “mechanisch” ausgeführt werden kann.
Definition algorithmisches Problem
Problem, das mit einem Algorithmus gelöst werden kann.
Eigenschaften von Algorithmen
- Determiniertheit: identische Eingaben führen stets zu identischen Ergebnissen
- Determinismus: Ablauf stets klar definiert (keine Wahlfreiheit)
- Terminierung: für jede Eingabe liegt ein Ergebnis nach endlich vielen Schritten vor.
- Effizienz: Aufwand relativ zu vorgegebenen Massstab
Wie hängt ein Programm mit einem Algorithmus zusammen?
Jedes Programm repräsentiert einen bestimmten Algorithmus. Kein Programm ohne Algorithmus.
Programm als Zustandstransformator. Hoare Triple
{Eingangszustand} Anweisung {Ausgangszustand}
Beispiel euklidscher Algorithmus: {a = 15, b = 12} c = ggt(a,b) {a = 15, b = 12, c = ggt(a,b)}
Was ist die Aufgabe eines Datentyps in einer Methode?
Definition der gültigen Wertemenge, z.B. für die Precondition (Vorbedingung / Eingangswert)
Was ist die Nachbedingung / Postcondition in einer Methode?
Die Wertebreiche der Rückgabeparameter.
Fehlerfälle werden formal durch checked Exceptions oder durch einen Spezialwert signalisiert. Informell durch einen Kommentar.
Was ist die Vorbedingung / Precondition in einer Methode?
Die Anzahl und Wertebereiche der Parameter, die durch den Datentyp formal bestimmt sind und vom Compiler überprüfbar sind. Weitere informelle Einschränkungen des Wertebereichs im Kommentar.
Wann wird ein Programm (= Folge von Anweisungen) als korrekt bezeichnet?
Wenn unter der Annahme, dass die Vorbedingung erfüllt ist, unter Anwendung des Programms die Nachbedingung erfüllt wird. “Die Vorbedingung impliziert die Nachbedingung”
Nenne einige primitive / einfache Datentypen von Java
byte, short, int, long
float, double
char
boolean
Nenne einige Referenzdatentypen von Java
array
string
objects
Welche Datenstrukturen stellt der JDK zur Verfügung?
List
Hashtable
Collections
…
Welche Datenstrukturen muss man z.T. selber implementieren bzw. gut verstehen?
Stacks
Queues
Trees
…