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

  1. Sequenz
  2. Auswahl/Selektion
  3. Iteration

Die Semantik wird wiederum durch Konstruktion von Funktionen definiert. Iteration ist das Gegenstück zu rekursiven Funktionsaufrufen bei funktionalen Algorithmen

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.