Prozedurale Programmierung

Lernfeld 11: Funktionalität in Anwendungen realisieren

Was ist prozedurale Programmierung?

Ein Rezept für den Computer

Stell dir vor, du schreibst ein Kochrezept. Es besteht aus einer klaren Abfolge von Schritten: "Zwiebeln schneiden", "Öl erhitzen", "Zwiebeln anbraten". Genau so funktioniert die prozedurale Programmierung. Sie ist eines der ältesten und am weitesten verbreiteten Programmierparadigmen. Ein prozedurales Programm ist im Grunde eine Liste von Anweisungen, die der Computer nacheinander abarbeitet.

Damit das "Rezept" bei komplexen Gerichten nicht unendlich lang und unübersichtlich wird, fasst man einzelne Schritte zu Gruppen zusammen. Statt jedes Mal zu schreiben "Mehl sieben, Eier aufschlagen, Milch hinzufügen, verrühren", sagst du einfach "Pfannkuchenteig herstellen". In der Programmierung nennt man diese zusammengefassten Anweisungsblöcke Prozeduren (oder auch Funktionen, Routinen).

Das Hauptprogramm ruft diese Prozeduren auf, um Aufgaben zu erledigen. Das macht den Code übersichtlicher, leichter verständlich und wiederverwendbar. Du musst das Rad (oder den Pfannkuchenteig) nicht jedes Mal neu erfinden.

Gemeinsamer Zustand (State)

Ein weiteres Merkmal ist der Umgang mit Daten. Stell dir vor, alle Zutaten liegen auf einem großen Küchentisch, auf den jeder Zugriff hat. In der prozeduralen Programmierung entspricht dies dem gemeinsamen Zustand (Shared State) in Form von Variablen. Prozeduren lesen diese Variablen, verarbeiten sie und schreiben die Ergebnisse zurück. Das ist effizient, birgt aber auch Risiken: Wenn viele Köche (Prozeduren) gleichzeitig in denselben Topf (Variable) greifen, kann das Ergebnis unerwartet sein (Seiteneffekte).

dec-software-engineering-programming-basics-programming-paradigms-procedural-programming_page1.svg

Wie wird der Ablauf gesteuert?

Der Kontrollfluss: Wer macht was wann?

Der Kontrollfluss bestimmt, in welcher Reihenfolge die Anweisungen ausgeführt werden. In der prozeduralen Programmierung gibt es drei grundlegende Bausteine, die du wie Legosteine kombinieren kannst:

  1. Sequenz: Die einfachste Form. Anweisungen werden stur nacheinander ausgeführt.
    • Beispiel: Tür öffnen -> Eintreten -> Tür schließen.
  2. Verzweigung (Selektion): Eine Entscheidung muss getroffen werden. Der Weg gabelt sich.
    • Beispiel: WENN es regnet, DANN nimm den Schirm, SONST lass ihn stehen. (If-Else-Anweisungen).
  3. Schleife (Iteration): Eine Aufgabe wird wiederholt, solange eine Bedingung erfüllt ist.
    • Beispiel: SOLANGE noch Nägel in der Kiste sind, schlage einen Nagel in die Wand. (While- oder For-Schleifen).

Zusätzlich springt das Programm durch Prozeduraufrufe an andere Stellen im Code und kehrt nach Erledigung der Aufgabe wieder zurück. Die Kunst der prozeduralen Programmierung liegt darin, diese Bausteine so zu kombinieren, dass komplexe Probleme gelöst werden.

Prozedur oder Funktion?

In vielen modernen Programmiersprachen (wie Python oder C) werden die Begriffe oft synonym verwendet, aber historisch und konzeptionell gibt es einen Unterschied:

  • Funktionen sind wie mathematische Formeln. Sie nehmen Eingabewerte, berechnen etwas und geben ein Ergebnis zurück. Idealerweise verändern sie dabei nichts anderes in der "Welt" des Programms.
    • Beispiel: Eine Funktion berechneQuadrat(5) gibt einfach 25 zurück. Sie druckt nichts aus und ändert keine globalen Variablen.
  • Prozeduren sind eher wie Befehle oder Handlungsanweisungen. Sie führen eine Aktion aus, geben aber oft keinen direkten Wert zurück. Stattdessen verändern sie den Zustand des Programms oder der Umwelt (sogenannte Seiteneffekte).
    • Beispiel: Eine Prozedur druckeRechnung() sendet Daten an den Drucker. Sie liefert kein Rechenergebnis zurück, sondern "tut" etwas.

In der Praxis verschwimmen diese Grenzen oft. Eine "Funktion" in Python kann problemlos Seiteneffekte haben (z.B. etwas in eine Datei schreiben) und trotzdem einen Wert zurückgeben. Dennoch hilft die Unterscheidung, um über die Absicht eines Codeblocks nachzudenken: Soll er etwas berechnen oder etwas bewirken?

dec-software-engineering-programming-basics-programming-paradigms-procedural-programming_page2.svg

Lernziele

  • den Kontrollfluss in prozeduralen Programmen interpretieren, indem analysiert wird, wie Sequenzen, Verzweigungen und Schleifen in Kombination mit Prozeduraufrufen den Ablauf eines Programms bestimmen.
  • das Konzept der prozeduralen Programmierung erklären, indem die Strukturierung von Programmen als Sequenz von Anweisungen, die in Prozeduren (Funktionen) organisiert sind, und die Manipulation eines gemeinsamen Zustands (Variablen) beschrieben wird.
  • die Begriffe Prozedur und Funktion im Kontext der prozeduralen Programmierung differenzieren, indem erläutert wird, dass Prozeduren typischerweise Aktionen ausführen (Seiteneffekte), während Funktionen Werte berechnen und zurückgeben, auch wenn diese Unterscheidung in modernen Sprachen oft syntaktisch verschwimmt.
🚀 Bereit für mehr?

Vertiefe dein Wissen!

Du hast die Grundlagen verstanden? Perfekt! In unserer App findest du interaktive Übungen, praktische Projekte und erweiterte Inhalte zu Prozedurale Programmierung.

Ab 5€/Monat • Kostenloser Test verfügbar