Kurs:Algorithmen und Datenstrukturen/Vorlesung/Anweisungen
Anweisungen
[Bearbeiten]In diesem Kapitel behandelt wir das Thema Anweisungen.
Arten von Anweisungen
[Bearbeiten]Dabei unterscheiden wir in zwei verschiedene Anweisungsarten. Zum einen die elementaren Anweisungen wie Wertezuweisungen und zum anderen die komplexen Anweisungen.
Semantik einer Anweisung
[Bearbeiten]Funktion, die einen Zustand in einen neuen Zustand überführt.
Allgemein gesagt ist es die Wirkungsweise von auf den Zustand Z
Beispiele Zuweisung als Anweisung
[Bearbeiten]Beispiel 1
[Bearbeiten]Ein 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
[Bearbeiten]Ein 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
[Bearbeiten]Bisher 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
[Bearbeiten]Sequenzen, 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
[Bearbeiten]Eine 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
[Bearbeiten]Wiederholung (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
[Bearbeiten]Da 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.