Elementare Algorithmen

Bausteine von Algorithmen

 aufwärts

Zur Formulierung von Algorithmen sind drei verschiedene Arten von Anweisungen erforderlich. Dies sind die Wert­zuweisung, die bedingte Anweisung und die Schleife.

Wert­zuweisungen sind die elementarsten Anweisungen, hier finden die eigentlichen Berechnungen statt. Bedingte Anweisungen dienen dazu, den Programm­fluss in Abhängigkeit von den Daten zu steuern. Und Schleifen ermöglichen es dem Computer, das zu tun, was er am besten kann, nämlich bestimmte Aktionen immer und immer wieder zu wiederholen.

Wertzuweisung

Die einfachste Art von Anweisungen ist die Wert­zuweisung.

Form

Eine Wert­zuweisung hat die Form

setze variable = ausdruck

Hierbei ist variable der Name einer Variablen, das Zeichen = ist das Wert­zuweisungszeichen, und ausdruck ist ein Ausdruck, der einen Wert ergibt.

Beispiel:  Die Anweisungen in folgendem Programm­stück sind Wert­zuweisungen:

setze x = 1

setze y = x

setze a = 3·y + 5

setze y = y+1

setze übertrag_vorhanden = false

Variablen sind in diesem Beispiel x, y, a und übertrag vorhanden. Auf der rechten Seite des Wert­zuweisungszeichens stehen Ausdrücke, die jeweils einen Wert ergeben.

Bedeutung

Eine Wert­zuweisung wird ausgeführt, indem zunächst der Ausdruck auf der rechten Seite des Wert­zuweisungszeichens ausgewertet wird. Anschließend wird der Wert, der als Ergebnis der Auswertung heraus­gekommen ist, der Variablen auf der linken Seite des Wert­zuweisungszeichens zugewiesen.

Ist der Ausdruck eine Konstante wie z.B. hier 1, so ergibt sich der Wert des Ausdrucks unmittelbar aus dem Wert der Konstanten. Nach Ausführung der Wert­zuweisung x = 1 hat die Variable x den Wert 1.

Ist der Ausdruck eine einzelne Variable wie z.B. hier x, so ist der Wert des Ausdrucks gleich dem Wert dieser Variablen. Hierzu ist es notwendig, dass dieser Variablen irgendwann vorher bereits ein Wert zugewiesen worden ist. Die Wert­zuweisung y = x funktioniert also nur, wenn der Variablen x bereits ein Wert zugewiesen worden ist. Im Beispiel hat x den Wert 1, also erhält auch y den Wert 1.

Kommt in dem Ausdruck irgendwo eine Variable vor, wie z.B. hier y, so wird der Wert der Variablen in den Ausdruck eingesetzt. Die Variable y hat den Wert 1, also ergibt der Ausdruck 3·y + 5 den Wert 8 und der Ausdruck y+1 den Wert 2.

Eine Wert­zuweisung wie y = y+1 ist insofern eine Besonderheit, als dass die Variable y sowohl links als auch rechts des Wert­zuweisungszeichens auf­tritt. Hier wird zunächst der alte Wert von y, also 1, in den Ausdruck auf der rechten Seite eingesetzt. Die Auswertung des Ausdrucks ergibt den Wert 2, und dieser Wert 2 wird der Variablen y als neuer Wert zugewiesen. Bei Wert­zuweisungen dieser Form wird deutlich, dass Wert­zuweisungen keine mathe­matischen Gleichungen sind. Das Zeichen = hat hier nicht die Bedeutung eines Gleichheits­zeichens, sondern eines Wert­zuweisungszeichens.

Die Namen von Variablen können einzelne Buchstaben wie x und y sein, aber auch sinntragende Bezeichner wie übertrag_vorhanden. Mögliche Werte sind einerseits Zahlen, andererseits aber auch Wahrheits­werte (false oder true), Zeichen­ketten (Strings) wie etwa "hallo" oder Verweise auf beliebige Objekte.

Programmier­sprachen

In Programmier­sprachen wird die Wert­zuweisung in folgender Schreibweise ausgedrückt. In Pascal wird das Zeichen := als Wert­zuweisungszeichen verwendet.

 

JavaPythonVisual BasicPascal
y = y + 1;
 y = y + 1
 y = y + 1
y := y + 1

Bedingte Anweisung

Eines der wichtigsten Elemente der Pro­grammierung ist die Verzweigung der Programm­ausführung aufgrund von Bedingungen, die sich aus den vorliegenden Daten ergeben.

Form

Eine bedingte Anweisung hat die Form

wenn bedingung dann

     anweisungen

sonst

     anweisungen

Eine Bedingung ist ein Ausdruck, der einen Wahrheits­wert (false oder true) ergibt.

Beispiel:  Folgendes Programm­stück ist insgesamt eine bedingte Anweisung.

wenn i > 0 dann

     setze f = f · i

     setze i = i + 1

sonst

     setze f = 1

Bedeutung

Eine bedingte Anweisung wird ausgeführt, indem zunächst die Bedingung ausgewertet wird. Je nach dem, ob die Bedingung den Wert true oder den Wert false ergibt, wird entweder der Wenn-Teil oder der Sonst-Teil ausgeführt, also entweder die eingerückten Anweisungen nach "wenn" oder die eingerückten Anweisungen nach "sonst".

Der Programm­fluss bei der Ausführung einer bedingten Anweisung lässt sich durch ein Fluss­diagramm ver­anschaulichen. In folgendem Bild 1 ist der Programm­fluss des obigen Beispiel­programms dargestellt.

Bild 1: Flussdiagramm einer bedingten Anweisung
Bild 1: Flussdiagramm einer bedingten Anweisung
Programmier­sprachen

In Programmier­sprachen wird die bedingte Anweisung in folgender Schreibweise ausgedrückt. Für die Wörter "wenn", "dann" und "sonst" werden die englischen Wörter if, then und else verwendet.

 

JavaPythonVisual BasicPascal
if (i > 0)
{
    f = f * i;
    i = i + 1;
}
else
    f = 1;
if i > 0:
    f = f * i
    i = i + 1
else:
    f = 1
If i > 0 Then
    f = f * i
    i = i + 1
Else
    f = 1
End If
if i > 0 then
begin
    f := f * i;
    i := i + 1
end
else
    f := 1

In den ver­schiedenen Programmier­sprachen werden unter­schiedliche Methoden verwendet, um den Wenn-Teil und den Sonst-Teil der bedingten Anweisung abzugrenzen. In Java werden hierzu geschweifte Klammern verwendet; diese können entfallen, wenn der Wenn- bzw. der Sonst-Teil nur aus einer einzigen Anweisung besteht. In Pascal übernehmen die Wörter begin und end die Rolle der geschweiften Klammern. In Python wird die Abgrenzung allein durch Einrückung bewirkt. In Visual Basic kennzeichnet Else das Ende des Wenn-Teils und End If das Ende des Sonst-Teils.

Wegen der englischen Sprach­elemente If und Else benutzen wir auch die Bezeich­nungen If-Teil und Else-Teil statt Wenn-Teil und Sonst-Teil.

Variante

Häufig tritt der Fall auf, dass der Sonst-Teil leer ist. In diesem Fall hat die bedingte Anweisung die vereinfachte Form

wenn bedingung dann

     anweisungen

Beispiel:  Folgendes Programm­stück vertauscht die Werte von a und b, wenn sie in falscher Reihenfolge stehen (und tut nichts, wenn sie in richtiger Reihenfolge stehen).

wenn a > b dann

     setze h = a

     setze a = b

     setze b = h

In den ver­schiedenen Programmier­sprachen sehen bedingte Anweisungen ohne Sonst-Teil folgender­maßen aus:

JavaPythonVisual BasicPascal
if (a > b)
{
    h = a;
    a = b;
    b = h;
}
if a > b:
    h = a
    a = b
    b = h
If a > b Then
    h = a
    a = b
    b = h
End If
if x > 0 then
begin
    h := a;
    a := b;
    b := h
end

Schleifen

Form

Eine Schleife hat die Form

solange bedingung wiederhole

     anweisungen

Beispiel:  

solange i < n wiederhole

     setze f = f · i

     setze i = i + 1

Bedeutung

Immer und immer wieder das gleiche tun, das ist das, was der Computer am besten kann. Hierzu dienen Programm­schleifen. In einer Programm­schleife wird der Schleifen­körper, also die eingerückten Anweisungen nach dem Wort "wiederhole", solange wiederholt, wie die Schleifen­bedingung erfüllt ist. Ist irgendwann die Schleifen­bedingung nicht mehr erfüllt, bricht die Schleife ab und es wird mit den Anweisungen, die auf den Schleifen­körper folgen, fortgefahren.

Der Programm­fluss bei der Ausführung einer Schleife lässt sich wiederum durch ein Fluss­diagramm ver­anschaulichen. In folgendem Bild 2 ist der Programm­fluss des obigen Beispiel­programms dargestellt.

Bild 2: Flussdiagramm einer Schleife
Bild 2: Flussdiagramm einer Schleife

Es ist wichtig, dass innerhalb des Schleifen­körpers bestimmte Werte so verändert werden, dass tatsächlich auch irgendwann die Schleifen­bedingung nicht mehr erfüllt ist. Denn sonst bricht die Schleife nie ab, sie wird dann zur Endlos­schleife. Wenn wir in obigem Beispiel­programm die Anweisung "setze i = i + 1" vergessen, so erhalten wir eine Endlos­schleife. Dies kommt einem Absturz des Programms gleich, denn es werden keine weiteren Anweisungen mehr ausgeführt.

Schleifen werden benutzt, um gleichartige Berechnungen mit größeren Datenmengen anzustellen, außerdem für Iterations­verfahren.

Programmier­sprachen

In Programmier­sprachen wird die Schleife in folgender Schreibweise ausgedrückt. Für das Wort "solange" wird das englische Wort while verwendet. Für das Wort "wiederhole" wird in Visual Basic das Wort loop verwendet.

 

JavaPythonVisual BasicPascal
while (i < n)
{
    f = f * i;
    i = i + 1;
}
while i < n:
    f = f * i
    i = i + 1
Do While i < n
    f = f * i
    i = i + 1
Loop
while i < n do
begin
    f := f * i;
    i := i + 1
end
Variante

Eine häufig benutzte Form der Schleife ist die Zählschleife.

Eine Zählschleife hat die Form

für laufvariable = startwert bis endwert wiederhole

     anweisungen

 

Hierbei durchläuft die Laufvariable die ganzen Zahlen vom Startwert bis zum Endwert.

Die Zählschleife in der obigen Form ist äquivalent zu folgendem Programm­stück mit normaler Schleife

setze laufvariable = startwert

solange laufvariablekleiner gleichendwert wiederhole

     anweisungen

     setze laufvariable = laufvariable + 1

Beispiel:  

für i = 1 bis n wiederhole

     setze f = f · i

In Programmier­sprachen wird die Zählschleife in folgender Schreibweise ausgedrückt. Für das Wort "für" wird das englische Wort for verwendet. In Python wird mit der Funktion range(n) die Folge der Zahlen von 0 bis n-1 erzeugt.

 

JavaPythonVisual BasicPascal
for (i=1; i<=n; i=i+1)
    f = f * i;
for i in range(n)
    f = f * (i+1)
For i = 1 To n
    f = f * i
Next i
for i:=1 to n do
    f := f * i

 

Weiter mit:   up

 

homeH.W. Lang   Hochschule Flensburg   lang@hs-flensburg.de   Impressum   Datenschutz   ©   Created: 27.09.2011   Updated: 04.06.2018
Valid HTML 4.01 Transitional

Hochschule Flensburg
Campus Flensburg

Informatik in Flensburg studieren...

 

Neu gestaltetes Studienangebot:

Bachelor-Studiengang
Angewandte Informatik

mit Schwerpunkten auf den Themen Software, Web, Mobile, Security und Usability.

Ihr Abschluss
nach 7 Semestern:
Bachelor of Science

 

Ebenfalls ganz neu:

Master-Studiengang
Angewandte Informatik

Ein projektorientiertes Studium auf höchstem Niveau mit den Schwerpunkten Internet-Sicherheit, Mobile Computing und Human-Computer Interaction.

Ihr Abschluss
nach 3 Semestern:
Master of Science

 

Weitere Informatik-Studienangebote an der Hochschule Flensburg:

Medieninformatik

Wirtschaftsinformatik