3.1 Sequenz

Innerhalb eines Algorithmus ist eine Sequenz eine Aufeinanderfolge vom Anweisungen, wie beispielsweise in der Abbildung 1 dargestellt.

Algorithmus »Bruttopreis«

Der Algorithmus »Bruttopreis« besteht aus fünf aufeinanderfolgenden Anweisungen (im Struktogramm farblich rot hervorgehoben).

Bild 07
Abbildung 1: Algorithmus »Bruttopreis«
  • Die Variablen »nettopreis«, »steuersatz«, »steuerbetrag« und »bruttopreis« des Algorithmus sind vom Datentyp Gleitkommazahl (float/double).
  • Der Algorithmus berechnet den Bruttopreis eines Einkaufsartikels aus dem Nettopreis und dem Mehrwertsteuerbetrag.
    Der einzugebende Mehrwertsteuersatz sollte dabei 19% oder 7% betragen.
Icon Beschreibung
Exkurs »Structorizer«

Der Structorizer ist ein Editor, um Algorithmen grafisch in Struktogrammen darzustellen und zudem die Korrektheit der Algorithmen zu testen.
Der Structorizer kann aus dem Internet heruntergeladen und auf dem Computer installiert werden.

  • Im Structorizer-Menü »Einstellungen« können u. a. in den Untermenüs »Sprache« und »Strukturen« die gewünschten Einstellungen vorgenommen werden.
  • Hier – im Themenbereich Algorithmen – ist im Structorizer die Sprache Deutsch eingestellt und die Struktur der if-else-Anweisung für den einen Zweig statt TRUE auf wahr und für den anderen Zweig statt FALSE auf falsch geändert.

Am Beispiel des Algorithmus »Bruttopreis« wird die Arbeitsweise des Structorizer demonstriert.

  • In der Abbildung 1 ist links der mit dem Structorizer grafisch dargestellte Algorithmus und rechts der vom Structorizer generierte Python-Quelltext – zum Testen des Algorithmus – zu sehen.
    Bild 34
    Abbildung 1: Struktogramm (links) und der generierte Python-Quelltext (rechts)
  • In der Abbildung 2 ist der vom Structorizer generierte Python-Quelltext zu sehen.
    Bild 40
    Abbildung 2: Vom Structorizer generierter Python-Quelltext
    Der Python-Quelltext ist intern im Structorizer als Programm zum Testen des Algorithmus ausführbar.

Das Testen des Algorithmus erfolgt im Structorizer mit dem Debugger, indem das generierte Python-Programm abläuft.

  • Der Debugger wird im Structorizer-Menü im Menüpunkt »Debug« durch Anklicken von »Debugger« gestartet (Abbildung 3).
    Bild 29
    Abbildung 3: Starten des Debuggers
  • Vor dem Beginn des Ablaufs des Tests wird der Haken im Kästchen ☑ Ausgabe im Fenster gesetzt (Abbildung 4).
  • Der Ablauf des Tests beginnt, sobald die Taste ▶ angeklickt wird (Abbildung 4).
    Bild 30
    Abbildung 4: Test beginnt durch Anklicken von ▶
  • Im Fenster »Eingabe« wird für die Variable »nettopreis« der Wert eingegeben (Abbildung 5).
    Bild 31
    Abbildung 5: Eingabe des Nettopreises
  • Im Fenster »Eingabe« wird für die Variable »steuersatz« der Wert eingegeben (Abbildung 6).
    Bild 32
    Abbildung 6: Eingabe des Mehrwertsteuersatzes
  • Im Fenster »Ausgabe« wird die Lösung ausgegeben (Abbildung 7).
    Bild 33
    Abbildung 7: Ausgabe das Bruttopreises
Übung

Übung

Stelle selbst den Algorithmus »Bruttopreis« in einem Struktogramm mit dem Structorizer dar.

  • Teste den Algorithmus anhand der folgenden Eingaben:
    1. nettopreis 1000.00 und steuersatz 19.0
    2. nettopreis 1000.00 und steuersatz 7.0
    3. nettopreis 11.21 steuersatz 19.0
    4. nettopreis 11.21 steuersatz 7.0

Werden in einem mit dem Structorizer im Struktogramm dargestellten Algorithmus Variablen vom Datentyp Gleitkommazahl (float/double) verwendet, dann muss mindestens eine Zahl mit einem Dezimalpunkt entweder im Algorithmus angegeben werden oder beim Testen des Algorithmus eingegeben werden.
Ansonsten behandelt der Structorizer die Variablen wie von Datentyp Ganzzahl (int), was zu Fehlern führen kann.

  • Der Algorithmus »Bruttopreis« ist in den folgenden Programmen »bruttopreis.java« und »bruttopreis.py« implementiert.
Quelltext des Java-Programms »bruttopreis.java«
import java.util.Scanner;

public class Bruttopreis {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        
        System.out.print("Nettopreis: ");
        double nettopreis=input.nextDouble();
        System.out.print("Mehrwertsteuersatz: ");
        double steuersatz=input.nextDouble();
        
        double steuerbetrag=nettopreis*steuersatz/100;
        double bruttopreis=nettopreis+steuerbetrag;
        
        System.out.println(String.format("Bruttopreis: %.2f€",
            (bruttopreis)));
        
        input.close();
    }
}

Quelltext des Python-Programms »bruttopreis.py«
nettopreis=float(input("Nettopreis in €: "))
steuersatz=float(input("Mehrwertsteuersatz in %: "))

steuerbetrag=nettopreis*steuersatz/100
bruttopreis=nettopreis+steuerbetrag

print(f"Bruttopreis: {bruttopreis:.2f} €")

  • Da Preisangaben stets mit zwei Nachkommastellen erfolgen, müssen in den Programmen die Eingaben der Gleitkommazahlen – wie im folgenden Beispiel – mit zwei Nachkommastellen (im Festkommaformat[1]) erfolgen:
    • Nettopreis in €: 11.21
    • Mehrwertsteuersatz in %: 19
      (19 ist dabei eine ganzzahlige Gleitkommazahl)
    Die Ausgabe des Programms ist:
    • Bruttopreis: 13.34 €
Übung

Aufgabe A8

Entwickle einen Algorithmus »Kreis« zum Berechnen des Umfangs und Flächeninhalts eines Kreises.

  • Stelle den Algorithmus in einem Struktogramm mit dem Structorizer dar.[2]
  • Teste den Algorithmus.
Übung

Aufgabe A9

Entwickle einen Algorithmus »Quader« zum Berechnen des Volumens eines Quaders.

  • Stelle den Algorithmus in einem Struktogramm mit dem Structorizer dar.
  • Teste den Algorithmus.
Übung

Aufgabe A10

In der Abbildung 2 ist der Algorithmus »Unbekannt« im Struktogramm dargestellt.

Bild 08
Abbildung 2: Algorithmus »Unbekannt«
  • Die Variablen »elternteil«, »kind» und »differenz« des Algorithmus sind vom Datentyp Ganzzahl (int).
  • Eine Eingabe ist das Alter eines Elternteils.
  • Die andere Eingabe ist das Alter eines Kindes des Elternteils.

Beantworte die Fragen:

  1. Welche Werte gibt der Algorithmus für die folgenden Eingaben aus?
    • Die Eingabe des Alters des Elternteils ist 46.
    • Die Eingabe des Alters des Kindes ist 7.
    • Die Eingabe ist das Alter eines deiner Elternteile.
    • Die Eingabe deines Alters.
  2. Was für ein Problem löst der Algorithmus?

  1. [1] Gleitkommazahlen können sowohl im Fließkommaformat (z. B. 1e2 oder 6.25e1) als auch im Festkommaformat (z. B. 100.0 oder 62.5) ein- und ausgegeben werden.
  2. [2] Es ist auch möglich, das Struktogramm oder die Struktogramme online im Internet zu erstellen.