🏠 Zurück zur Startseite

💻 Labor 3

Verzweigungen und Git/GitHub Setup mit SSH
Grundlagen der Programmierung in C • HTW Berlin • WiSe 2025/26

📋 Lernziele

In diesem Labor werden Sie:

Teil 1: Verzweigungen in C

1 Temperaturprüfung

🎯 Aufgabenstellung

Schreiben Sie ein Programm, das eine Temperatur in Grad Celsius einliest und eine passende Meldung ausgibt:

  • Unter 0°C: "Es friert!"
  • 0-15°C: "Es ist kalt"
  • 16-25°C: "Angenehme Temperatur"
  • Über 25°C: "Es ist warm"

📝 Schritt 1: Analysieren

  • Eingaben identifizieren: Temperatur (double oder int)
  • Ausgaben definieren: 4 verschiedene Meldungen
  • Bedingungen: <, <=, > für Temperaturbereiche

🎨 Schritt 2: Algorithmus (Pseudocode)

EINGABE: temperatur WENN temperatur < 0 DANN AUSGABE: "Es friert!" SONST WENN temperatur <= 15 DANN AUSGABE: "Es ist kalt" SONST WENN temperatur <= 25 DANN AUSGABE: "Angenehme Temperatur" SONST AUSGABE: "Es ist warm"

💻 Schritt 3: Implementierung

Dateiname: temperatur.c

💡 Hinweise

  • Verwenden Sie double für die Temperatur
  • Nutzen Sie else if für mehrere Bedingungen
  • Testen Sie mit verschiedenen Werten: -5, 0, 10, 20, 30
  • Achten Sie auf die Reihenfolge der Bedingungen!
🔒 Musterlösung
Falsches Passwort!
/*
 * temperatur.c
 * Temperaturprüfung mit if-else if Verzweigungen
 */

#include <stdio.h>

int main()
{
    double temperatur;

    printf("Geben Sie die Temperatur in Grad Celsius ein: ");
    scanf("%lf", &temperatur);

    // Verzweigungen für verschiedene Temperaturbereiche
    if (temperatur < 0)
    {
        printf("Es friert!\n");
    }
    else if (temperatur <= 15)
    {
        printf("Es ist kalt\n");
    }
    else if (temperatur <= 25)
    {
        printf("Angenehme Temperatur\n");
    }
    else
    {
        printf("Es ist warm\n");
    }

    return 0;
}

✅ Testfälle

  • Eingabe: -5 → Ausgabe: "Es friert!"
  • Eingabe: 0 → Ausgabe: "Es ist kalt"
  • Eingabe: 10 → Ausgabe: "Es ist kalt"
  • Eingabe: 20 → Ausgabe: "Angenehme Temperatur"
  • Eingabe: 30 → Ausgabe: "Es ist warm"

2 Schaltjahr-Prüfung

🎯 Aufgabenstellung

Schreiben Sie ein Programm, das ein Jahr einliest und prüft, ob es ein Schaltjahr ist.

Regeln für Schaltjahre:

  • Ein Jahr ist ein Schaltjahr, wenn es durch 4 teilbar ist
  • ABER: Jahre, die durch 100 teilbar sind, sind KEINE Schaltjahre
  • AUSNAHME: Jahre, die durch 400 teilbar sind, sind doch Schaltjahre

📊 Beispiele

Jahr Schaltjahr? Grund
2024 ✅ Ja Teilbar durch 4, nicht durch 100
1900 ❌ Nein Teilbar durch 100, nicht durch 400
2000 ✅ Ja Teilbar durch 400
2023 ❌ Nein Nicht teilbar durch 4

💻 Implementierung

Dateiname: schaltjahr.c

💡 Hinweise

  • Verwenden Sie den Modulo-Operator % für Teilbarkeit
  • Ein Jahr ist durch 4 teilbar, wenn: jahr % 4 == 0
  • Nutzen Sie logische Operatoren && und ||
  • Die Bedingung könnte so aussehen: if ((jahr % 4 == 0 && jahr % 100 != 0) || (jahr % 400 == 0))
🔒 Musterlösung
Falsches Passwort!
/*
 * schaltjahr.c
 * Schaltjahrprüfung mit logischen Operatoren
 */

#include <stdio.h>

int main()
{
    int jahr;

    printf("Geben Sie ein Jahr ein: ");
    scanf("%d", &jahr);

    // Schaltjahr-Regel mit logischen Operatoren
    // 1. Durch 4 teilbar UND nicht durch 100 teilbar
    // 2. ODER durch 400 teilbar
    if ((jahr % 4 == 0 && jahr % 100 != 0) || (jahr % 400 == 0))
    {
        printf("%d ist ein Schaltjahr!\n", jahr);
    }
    else
    {
        printf("%d ist kein Schaltjahr.\n", jahr);
    }

    return 0;
}

✅ Testfälle

  • Eingabe: 2024 → Ausgabe: "2024 ist ein Schaltjahr!" (durch 4, nicht durch 100)
  • Eingabe: 1900 → Ausgabe: "1900 ist kein Schaltjahr." (durch 100, nicht durch 400)
  • Eingabe: 2000 → Ausgabe: "2000 ist ein Schaltjahr!" (durch 400)
  • Eingabe: 2023 → Ausgabe: "2023 ist kein Schaltjahr." (nicht durch 4)

3 BMI-Rechner mit Kategorisierung

🎯 Aufgabenstellung

Schreiben Sie ein Programm, das den Body-Mass-Index (BMI) berechnet und eine Bewertung ausgibt.

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

📊 BMI-Kategorien

BMI-Bereich Kategorie
unter 18.5 Untergewicht
18.5 - 24.9 Normalgewicht
25.0 - 29.9 Übergewicht
30.0 oder höher Adipositas

📝 Beispielausgabe

Geben Sie Ihr Gewicht in kg ein: 70 Geben Sie Ihre Größe in Metern ein: 1.75 Ihr BMI: 22.86 Bewertung: Normalgewicht

💻 Implementierung

Dateiname: bmi.c

💡 Hinweise

  • Verwenden Sie double für alle Variablen
  • Größe im Quadrat: groesse * groesse
  • Ausgabe mit 2 Nachkommastellen: printf("%.2f", bmi);
  • Testen Sie mit: Gewicht=70kg, Größe=1.75m (Ergebnis: BMI ≈ 22.86)
🔒 Musterlösung
Falsches Passwort!
/*
 * bmi.c
 * BMI-Rechner mit Kategorisierung
 */

#include <stdio.h>

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

    printf("Geben Sie Ihr Gewicht in kg ein: ");
    scanf("%lf", &gewicht);

    printf("Geben Sie Ihre Größe in Metern ein: ");
    scanf("%lf", &groesse);

    // BMI berechnen: Gewicht / (Größe²)
    bmi = gewicht / (groesse * groesse);

    // BMI ausgeben
    printf("\nIhr BMI: %.2f\n", bmi);

    // Bewertung ausgeben
    printf("Bewertung: ");

    if (bmi < 18.5)
    {
        printf("Untergewicht\n");
    }
    else if (bmi < 25.0)
    {
        printf("Normalgewicht\n");
    }
    else if (bmi < 30.0)
    {
        printf("Übergewicht\n");
    }
    else
    {
        printf("Adipositas\n");
    }

    return 0;
}

✅ Testfälle

  • Gewicht: 70kg, Größe: 1.75m → BMI: 22.86 (Normalgewicht)
  • Gewicht: 50kg, Größe: 1.70m → BMI: 17.30 (Untergewicht)
  • Gewicht: 85kg, Größe: 1.75m → BMI: 27.76 (Übergewicht)
  • Gewicht: 100kg, Größe: 1.75m → BMI: 32.65 (Adipositas)

4 Einfacher Taschenrechner

🎯 Aufgabenstellung

Erstellen Sie einen einfachen Taschenrechner, der zwei Zahlen und einen Operator (+, -, *, /) einliest und das Ergebnis berechnet.

📝 Beispielausgabe

Erste Zahl: 10 Zweite Zahl: 3 Operator (+, -, *, /): / Ergebnis: 10.00 / 3.00 = 3.33

💻 Implementierung

Dateiname: rechner.c

💡 Hinweise

  • Verwenden Sie char für den Operator: char operator;
  • Einlesen des Operators: scanf(" %c", &operator); (Leerzeichen beachten!)
  • Prüfen Sie bei Division auf 0: if (zahl2 == 0)
  • Verwenden Sie if-else if für jeden Operator
  • Geben Sie eine Fehlermeldung aus, wenn der Operator ungültig ist

🎨 Struktur

// 1. Eingaben einlesen (zahl1, zahl2, operator)

if (operator == '+')
{
    // Addition
}
else if (operator == '-')
{
    // Subtraktion
}
// ... usw.
else
{
    printf("Ungültiger Operator!\n");
}
🔒 Musterlösung
Falsches Passwort!
/*
 * rechner.c
 * Einfacher Taschenrechner mit 4 Grundrechenarten
 */

#include <stdio.h>

int main()
{
    double zahl1, zahl2, ergebnis;
    char operator;

    // Eingaben einlesen
    printf("Erste Zahl: ");
    scanf("%lf", &zahl1);

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

    printf("Operator (+, -, *, /): ");
    scanf(" %c", &operator);  // Leerzeichen vor %c wichtig!

    // Berechnung je nach Operator
    if (operator == '+')
    {
        ergebnis = zahl1 + zahl2;
        printf("\nErgebnis: %.2f + %.2f = %.2f\n", zahl1, zahl2, ergebnis);
    }
    else if (operator == '-')
    {
        ergebnis = zahl1 - zahl2;
        printf("\nErgebnis: %.2f - %.2f = %.2f\n", zahl1, zahl2, ergebnis);
    }
    else if (operator == '*')
    {
        ergebnis = zahl1 * zahl2;
        printf("\nErgebnis: %.2f * %.2f = %.2f\n", zahl1, zahl2, ergebnis);
    }
    else if (operator == '/')
    {
        // Division durch 0 prüfen
        if (zahl2 == 0)
        {
            printf("\nFehler: Division durch 0 ist nicht erlaubt!\n");
        }
        else
        {
            ergebnis = zahl1 / zahl2;
            printf("\nErgebnis: %.2f / %.2f = %.2f\n", zahl1, zahl2, ergebnis);
        }
    }
    else
    {
        printf("\nFehler: Ungültiger Operator!\n");
    }

    return 0;
}

✅ Testfälle

  • 10 + 3 → Ergebnis: 13.00
  • 10 - 3 → Ergebnis: 7.00
  • 10 * 3 → Ergebnis: 30.00
  • 10 / 3 → Ergebnis: 3.33
  • 10 / 0 → Fehler: Division durch 0
  • 10 % 3 → Fehler: Ungültiger Operator

Teil 2: Git Installation & GitHub Setup mit SSH

5 Git installieren

🎯 Ziel

Git auf Ihrem Computer installieren und konfigurieren.

1 Git herunterladen

Besuchen Sie: https://git-scm.com/downloads

2 Installation (Windows)

⚠️ Wichtig für Windows

  • Installationspfad ohne Leerzeichen oder Umlaute wählen (z.B. C:\Dev\Git)
  • Bei der Installation "Git Bash" aktivieren
  • Option wählen: "Use Git from the Command Prompt"

3 Installation (macOS)

Git ist oft bereits installiert. Prüfen Sie mit:

git --version

Falls nicht installiert, lädt macOS automatisch die Xcode Command Line Tools herunter.

4 Installation (Linux)

# Ubuntu/Debian:
sudo apt-get install git

# Fedora:
sudo dnf install git

5 Installation überprüfen

Öffnen Sie ein Terminal (oder Git Bash auf Windows) und geben Sie ein:

git --version

Sie sollten eine Versionsnummer sehen, z.B.: git version 2.42.0

6 Git konfigurieren

Setzen Sie Ihren Namen und E-Mail-Adresse:

git config --global user.name "Ihr Name"
git config --global user.email "ihre.email@example.com"

# Konfiguration überprüfen:
git config --list
🔒 Musterlösung
Falsches Passwort!

✅ Checkliste für erfolgreiche Git-Installation

  1. Git heruntergeladen von https://git-scm.com/downloads
  2. Installiert (Windows: mit Git Bash aktiviert)
  3. Terminal/Git Bash geöffnet
  4. git --version ausgeführt → Versionsnummer sichtbar
  5. git config --global user.name "Ihr Name" ausgeführt
  6. git config --global user.email "ihre.email@example.com" ausgeführt
  7. git config --list ausgeführt → Name und E-Mail sichtbar

💡 Troubleshooting

  • Windows: Falls "git" nicht erkannt wird, Terminal neu starten oder Git zum PATH hinzufügen
  • macOS: Falls Git nicht gefunden wird, xcode-select --install ausführen
  • Linux: Falls Installation fehlschlägt, mit sudo versuchen

6 GitHub Account erstellen

🎯 Ziel

Einen kostenlosen GitHub Account erstellen.

1 Registrierung

  1. Besuchen Sie https://github.com
  2. Klicken Sie auf "Sign up"
  3. Geben Sie Ihre E-Mail-Adresse ein
  4. Erstellen Sie ein sicheres Passwort
  5. Wählen Sie einen eindeutigen Benutzernamen

💡 Tipp: Benutzername

Ihr Benutzername wird Teil Ihrer GitHub-URL: github.com/IhrBenutzername

Wählen Sie einen professionellen Namen, den Sie auch später noch verwenden möchten!

2 E-Mail bestätigen

GitHub sendet Ihnen eine Bestätigungs-E-Mail. Klicken Sie auf den Link in der E-Mail.

3 Umfrage (optional)

GitHub fragt nach Ihren Interessen. Sie können die Umfrage ausfüllen oder überspringen.

🔒 Musterlösung
Falsches Passwort!

✅ Checkliste für erfolgreiche GitHub-Registrierung

  1. github.com besucht
  2. Auf "Sign up" geklickt
  3. E-Mail-Adresse eingegeben (am besten studentische E-Mail für GitHub Student Developer Pack)
  4. Sicheres Passwort erstellt (mindestens 15 Zeichen oder 8 Zeichen mit Zahl und Kleinbuchstaben)
  5. Eindeutigen Benutzernamen gewählt (professionell, keine temporären Namen!)
  6. E-Mail-Bestätigung erhalten und Link angeklickt
  7. Erfolgreich eingeloggt bei github.com

💡 Bonus: GitHub Student Developer Pack

Mit Ihrer studentischen E-Mail-Adresse können Sie das GitHub Student Developer Pack beantragen:

7 SSH-Schlüssel erstellen und einrichten

🎯 Ziel

SSH-Schlüssel für sichere Authentifizierung bei GitHub erstellen.

Warum SSH statt HTTPS? Mit SSH-Schlüsseln können Sie sich ohne Passwort oder Token authentifizieren. Das ist sicherer und bequemer!

1 SSH-Schlüssel generieren

Öffnen Sie ein Terminal (Git Bash auf Windows) und führen Sie aus:

ssh-keygen -t rsa -b 4096

2 Speicherort bestätigen

Bei der Frage nach dem Speicherort einfach Enter drücken:

Enter file in which to save the key (/home/username/.ssh/id_rsa): [Enter drücken]

3 Passphrase (optional)

Sie können ein zusätzliches Passwort für den Schlüssel erstellen:

Enter passphrase (empty for no passphrase): [Passwort eingeben oder Enter] Enter same passphrase again: [Passwort wiederholen oder Enter]

💡 Hinweis

Ein Passwort erhöht die Sicherheit, macht die Nutzung aber etwas umständlicher. Für den Anfang können Sie es leer lassen.

4 Öffentlichen Schlüssel anzeigen

Zeigen Sie den Inhalt Ihres öffentlichen Schlüssels an:

cat ~/.ssh/id_rsa.pub

5 Schlüssel zu GitHub hinzufügen

  1. Kopieren Sie die gesamte Ausgabe (beginnend mit ssh-rsa)
  2. Gehen Sie zu GitHub → SettingsSSH and GPG keys
  3. Oder direkt: https://github.com/settings/keys
  4. Klicken Sie auf "New SSH key"
  5. Geben Sie einen Titel ein (z.B. "Mein Laptop")
  6. Key type: "Authentication Key"
  7. Fügen Sie den kopierten Schlüssel in das Feld "Key" ein
  8. Klicken Sie auf "Add SSH key"

6 Verbindung testen

Testen Sie die SSH-Verbindung zu GitHub:

ssh -T git@github.com

Bei der ersten Verbindung werden Sie gefragt, ob Sie fortfahren möchten. Geben Sie yes ein.

✅ Erfolg!

Sie sollten eine Nachricht sehen wie:

Hi IhrBenutzername! You've successfully authenticated, but GitHub does not provide shell access.
🔒 Musterlösung
Falsches Passwort!

✅ Checkliste für erfolgreiche SSH-Einrichtung

  1. Terminal/Git Bash geöffnet
  2. ssh-keygen -t rsa -b 4096 ausgeführt
  3. Bei Speicherort-Frage Enter gedrückt (Standard: ~/.ssh/id_rsa)
  4. Passphrase eingegeben oder leer gelassen (Enter)
  5. Meldung "Your public key has been saved" erhalten
  6. cat ~/.ssh/id_rsa.pub ausgeführt
  7. Kompletten öffentlichen Schlüssel kopiert (beginnt mit ssh-rsa)
  8. Zu github.com/settings/keys navigiert
  9. Auf "New SSH key" geklickt
  10. Titel eingegeben (z.B. "Mein Laptop")
  11. Key Type: "Authentication Key" ausgewählt
  12. Öffentlichen Schlüssel eingefügt
  13. Auf "Add SSH key" geklickt
  14. ssh -T git@github.com ausgeführt
  15. Bei Fingerprint-Frage "yes" eingegeben
  16. Erfolgsmeldung "Hi [Username]! You've successfully authenticated" erhalten

⚠️ Häufige Fehler

  • "Permission denied": Falscher Schlüssel kopiert oder nicht zu GitHub hinzugefügt
  • "Could not resolve hostname": Tippfehler in git@github.com
  • "No such file or directory": SSH-Schlüssel wurde nicht erstellt oder an anderem Ort gespeichert

💡 Wichtige Dateien

  • ~/.ssh/id_rsa - Privater Schlüssel (NIEMALS teilen oder hochladen!)
  • ~/.ssh/id_rsa.pub - Öffentlicher Schlüssel (dieser wird zu GitHub hinzugefügt)
  • ~/.ssh/known_hosts - Liste bekannter Server (wird automatisch erstellt)

8 Erstes Repository mit SSH erstellen

🎯 Ziel

Ein Git-Repository erstellen und mit SSH zu GitHub pushen.

1 Repository auf GitHub erstellen

  1. Gehen Sie zu https://github.com
  2. Klicken Sie auf "New" (grüner Button) oder das + oben rechts
  3. Repository Name: gdp-labor3
  4. Description: Meine Übungen aus Labor 3
  5. Wählen Sie Public
  6. ✅ Aktivieren Sie "Add a README file"
  7. Klicken Sie auf "Create repository"

2 SSH-URL kopieren

Auf der Repository-Seite:

  1. Klicken Sie auf den grünen "Code" Button
  2. Wählen Sie den Tab "SSH" (nicht HTTPS!)
  3. Kopieren Sie die URL: git@github.com:IhrBenutzername/gdp-labor3.git

⚠️ Wichtig: SSH nicht HTTPS!

Die URL muss mit git@github.com: beginnen, nicht mit https://!

✅ Richtig: git@github.com:username/gdp-labor3.git

❌ Falsch: https://github.com/username/gdp-labor3.git

3 Repository klonen

Öffnen Sie ein Terminal und navigieren Sie zu Ihrem Arbeitsverzeichnis:

# Ins Arbeitsverzeichnis wechseln (Beispiel)
cd ~/Dokumente

# Repository klonen (mit Ihrer SSH-URL!)
git clone git@github.com:IhrBenutzername/gdp-labor3.git

# In das Repository wechseln
cd gdp-labor3

4 Programme hinzufügen

Kopieren Sie Ihre fertigen C-Programme in diesen Ordner:

5 Änderungen committen und pushen

# Status prüfen
git status

# Alle Dateien zur Staging Area hinzufügen
git add .

# Commit erstellen
git commit -m "Labor 3: Verzweigungen - Aufgaben 1-4"

# Zum ersten Mal hochladen
git push -u origin main

# Danach reicht einfach:
git push

✅ Geschafft!

Ihre Programme sind jetzt auf GitHub! Besuchen Sie github.com/IhrBenutzername/gdp-labor3 um sie anzusehen.

6 Workflow für weitere Änderungen

Wenn Sie später weitere Änderungen machen:

# 1. Änderungen vornehmen (Dateien bearbeiten)

# 2. Status prüfen
git status

# 3. Geänderte Dateien hinzufügen
git add .

# 4. Commit mit aussagekräftiger Nachricht
git commit -m "BMI-Rechner: Ausgabe verbessert"

# 5. Hochladen
git push
🔒 Musterlösung
Falsches Passwort!

✅ Komplette Befehlsfolge

# 1. Repository auf GitHub erstellen (über Webinterface)
#    - Name: gdp-labor3
#    - Public
#    - Mit README initialisieren

# 2. SSH-URL von GitHub kopieren (unter "Code" → "SSH")
#    Beispiel: git@github.com:IhrBenutzername/gdp-labor3.git

# 3. Ins gewünschte Verzeichnis wechseln
cd ~/Dokumente

# 4. Repository klonen (Ihre SSH-URL verwenden!)
git clone git@github.com:IhrBenutzername/gdp-labor3.git

# 5. In das Repository wechseln
cd gdp-labor3

# 6. C-Dateien hineinkopieren
#    temperatur.c, schaltjahr.c, bmi.c, rechner.c

# 7. Status prüfen
git status

# 8. Alle Dateien zur Staging Area hinzufügen
git add .

# 9. Commit erstellen
git commit -m "Labor 3: Verzweigungen - Aufgaben 1-4"

# 10. Zum ersten Mal pushen
git push -u origin main

# 11. Repository auf GitHub ansehen
#     https://github.com/IhrBenutzername/gdp-labor3

✅ Erwartetes Ergebnis

Nach erfolgreichem Push sollten Sie auf GitHub sehen:

  • README.md
  • temperatur.c
  • schaltjahr.c
  • bmi.c
  • rechner.c
  • Commit-Nachricht: "Labor 3: Verzweigungen - Aufgaben 1-4"

⚠️ Häufige Fehler beim ersten Push

  • "Permission denied": SSH-Schlüssel nicht korrekt eingerichtet → Zurück zu Aufgabe 7
  • "fatal: 'origin' does not appear to be a git repository": HTTPS-URL statt SSH-URL verwendet
  • "Updates were rejected": Remote hat Änderungen, die lokal fehlen → git pull zuerst ausführen
  • Keine Commit-Nachricht: Text zwischen den Anführungszeichen vergessen

💡 Git Workflow für die Zukunft

Tägliche Arbeit:

  1. Code schreiben/ändern
  2. git status - Was hat sich geändert?
  3. git add . - Alle Änderungen stagen
  4. git commit -m "Beschreibung der Änderung" - Commit erstellen
  5. git push - Hochladen zu GitHub

Gute Commit-Nachrichten:

  • ✅ "Schaltjahr-Prüfung: Logikfehler bei 100er-Jahren behoben"
  • ✅ "BMI-Rechner: Ausgabe mit 2 Nachkommastellen formatiert"
  • ❌ "Update"
  • ❌ "asdf"
  • ❌ "fixes"

🎉 Labor 3 abgeschlossen!

✅ Checkliste - Haben Sie alles gemacht?

  • Temperaturprüfung implementiert und getestet
  • Schaltjahr-Prüfung mit logischen Operatoren erstellt
  • BMI-Rechner mit Kategorisierung programmiert
  • Taschenrechner mit allen vier Grundrechenarten
  • Git installiert und konfiguriert
  • GitHub Account erstellt
  • SSH-Schlüssel generiert und zu GitHub hinzugefügt
  • SSH-Verbindung erfolgreich getestet
  • Repository mit SSH erstellt und geklont
  • Programme committed und gepusht

📚 Weiterführende Ressourcen

🚀 Nächste Schritte

In der nächsten Vorlesung lernen Sie Schleifen (while, for, do-while) kennen!
Bis dahin: Üben Sie weiter mit Verzweigungen und experimentieren Sie mit Git!