Labor 2: Variablen, Berechnungen und Interaktion

Grundlagen der Programmierung - Wintersemester 2025/26
⏱️ Dauer: 180 Minuten (3 Stunden)
🏠 Zurück zur Startseite

🎯 Willkommen zu Labor 2!

In diesem Labor vertiefen Sie Ihr Wissen über Variablen, lernen Benutzereingaben mit scanf() und führen realistische Berechnungen durch. Alle Aufgaben bauen auf dem auf, was Sie bereits gelernt haben!

📋 Laborziele

⌨️ Benutzereingaben

Programme interaktiv machen mit scanf()

🧮 Berechnungen

Realistische Rechnungen mit verschiedenen Datentypen

💾 Variablen nutzen

int und double richtig einsetzen

🐛 Fehler finden

Programme debuggen und testen

ℹ️ Wichtige Hinweise

1 Taschenrechner

Ziel: Erstellen Sie einen interaktiven Taschenrechner für die vier Grundrechenarten.

📝 Aufgabenstellung:

Erstellen Sie eine Datei taschenrechner.c, die:

  1. Zwei Zahlen vom Benutzer einliest
  2. Addition berechnet
  3. Subtraktion berechnet
  4. Multiplikation berechnet
  5. Division berechnet
  6. Alle Ergebnisse übersichtlich ausgibt

💡 Was Sie brauchen:

int zahl1, zahl2;
printf("Erste Zahl eingeben: ");
scanf("%d", &zahl1);
⚠️ Wichtig:
  • Verwenden Sie int für ganze Zahlen
  • Bei scanf() nicht vergessen: & vor dem Variablennamen!
  • Die Division von zwei int ergibt wieder ein int (ohne Nachkommastellen)

🎯 Beispiel-Ausgabe:

Erste Zahl eingeben: 20
Zweite Zahl eingeben: 4

=== ERGEBNISSE ===
20 + 4 = 24
20 - 4 = 16
20 * 4 = 80
20 / 4 = 5
🔒 Musterlösung (Passwort bei Prof. Mikityuk erfragen)
Falsches Passwort!
#include <stdio.h>

int main() {
    int zahl1, zahl2;
    int addition, subtraktion, multiplikation, division;

    printf("Erste Zahl eingeben: ");
    scanf("%d", &zahl1);

    printf("Zweite Zahl eingeben: ");
    scanf("%d", &zahl2);

    // Berechnungen
    addition = zahl1 + zahl2;
    subtraktion = zahl1 - zahl2;
    multiplikation = zahl1 * zahl2;
    division = zahl1 / zahl2;

    // Ausgabe
    printf("\n=== ERGEBNISSE ===\n");
    printf("%d + %d = %d\n", zahl1, zahl2, addition);
    printf("%d - %d = %d\n", zahl1, zahl2, subtraktion);
    printf("%d * %d = %d\n", zahl1, zahl2, multiplikation);
    printf("%d / %d = %d\n", zahl1, zahl2, division);

    return 0;
}

Erklärung: Wir lesen zwei Zahlen mit scanf() ein. Das &-Zeichen ist der Adressoperator - er sagt scanf(), wo die Variable im Speicher liegt. Dann führen wir die vier Grundrechenarten durch und speichern die Ergebnisse in eigenen Variablen.

2 Geldwechsler

Ziel: Erstellen Sie einen Euro-Dollar-Währungsrechner.

📝 Aufgabenstellung:

Erstellen Sie eine Datei waehrung.c, die:

  1. Einen Betrag in Euro vom Benutzer einliest
  2. Den aktuellen Wechselkurs (z.B. 1 Euro = 1.10 Dollar) verwendet
  3. Den Betrag in Dollar umrechnet
  4. Beide Beträge ausgibt

💡 Was Sie brauchen:

  • Verwenden Sie double für Geldbeträge (wegen Cent/Nachkommastellen!)
  • Bei scanf() für double: Verwenden Sie %lf (nicht %f!)
  • Bei printf() für double: Verwenden Sie %.2f (2 Nachkommastellen)

🎯 Beispiel-Ausgabe:

Euro-Dollar Wechselkurs Rechner
================================
Wechselkurs: 1 Euro = 1.10 Dollar

Betrag in Euro eingeben: 50.00

50.00 Euro = 55.00 Dollar
🔒 Musterlösung (Passwort bei Prof. Mikityuk erfragen)
Falsches Passwort!
#include <stdio.h>

int main() {
    double euro, dollar;
    double wechselkurs = 1.10;

    printf("Euro-Dollar Wechselkurs Rechner\n");
    printf("================================\n");
    printf("Wechselkurs: 1 Euro = %.2f Dollar\n\n", wechselkurs);

    printf("Betrag in Euro eingeben: ");
    scanf("%lf", &euro);

    // Umrechnung
    dollar = euro * wechselkurs;

    // Ausgabe
    printf("\n%.2f Euro = %.2f Dollar\n", euro, dollar);

    return 0;
}

Erklärung: Bei Geldbeträgen verwenden wir immer double, da wir Cent (Nachkommastellen) brauchen. Wichtig: Bei scanf() für double verwenden wir %lf, bei printf() hingegen %.2f für 2 Nachkommastellen. Der Wechselkurs wird direkt bei der Deklaration initialisiert.

3 Einkaufsrechnung mit Mehrwertsteuer

Ziel: Berechnen Sie eine Rechnung inklusive Mehrwertsteuer.

📝 Aufgabenstellung:

Erstellen Sie eine Datei rechnung.c, die:

  1. Den Netto-Preis eines Produkts einliest
  2. Die Mehrwertsteuer (19%) berechnet
  3. Den Brutto-Preis (Netto + MwSt) berechnet
  4. Alles übersichtlich ausgibt

💡 Berechnungen:

  • Mehrwertsteuer = Netto × 0.19
  • Brutto = Netto + Mehrwertsteuer
  • Alternativ: Brutto = Netto × 1.19

🎯 Beispiel-Ausgabe:

=== KASSENBON ===

Netto-Preis eingeben: 100.00

Netto-Preis:     100.00 Euro
MwSt (19%):       19.00 Euro
----------------------------
Brutto-Preis:    119.00 Euro
🔒 Musterlösung (Passwort bei Prof. Mikityuk erfragen)
Falsches Passwort!
#include <stdio.h>

int main() {
    double netto, mwst, brutto;
    double steuersatz = 0.19;

    printf("=== KASSENBON ===\n\n");
    printf("Netto-Preis eingeben: ");
    scanf("%lf", &netto);

    // Berechnungen
    mwst = netto * steuersatz;
    brutto = netto + mwst;

    // Ausgabe
    printf("\nNetto-Preis:  %8.2f Euro\n", netto);
    printf("MwSt (19%%):   %8.2f Euro\n", mwst);
    printf("----------------------------\n");
    printf("Brutto-Preis: %8.2f Euro\n", brutto);

    return 0;
}

Erklärung: Die MwSt berechnen wir mit netto * 0.19 (19%). Der Brutto-Preis ist die Summe aus Netto und MwSt. Mit %8.2f formatieren wir die Ausgabe rechtsbündig mit 8 Zeichen Breite. Tipp: Um ein %-Zeichen auszugeben, schreiben Sie %%.

4 BMI-Rechner

Ziel: Erstellen Sie einen Body-Mass-Index Rechner.

📝 Aufgabenstellung:

Erstellen Sie eine Datei bmi.c, die:

  1. Das Gewicht in kg einliest
  2. Die Körpergröße in Metern einliest
  3. Den BMI berechnet: BMI = Gewicht / (Größe × Größe)
  4. Den BMI ausgibt

💡 Formel:

BMI = Gewicht (kg) / (Größe (m))²

Beispiel: 70 kg bei 1.75 m → BMI = 70 / (1.75 × 1.75) = 22.86

⚠️ Wichtig:
  • Verwenden Sie double für alle Variablen
  • Die Größe muss in Metern eingegeben werden (z.B. 1.75, nicht 175)
  • Für "hoch 2" rechnen Sie groesse * groesse

🎯 Beispiel-Ausgabe:

BMI-Rechner
===========

Gewicht in kg eingeben: 70.0
Größe in Metern eingeben: 1.75

Ihr BMI: 22.86

BMI-Kategorien:
< 18.5: Untergewicht
18.5 - 24.9: Normalgewicht
25 - 29.9: Übergewicht
>= 30: Adipositas
🔒 Musterlösung (Passwort bei Prof. Mikityuk erfragen)
Falsches Passwort!
#include <stdio.h>

int main() {
    double gewicht, groesse, bmi;

    printf("BMI-Rechner\n");
    printf("===========\n\n");

    printf("Gewicht in kg eingeben: ");
    scanf("%lf", &gewicht);

    printf("Größe in Metern eingeben: ");
    scanf("%lf", &groesse);

    // BMI berechnen
    bmi = gewicht / (groesse * groesse);

    // Ausgabe
    printf("\nIhr BMI: %.2f\n", bmi);
    printf("\nBMI-Kategorien:\n");
    printf("< 18.5: Untergewicht\n");
    printf("18.5 - 24.9: Normalgewicht\n");
    printf("25 - 29.9: Übergewicht\n");
    printf(">= 30: Adipositas\n");

    return 0;
}

Erklärung: Der BMI wird berechnet, indem man das Gewicht durch die Größe im Quadrat teilt. Für "Größe²" schreiben wir groesse * groesse. Alle Variablen sind vom Typ double, da wir mit Kommazahlen arbeiten.

5 Tankstellen-Rechner ⭐ BONUS

Ziel: Berechnen Sie Tankkosten und Reichweite.

📝 Aufgabenstellung:

Erstellen Sie eine Datei tankstelle.c, die:

  1. Den getankten Liter-Betrag einliest
  2. Den Preis pro Liter einliest
  3. Die Gesamtkosten berechnet
  4. Den Durchschnittsverbrauch (l/100km) einliest
  5. Die mögliche Reichweite berechnet

💡 Berechnungen:

  • Gesamtkosten = Liter × Preis pro Liter
  • Reichweite = (Liter / Verbrauch) × 100

Beispiel: 50 Liter bei 6 l/100km → Reichweite = (50 / 6) × 100 = 833.33 km

⚠️ Wichtig bei Division:

Um Nachkommastellen zu erhalten, multiplizieren Sie mit 1.0:

reichweite = 1.0 * liter / verbrauch * 100;

🎯 Beispiel-Ausgabe:

=== TANKSTELLEN-RECHNER ===

Getankte Liter: 50.0
Preis pro Liter (Euro): 1.65
Durchschnittsverbrauch (l/100km): 6.5

--- ERGEBNIS ---
Gesamtkosten: 82.50 Euro
Mögliche Reichweite: 769.23 km

Bei 6.50 l/100km können Sie
mit 50.00 Litern etwa 769 km fahren.
🔒 Musterlösung (Passwort bei Prof. Mikityuk erfragen)
Falsches Passwort!
#include <stdio.h>

int main() {
    double liter, preisProLiter, gesamtkosten;
    double verbrauch, reichweite;

    printf("=== TANKSTELLEN-RECHNER ===\n\n");

    printf("Getankte Liter: ");
    scanf("%lf", &liter);

    printf("Preis pro Liter (Euro): ");
    scanf("%lf", &preisProLiter);

    printf("Durchschnittsverbrauch (l/100km): ");
    scanf("%lf", &verbrauch);

    // Berechnungen
    gesamtkosten = liter * preisProLiter;
    reichweite = 1.0 * liter / verbrauch * 100;

    // Ausgabe
    printf("\n--- ERGEBNIS ---\n");
    printf("Gesamtkosten: %.2f Euro\n", gesamtkosten);
    printf("Mögliche Reichweite: %.2f km\n", reichweite);
    printf("\nBei %.2f l/100km können Sie\n", verbrauch);
    printf("mit %.2f Litern etwa %.0f km fahren.\n", liter, reichweite);

    return 0;
}

Erklärung: Die Reichweite berechnen wir mit der Formel (Liter / Verbrauch) × 100. Wichtig: Wir multiplizieren mit 1.0, um sicherzustellen, dass das Ergebnis ein double mit Nachkommastellen ist. Mit %.0f geben wir die Reichweite ohne Nachkommastellen aus (gerundet).

🎯 Ziel des Labors

✅ Was Sie erreichen sollten

🐛 Häufige Fehler vermeiden

❌ Fehler 1: & bei scanf vergessen
// FALSCH:
scanf("%d", anzahl);

// RICHTIG:
scanf("%d", &anzahl);
❌ Fehler 2: %f statt %lf bei scanf für double
// FALSCH:
scanf("%f", &preis);

// RICHTIG:
scanf("%lf", &preis);
❌ Fehler 3: Dezimalkomma statt Dezimalpunkt
// FALSCH:
double preis = 1,45;

// RICHTIG:
double preis = 1.45;
❌ Fehler 4: Ganzzahldivision
// PROBLEM: Ergibt 0 statt 2.5
int ergebnis = 5 / 2;

// LÖSUNG: Mit 1.0 multiplizieren
double ergebnis = 1.0 * 5 / 2;

🤔 Hilfe! Es funktioniert nicht!

Debugging-Tipps:

  1. Compiler-Fehler: Lesen Sie die Fehlermeldung genau - oft steht da schon die Lösung!
  2. Falsche Ausgabe: Verwenden Sie den Debugger (F5 in VS Code) und setzen Sie Breakpoints
  3. Programm stürzt ab: Haben Sie bei scanf() das & vergessen?
  4. Division ergibt 0: Multiplizieren Sie mit 1.0 für double-Division
  5. Immer noch Probleme? Fragen Sie im Labor oder kommen Sie zur Sprechstunde (Raum 308)!

🎉 Herzlichen Glückwunsch!

Sie haben Labor 2 gemeistert! Sie können jetzt:

Weiter so! 🚀

🔐 Musterlösungen - Passwörter

Hinweis: Diese Passwörter sind nur für Lehrende bestimmt.

Aufgabe Thema Passwort
Aufgabe 1 Taschenrechner calc
Aufgabe 2 Geldwechsler money
Aufgabe 3 Einkaufsrechnung tax
Aufgabe 4 BMI-Rechner health
Aufgabe 5 Tankstellen-Rechner (BONUS) fuel

Prof. Dr. Alexandra Mikityuk
HTW Berlin | Raum 308
Grundlagen der Programmierung | Wintersemester 2025/26

🏠 Zurück zur Startseite