Vergleich Pseudocode - Struktogramm (V)

2.7.3. Vergleich Pseudocode - Struktogramm (V)#

Betrachten wir einen einfachen Algorithmus, der das Maximum einer Liste von Zahlen findet. Wir stellen ihn in drei verschiedenen Formen dar.

2.7.3.1. Pseudocode#

FUNCTION finde_maximum(liste):
    WENN liste leer:
        GIB Fehler zurück
    ENDE WENN
    
    maximum = erstes Element der liste
    
    FÜR jedes element IN liste:
        WENN element > maximum:
            maximum = element
        ENDE WENN
    ENDE FÜR
    
    GIB maximum zurück
ENDE FUNKTION

2.7.3.2. Struktogramm#

../../_images/struktogramm-example.png

Abb. 2.23 Struktogramm für den Algorithmus zur Bestimmung des Maximums einer Liste.#

2.7.3.3. Python-Code#

def finde_maximum(liste):
    if not liste:
        raise ValueError("Liste ist leer")
    
    maximum = liste[0]
    
    for element in liste:
        if element > maximum:
            maximum = element
    
    return maximum

# Beispiel
zahlen = [3, 7, 2, 9, 1, 5]
print(f"Das Maximum von {zahlen} ist {finde_maximum(zahlen)}")
Das Maximum von [3, 7, 2, 9, 1, 5] ist 9

Sie haben nur drei Wege gesehen, wie man einen Algorithmus kommunizieren kann.

Dokumentation in der Praxis

In der Praxis werden Sie vor allem auf Sequenzdiagramme und Paketdiagramme treffen. Diese Diagrammtypen stellen häufig Softwarearchitekturen dar, die allein aus dem Quellcode nicht mehr ersichtlich sind.

Ein wichtiger Grundsatz der Dokumentation lautet: Dokumentiert und visualisiert wird all das, was nicht direkt aus dem Quellcode hervorgeht.

Ist ein Algorithmus einmal implementiert, benötigen Sie sein Struktogramm in der Regel nicht mehr in der Dokumentation – die Implementierung im Quellcode reicht aus (sofern der Algorithmus korrekt implementiert wurde). Das bedeutet jedoch nicht, dass beim Entwurf kein Struktogramm verwendet wurde: Struktogramme und Pseudocode sind wichtige Werkzeuge während der Entwicklung, auch wenn sie später nicht in der finalen Dokumentation erscheinen.

Exercise 2.12 (Aufgabe)

Sie möchten einer Kommilitonin erklären, was diese Funktion macht, ohne Python-Syntax im Detail zu besprechen:

„Gegeben ist eine Liste von Zahlen. Gib die größte Zahl zurück. Falls die Liste leer ist, gib einen Fehler aus.“

  1. Welches Kommunikationsmedium wählen Sie (Pseudocode, Struktogramm oder Python-Code) – und warum?

  2. Schreiben Sie den Algorithmus in 5–10 Zeilen Pseudocode.