3. Grundstrukturen von Algorithmen

Die Algorithmen in der Informatik lassen sich mithilfe folgender Grundstrukturen (auch als Kontrollstrukturen bezeichnet) entwickeln:

  • Sequenz (Aufeinanderfolge)
  • Selektion (Auswahl))
  • Zyklus (Wiederholung))

Die Erkenntnis, dass Informatik-Algorithmen auf drei Grundstrukturen basieren, ist eine der herausragenden Leistungen des Software Engineerings der 1960/70er Jahre.

Algorithmus »Summe«

Der in der Abbildung 1 dargestellte Algorithmus »Summe« zum Berechnen der Summe der geraden Ganzzahlen von 0 bis n≥0 umfasst alle drei Grundstrukturen:

  • der Anweisungsfolge
  • einer for-Schleife
  • einer if-Anweisung
Bild 06
Abbildung 1: Algorithmus »Summe« mit den drei Grundstrukturen
  • Die Variablen »n«, »summe« und »zahl« des Algorithmus sind vom Datentyp Ganzzahl (int).
  • Der Algorithmus berechnet das Folgende für die Eingabe 10:
    • summe=0
    • summe=0+0=0
    • summe=0+2=2
    • summe=2+4=6
    • summe=6+6=12
    • summe=12+8=20
    • summe=20+10=30
  • Der Algorithmus ist sowohl im Java-Programm »summe.java« als auch im Python-Programm »summe.py« implementiert.
Quelltext des Java-Programms »summe.java«
import java.util.Scanner;

public class summe {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        
        System.out.print("n=");
        int n=input.nextInt();
        int summe=0;
        
        for (int zahl=0;zahl<=n;zahl++) {
            if (zahl%2==0) {
                summe=summe+zahl;
            }
        }
        System.out.println(String.format("Summe: %d", (summe)));
            
        input.close();
    }   
}

Quelltext des Python-Programms »summe.py«
n=int(input("n="))
summe=0

for zahl in range(0, n+1):
    if zahl%2==0:
        summe=summe+zahl
        
print(f"Summe: {summe}")

  • Wie unschwer zu erkennen ist, unterscheiden sich die Quelltexte und das, obwohl den Programmen derselbe Algorithmus zugrunde liegt. Die Ursache hierfür besteht in den unterschiedlichen Beschreibungen des Algorithmus in den Programmiersprachen.