Elementare AlgorithmenBausteine von Algorithmen | ![]() |
Zur Formulierung von Algorithmen sind drei verschiedene Arten von Anweisungen erforderlich. Dies sind die Wertzuweisung, die bedingte Anweisung und die Schleife.
Wertzuweisungen sind die elementarsten Anweisungen, hier finden die eigentlichen Berechnungen statt. Bedingte Anweisungen dienen dazu, den Programmfluss 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.
Die einfachste Art von Anweisungen ist die Wertzuweisung.
Eine Wertzuweisung hat die Form
setze variable = ausdruck
Hierbei ist variable der Name einer Variablen, das Zeichen = ist das Wertzuweisungszeichen, und ausdruck ist ein Ausdruck, der einen Wert ergibt.
Beispiel: Die Anweisungen in folgendem Programmstück sind Wertzuweisungen:
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 Wertzuweisungszeichens stehen Ausdrücke, die jeweils einen Wert ergeben.
Eine Wertzuweisung wird ausgeführt, indem zunächst der Ausdruck auf der rechten Seite des Wertzuweisungszeichens ausgewertet wird. Anschließend wird der Wert, der als Ergebnis der Auswertung herausgekommen ist, der Variablen auf der linken Seite des Wertzuweisungszeichens 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 Wertzuweisung 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 Wertzuweisung 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 Wertzuweisung wie y = y+1 ist insofern eine Besonderheit, als dass die Variable y sowohl links als auch rechts des Wertzuweisungszeichens auftritt. 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 Wertzuweisungen dieser Form wird deutlich, dass Wertzuweisungen keine mathematischen Gleichungen sind. Das Zeichen = hat hier nicht die Bedeutung eines Gleichheitszeichens, sondern eines Wertzuweisungszeichens.
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 Wahrheitswerte (false oder true), Zeichenketten (Strings) wie etwa "hallo" oder Verweise auf beliebige Objekte.
In Programmiersprachen wird die Wertzuweisung in folgender Schreibweise ausgedrückt. In Pascal wird das Zeichen := als Wertzuweisungszeichen verwendet.
Java | Python | Visual Basic | Pascal | ||||
---|---|---|---|---|---|---|---|
|
|
|
|
Eines der wichtigsten Elemente der Programmierung ist die Verzweigung der Programmausführung aufgrund von Bedingungen, die sich aus den vorliegenden Daten ergeben.
Eine bedingte Anweisung hat die Form
wenn bedingung dann
anweisungen
sonst
anweisungen
Eine Bedingung ist ein Ausdruck, der einen Wahrheitswert (false oder true) ergibt.
Beispiel: Folgendes Programmstück ist insgesamt eine bedingte Anweisung.
wenn i > 0 dann
setze f = f · i
setze i = i + 1
sonst
setze f = 1
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 Programmfluss bei der Ausführung einer bedingten Anweisung lässt sich durch ein Flussdiagramm veranschaulichen. In folgendem Bild 1 ist der Programmfluss des obigen Beispielprogramms dargestellt.
| |
Bild 1: Flussdiagramm einer bedingten Anweisung | |
In Programmiersprachen 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.
Java | Python | Visual Basic | Pascal | ||||
---|---|---|---|---|---|---|---|
|
|
|
|
In den verschiedenen Programmiersprachen werden unterschiedliche 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 Sprachelemente If und Else benutzen wir auch die Bezeichnungen If-Teil und Else-Teil statt Wenn-Teil und Sonst-Teil.
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 Programmstü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 verschiedenen Programmiersprachen sehen bedingte Anweisungen ohne Sonst-Teil folgendermaßen aus:
Java | Python | Visual Basic | Pascal | ||||
---|---|---|---|---|---|---|---|
|
|
|
|
Eine Schleife hat die Form
solange bedingung wiederhole
anweisungen
Beispiel:
solange i < n wiederhole
setze f = f · i
setze i = i + 1
Immer und immer wieder das gleiche tun, das ist das, was der Computer am besten kann. Hierzu dienen Programmschleifen. In einer Programmschleife wird der Schleifenkörper, also die eingerückten Anweisungen nach dem Wort "wiederhole", solange wiederholt, wie die Schleifenbedingung erfüllt ist. Ist irgendwann die Schleifenbedingung nicht mehr erfüllt, bricht die Schleife ab und es wird mit den Anweisungen, die auf den Schleifenkörper folgen, fortgefahren.
Der Programmfluss bei der Ausführung einer Schleife lässt sich wiederum durch ein Flussdiagramm veranschaulichen. In folgendem Bild 2 ist der Programmfluss des obigen Beispielprogramms dargestellt.
| |
Bild 2: Flussdiagramm einer Schleife | |
Es ist wichtig, dass innerhalb des Schleifenkörpers bestimmte Werte so verändert werden, dass tatsächlich auch irgendwann die Schleifenbedingung nicht mehr erfüllt ist. Denn sonst bricht die Schleife nie ab, sie wird dann zur Endlosschleife. Wenn wir in obigem Beispielprogramm die Anweisung "setze i = i + 1" vergessen, so erhalten wir eine Endlosschleife. 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 Iterationsverfahren.
In Programmiersprachen 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.
Java | Python | Visual Basic | Pascal | ||||
---|---|---|---|---|---|---|---|
|
|
|
|
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 Programmstück mit normaler Schleife
setze laufvariable = startwert
solange laufvariableendwert wiederhole
anweisungen
setze laufvariable = laufvariable + 1
Beispiel:
für i = 1 bis n wiederhole
setze f = f · i
In Programmiersprachen 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.
Java | Python | Visual Basic | Pascal | ||||
---|---|---|---|---|---|---|---|
|
|
|
|
Weiter mit:
![]() |
![]() |
![]() |
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: