Zum Inhalt springen

Kurs:Algorithmen und Datenstrukturen/Vorlesung/Anweisungen

Aus Wikiversity




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

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.


Discussion