Kurs:Algorithmen und Datenstrukturen/Vorlesung/Anweisungen
Anweisungen
BearbeitenIn diesem Kapitel behandelt wir das Thema Anweisungen.
Arten von Anweisungen
BearbeitenDabei unterscheiden wir in zwei verschiedene Anweisungsarten. Zum einen die elementaren Anweisungen wie Wertezuweisungen und zum anderen die komplexen Anweisungen.
Semantik einer Anweisung
BearbeitenFunktion, die einen Zustand in einen neuen Zustand überführt.
Allgemein gesagt ist es die Wirkungsweise von auf den Zustand Z
Beispiele Zuweisung als Anweisung
BearbeitenBeispiel 1
BearbeitenEin Beispiel ist die Wertezuweisung:
ist eine elementare Anweisung
Diese Wertezuweisung transformiert in eine Funktion auf Zustände sieht wie folgt aus:
Die Zuweisung berechnet den neuen Zustand.
Der alte Zustand ist und der neue Zustand ist
Beispiel 2
BearbeitenEin weiteres Beispiel ist die Zuweisung mit gleichen Variablen auf beiden Seiten.
Die Transformation in eine Funktion auf Zustände lautet:
Bei der letzten Anweisung handelt es sich nicht um eine rekursive Gleichung! An dieser Stelle sei vermerkt, dass Wertezuweisungen die einzigen elementaren Anweisungen sind.
Komplexe Anweisungen
BearbeitenBisher haben wir elementare Anweisungen (Wertzuweisungen) als Funktionen auf Zustände verstanden. Komplexe Anweisungen nehmen Konstrukte bzw. Bausteine von imperativen Algorithmen. Diese Bausteine sind
- Sequenz
- Auswahl/Selektion
- Iteration
Die Semantik wird wiederum durch Konstruktion von Funktionen definiert. Iteration ist das Gegenstück zu rekursiven Funktionsaufrufen bei funktionalen Algorithmen
Sequenz
BearbeitenSequenzen, oder auch Folgen, sind und Anweisungen, so ist auch eine Anweisung. Die Zustandstransformation beschreibt die Semantik der Sequenz.
Die Semantik ist das Schachteln der Funktionsaufrufe und das daraus folgende hintereinander ausführen der beiden Funktionen.
Selektion
BearbeitenEine Selektion, bzw. eine Auswahl, liegt beispielsweise vor, wenn und Anweisungen sind und B ein boolescher Ausdruck ist, dann ist auch
eine Anweisung.
Die zugehörige Zustandstransformation ist:
Voraussetzung ist, dass Z(B) definiert ist, sonst ist die Bedeutung der Auswahlanweisung undefiniert.
Iteration
BearbeitenWiederholung (Iteration, Schleife):
Ist α eine Anweisung und B ein boolescher Ausdruck, so ist: while B do α auch eine Anweisung
Zustandstransformation:
Ist Z(B) undefiniert, so ist die Bedeutung dieser Anweisung ebenfalls undefiniert.
Literatur
BearbeitenDa die Vorlesungsinhalte auf dem Buch Algorithmen und Datenstrukturen: Eine Einführung mit Java von Gunter Saake und Kai-Uwe Sattler aufbauen, empfiehlt sich dieses Buch um das hier vorgestellte Wissen zu vertiefen. Die auf dieser Seite behandelten Inhalte sind in Kapitel 3.3.1 und 3.3.2 zu finden.