
Ein großes Programm besteht aus vielen kleinen Funktionen – wie ein Haus aus Ziegeln. Jede Funktion hat eine Aufgabe. Das macht den Code lesbar, wartbar und testbar. Das ist professionelles Programmieren! 🏗️
🏗️ Modularisierung – Das Prinzip
Gute Programme sind in kleine, klare Einheiten aufgeteilt. Jede Funktion macht genau eine Sache und macht sie gut:
Single Responsibility Prinzip
Jede Funktion soll nur eine Aufgabe haben. Eine Funktion, die Eingaben liest, berechnet UND ausgibt, ist zu groß. Teile sie auf!
💻 Schlechtes vs. gutes Design
int main() { // Alles in main: // - Eingabe lesen // - Prüfen // - Berechnen // - Ausgeben // - Speichern // → 200 Zeilen! }
int eingabe_lesen(); int ist_gueltig(int); float berechne(int); void ausgeben(float); int main() { int x = eingabe_lesen(); if(ist_gueltig(x)) ausgeben(berechne(x)); }
💻 Vollständiges modulares Programm
#include <stdio.h> /* Eingabe */ int lese_punkte() { int p; printf("Punkte (0-100): "); scanf("%d", &p); return p; } /* Verarbeitung */ int punkte_zu_note(int punkte) { if (punkte >= 87) return 1; if (punkte >= 75) return 2; if (punkte >= 63) return 3; if (punkte >= 50) return 4; return 5; } /* Ausgabe */ void zeige_ergebnis(int punkte, int note) { printf("%d Punkte → Note %d\n", punkte, note); } /* Koordination */ int main() { int p = lese_punkte(); int n = punkte_zu_note(p); zeige_ergebnis(p, n); return 0; }
🎯 EVA-Prinzip in Funktionen
| Phase | Funktion | Aufgabe |
|---|---|---|
| Eingabe | lese_*() | Daten vom Benutzer einlesen, zurückgeben |
| Verarbeitung | berechne_*(), pruefe_*() | Daten verarbeiten, Ergebnis zurückgeben |
| Ausgabe | zeige_*(), drucke_*() | Ergebnis anzeigen, nichts zurückgeben |
✏️ Übungen
Aufgaben aufteilen
Ein Programm soll Temperatur in Celsius einlesen, in Fahrenheit umrechnen und das Ergebnis ausgeben. Welche Funktionen würdest du erstellen? Nenne Namen und Signaturen:
Modularer Taschenrechner
Schreibe einen Taschenrechner nach dem EVA-Prinzip. Erstelle Funktionen für: Eingabe (zwei Zahlen + Operator), Berechnung (switch für +,-,*,/), Ausgabe (Ergebnis anzeigen).
Temperatur-Konverter modular
Baue einen modularen Temperatur-Konverter nach dem EVA-Prinzip. Drei Funktionen: Eingabe, Umrechnung, Ausgabe. Unterstütze beide Richtungen (C→F und F→C):