Grundlagen der Programmierung in C
Prof. Dr. Alexandra Mikityuk
HTW Berlin - Wintersemester 2025/26
if-Anweisung verstehen und anwendenif-else für alternative AusführungspfadeBisher wurden alle Anweisungen Zeile für Zeile ausgeführt. Ein Programm soll aber auch in der Lage sein, auf unterschiedliche Situationen zu reagieren.
💡 Verzweigung: Eine Verzweigung wird mithilfe einer Bedingung formuliert. Eine Bedingung hat einen Wahrheitswert: entweder wahr oder falsch.
Ausgabe: Ein billiger Artikel
Der erste Block wird NICHT ausgeführt, weil 0.85 nicht größer als 0.99 ist.
Beim Vergleich von Zahlen stehen Ihnen 6 verschiedene Vergleichsoperatoren zur Verfügung:
| Operator | Bedeutung | Beispiel |
|---|---|---|
| > | größer als | preis > 0.99 |
| < | kleiner als | preis < 1.0 |
| >= | größer oder gleich | preis >= 1.0 |
| <= | kleiner oder gleich | preis <= 0.99 |
| == | gleich | preis == 1.50 |
| != | ungleich | preis != 1.50 |
⚠️ WICHTIG: Unterschied zwischen = und ==
= ist eine Zuweisung: preis = 1.5== ist ein Vergleich: if (preis == 1.5)Beobachtung: alle sechs Vergleichsoperatoren in einem Beispiel — jede if-Zeile prüft genau eine Bedingung und schreibt die Ausgabe nur, wenn sie wahr ist.
Mit else wird die Verzweigung erweitert: ist die if-Bedingung falsch, läuft der else-Zweig. Genau einer der beiden Blöcke wird immer ausgeführt.
Der Ablauf innerhalb einer Verzweigung kann auch von mehreren Bedingungen abhängig sein, die miteinander verknüpft werden.
| Operator | Bedeutung | Beispiel |
|---|---|---|
| && | Logisches UND | a < 1.0 && b < 1.0 |
| || | Logisches ODER | a > 0.99 || b > 0.99 |
| ! | Logisches NICHT | !(preis > 0.99) |
Falls alle Bedingungen zutreffen sollen, verknüpfen Sie sie mit && — logisches Und.
Reicht eine Bedingung, nutzen Sie || — logisches Oder.
! dreht den Wahrheitswert um: aus wahr wird falsch und umgekehrt.
Vergleichsoperatoren (<, >, ==) haben Vorrang vor logischen Operatoren (&&, ||, !). Erst werden die einzelnen Wahrheitswerte berechnet, dann verknüpft.
Schreiben Sie ein Programm in der Datei u_fall.c. Es soll die folgende Ausgabe ermöglichen (hier mit Eingaben des Benutzers):
💡 Tipp: Eine mögliche Lösung finden Sie in Abschnitt C.3 des Buchs.
Kein Semikolon nach else — sonst wird der Zweig sofort beendet, der Compiler meldet nichts, die Anweisung wird immer ausgeführt.
= statt ==if (preis = 1.5) ist eine Zuweisung, kein Vergleich. Compiler meckert nicht — Programm-Logik kaputt.
Ohne { } gehört nur die erste Anweisung zur if-Bedingung — der Rest läuft immer.
>, <, >=, <=, ==, !=&& (UND), || (ODER), ! (NICHT)= ist Zuweisung, == ist Vergleichif oder else&& und || kombiniert werdenBevor Sie mit dem Programmieren beginnen, sollten Sie einen Plan haben!
💡 Wichtig: Nur Schritt 5 ist das eigentliche Programmieren! Die Schritte 1-4 sind das Denken - und das ist mindestens genauso wichtig!
Schreiben Sie ein Programm, das das Alter einer Person abfragt und prüft, ob sie einen Film ab 16 Jahren sehen darf. Wenn die Person 16 Jahre oder älter ist, soll "Zutritt erlaubt" ausgegeben werden. Andernfalls soll "Zutritt verboten" ausgegeben werden.
🎯 Tipp: Lesen Sie die Aufgabe mehrmals! Markieren Sie wichtige Wörter wie "wenn", "sonst", "prüfen", "berechnen".
| Eingabe | Beschreibung | Datentyp | Variable |
|---|---|---|---|
| Alter | Alter der Person | int |
alter |
| Ausgabe | Bedingung |
|---|---|
| "Zutritt erlaubt" | Wenn alter >= 16 |
| "Zutritt verboten" | Sonst (alter < 16) |
Ein Flussdiagramm visualisiert den Programmablauf:
| Symbol | Bedeutung | Verwendung |
|---|---|---|
|
Oval
|
Start / Ende | Programmstart und -ende |
|
Rechteck
|
Anweisung | Eingabe, Ausgabe, Berechnung |
|
Raute
|
Bedingung | if-Anweisungen, Verzweigungen |
| → | Pfeil | Programmfluss, Richtung |
💡 Tipp: Zeichnen Sie Flussdiagramme immer zuerst auf Papier! Das hilft Ihnen, die Logik zu verstehen, bevor Sie Code schreiben.
Wenn Sie die Schritte 1-4 gemacht haben, ist das Programmieren einfach:
✅ Sehen Sie? Mit guter Planung schreibt sich der Code fast von selbst!
Schreiben Sie ein Programm, das Punkte aus einer Klausur einliest (0-100) und eine Note ausgibt:
• 90-100 Punkte: Note 1 (Sehr gut)
• 80-89 Punkte: Note 2 (Gut)
• 70-79 Punkte: Note 3 (Befriedigend)
• 60-69 Punkte: Note 4 (Ausreichend)
• 0-59 Punkte: Note 5 (Nicht bestanden)
int punkte - Punktzahl (0-100)💡 Pseudocode: Eine Zwischenstufe zwischen menschlicher Sprache und Programmiersprache. Hilft beim Denken!
⚠️ Wichtig: Die Reihenfolge ist entscheidend! Wir prüfen von oben nach unten.
else am Ende ist optional (aber empfohlen!)⚠️ Achtung: else if ist NICHT dasselbe wie mehrere separate if-Anweisungen!
Ein Museum hat folgende Preise:
• Kinder (unter 6 Jahre): Eintritt frei
• Kinder/Jugendliche (6-17 Jahre): 5 Euro
• Erwachsene (18-64 Jahre): 12 Euro
• Senioren (65+ Jahre): 8 Euro
Schreiben Sie ein Programm, das das Alter einliest und den Ticketpreis ausgibt.
💡 Tipp: Denken Sie zuerst nach, dann programmieren! 5 Minuten Planung sparen 30 Minuten Debugging.
printf zum DebuggenBitte zu Hause durcharbeiten. Alles klausurrelevant.
| Testfall-Typ | Beschreibung | Beispiel (Alter >= 16) |
|---|---|---|
| Normalfall | Typische Eingaben | alter = 20, alter = 10 |
| Grenzwerte | Werte an den Grenzen | alter = 16, alter = 15 |
| Extremwerte | Sehr große/kleine Werte | alter = 0, alter = 120 |
| Ungültige Eingaben | Fehlerhafte Werte | alter = -5 (negativ) |
⚠️ Wichtig: Testen Sie IMMER die Grenzwerte! Die meisten Fehler passieren an den Grenzen (z.B. >= vs. >).
| # | Fehler | Richtig |
|---|---|---|
| 1 | if (alter = 16) |
if (alter == 16) |
| 2 | if (alter >= 16); |
if (alter >= 16) |
| 3 | Klammern um Bedingung vergessen | Immer if (Bedingung) |
| 4 | Geschweifte Klammern vergessen | Bei mehreren Zeilen: { ... } |
| 5 | if (10 < alter < 20) |
if (alter > 10 && alter < 20) |
| 6 | else; { ... } |
else { ... } |
| 7 | Falsche Operator-Priorität | Klammern verwenden: (a && b) || c |
| 8 | Grenzwerte nicht getestet | Immer Grenzwerte testen! |
| 9 | Bedingungen in falscher Reihenfolge | Bei else-if: Spezielle vor allgemeine |
| 10 | Keine Kommentare im Code | Kommentare für bessere Lesbarkeit |
if, else, else if für verschiedene Fälle>, <, >=, <=, ==, !=&&, ||, !
💡 Erst denken, dann programmieren!
Gute Planung = Weniger Bugs = Mehr Erfolg
💪 Übung macht den Meister!
Je mehr Programme Sie schreiben, desto leichter wird es!
Prof. Dr. Alexandra Mikityuk
🏢 Büro: Raum C308
📅 Sprechstunde: Mittwoch 15:30-16:30
💡 Denken Sie daran:
Programmieren ist wie eine Fremdsprache lernen.
Am Anfang schwer, aber mit Übung wird es zur zweiten Natur!