đŸ’» Labor 2: Hello World vertiefen + Computer-Architektur

Grundlagen der Programmierung ‱ Sommersemester 2026
⏱ Dauer: 180 Minuten (3 Stunden)
🏠 ZurĂŒck zur Startseite

🎉 Willkommen zurĂŒck!

Im letzten Labor haben Sie Ihr erstes printf-Programm geschrieben. Heute machen wir zwei Dinge: (1) wir festigen die Hello-World-Grundlagen mit ein paar lockeren Übungen, und (2) wir schauen uns an, was Sie in Vorlesung 3 ĂŒber Computer-Architektur gelernt haben — mit einem Quiz und einer Recherche-Aufgabe an Ihrem eigenen Rechner.

Wichtig: Variablen kommen erst nÀchste Woche dran. Hier reicht printf mit festem Text und Zahlen.

📋 Laborziele

🔁 printf festigen

Mehrere Zeilen, Sonderzeichen, kreative Ausgaben

🧠 Computer verstehen

CPU, RAM, GPU, SSD — Quiz zur Vorlesung 3

đŸ–„ïž Eigenen Rechner kennen

Welche Hardware steckt in Ihrem Laptop?

⚙ Compiler & Terminal

Was passiert eigentlich beim Kompilieren?

â„č Wichtige Hinweise

1 Hello World — wiederholen ⏱ 15 Min

Ziel: Den Compiler wieder zum Laufen bringen — und das Programm leicht erweitern.

📝 Aufgabenstellung:

  1. Erstellen Sie eine neue Datei hello2.c
  2. Schreiben Sie ein Hello-World-Programm — diesmal soll es drei verschiedene BegrĂŒĂŸungen ausgeben (z.B. „Hello!", „Hallo!", „Bonjour!")
  3. Kompilieren und ausfĂŒhren
💡 Erinnerung: Jedes printf("text\n"); gibt eine Zeile aus. Vergessen Sie nicht das \n fĂŒr den Zeilenumbruch.

🎯 Erwartetes Ergebnis:

Hello!
Hallo!
Bonjour!
🔒 Musterlösung
Falsches Passwort!
#include <stdio.h>

int main() {
    printf("Hello!\n");
    printf("Hallo!\n");
    printf("Bonjour!\n");
    return 0;
}

2 Visitenkarte ausgeben ⏱ 20 Min

Ziel: Eine schön formatierte Visitenkarte als Konsolen-Ausgabe.

📝 Aufgabenstellung:

Erstellen Sie visitenkarte.c und geben Sie mindestens diese Zeilen aus:

  • Eine Trennlinie (z.B. ====================)
  • Ihren Namen
  • Ihre Matrikelnummer
  • Ihren Studiengang
  • Eine Lieblings-Software / ein Lieblings-Spiel
  • Eine Trennlinie
Beispiel-Ausgabe:
========================================
   Anna Beispiel
   Matrikelnr.: 587412
   Studiengang: Angewandte Informatik
   Lieblings-Software: VS Code
========================================
💡 Tipp: Die Trennlinie ist auch nur Text. Schreiben Sie einfach printf("========================================\n");
🔒 Musterlösung
Falsches Passwort!
#include <stdio.h>

int main() {
    printf("========================================\n");
    printf("   Anna Beispiel\n");
    printf("   Matrikelnr.: 587412\n");
    printf("   Studiengang: Angewandte Informatik\n");
    printf("   Lieblings-Software: VS Code\n");
    printf("========================================\n");
    return 0;
}

3 ASCII-Kunst ⏱ 25 Min

Ziel: Mit printf ein kleines Bild auf den Bildschirm „malen".

📝 Aufgabenstellung:

Erstellen Sie kunst.c und zeichnen Sie eines dieser Motive (oder Ihres):

Smiley:
  *****
 *     *
 *  o o*
 *  -  *
 *  ___*
  *****
Herz:
  ** **
 *******
  *****
   ***
    *
Treppe:
#
##
###
####
#####
💡 Achtung: Backslash \ hat in C eine Sonderbedeutung. Wenn Sie z.B. \ ausgeben wollen, mĂŒssen Sie \\ schreiben.

🎯 Erwartetes Ergebnis:

Ihre eigene ASCII-Zeichnung erscheint auf dem Bildschirm. Werden Sie kreativ!

🔒 Musterlösung
Falsches Passwort!
#include <stdio.h>

int main() {
    printf("  ** **\n");
    printf(" *******\n");
    printf("  *****\n");
    printf("   ***\n");
    printf("    *\n");
    return 0;
}

ErklĂ€rung: Jede Zeile ist nur eine printf-Ausgabe. Die Leerzeichen am Anfang sind wichtig fĂŒr die Form!

4 Rechnen direkt in printf ⏱ 20 Min

Ziel: Den Computer rechnen lassen — ohne Variablen, einfach direkt im printf.

📝 Aufgabenstellung:

Erstellen Sie rechnen.c und lassen Sie folgende Berechnungen ausgeben:

  1. Wie viele Stunden sind 3 Tage? (3 × 24)
  2. Wie viele Sekunden hat eine Stunde? (60 × 60)
  3. Wie viele Minuten haben 7 Tage? (7 × 24 × 60)
  4. 100 geteilt durch 7 (mit ganzen Zahlen — was kommt raus?)
Beispiel-Code:
#include <stdio.h>

int main() {
    printf("3 Tage = %d Stunden\n", 3 * 24);
    return 0;
}
💡 Wichtig:
  • %d wird durch eine ganze Zahl ersetzt
  • + Plus, - Minus, * Mal, / Geteilt
  • Bei 100/7 schneidet C den Rest ab — das Ergebnis ist eine ganze Zahl!

🎯 Erwartetes Ergebnis:

3 Tage = 72 Stunden
1 Stunde = 3600 Sekunden
7 Tage = 10080 Minuten
100 / 7 = 14
🔒 Musterlösung
Falsches Passwort!
#include <stdio.h>

int main() {
    printf("3 Tage = %d Stunden\n", 3 * 24);
    printf("1 Stunde = %d Sekunden\n", 60 * 60);
    printf("7 Tage = %d Minuten\n", 7 * 24 * 60);
    printf("100 / 7 = %d\n", 100 / 7);
    return 0;
}

Bonus: 100 / 7 = 14 (nicht 14,28
) weil C bei zwei ganzen Zahlen den Rest abschneidet. Wir lernen nÀchste Woche, wie man das Àndert (mit %f und Kommazahlen).

5 Computer-Architektur Quiz ⏱ 40 Min

Ziel: Wiederholen, was Sie in Vorlesung 3 ĂŒber die Bauteile eines Computers gelernt haben.

Beantworten Sie die folgenden Fragen — ganz ohne Spickzettel zuerst, dann gerne in der Vorlesung nachschauen.

Frage 1
Was ist die CPU und was tut sie?
→ kurze Antwort in eigenen Worten
Frage 2
Was ist der Unterschied zwischen RAM und SSD?
  • A) RAM ist schneller, behĂ€lt aber nichts wenn der Strom weg ist
  • B) SSD ist schneller, aber kleiner
  • C) RAM ist langfristig, SSD nur wĂ€hrend das Programm lĂ€uft
  • D) Es gibt keinen Unterschied
Frage 3
WofĂŒr ist die GPU besonders gut geeignet?
  • A) Komplizierte Entscheidungen mit vielen Wenn-Dann-Verzweigungen
  • B) Sehr viele einfache Rechnungen gleichzeitig (parallel)
  • C) Daten dauerhaft speichern
  • D) Mit dem Internet kommunizieren
Frage 4
Wie viele Bits sind in einem Byte?
  • A) 4
  • B) 8
  • C) 16
  • D) 1024
Frage 5
Welche Reihenfolge stimmt — von klein zu groß?
  • A) Bit → Byte → Megabyte → Kilobyte → Gigabyte
  • B) Bit → Byte → Kilobyte → Megabyte → Gigabyte
  • C) Byte → Bit → Megabyte → Gigabyte → Terabyte
  • D) Kilobyte → Byte → Bit → Gigabyte → Megabyte
Frage 6
Was passiert beim Kompilieren eines C-Programms?
  • A) Der Code wird ins Internet hochgeladen
  • B) Der Code wird in Maschinensprache (0en und 1en) ĂŒbersetzt, die der Prozessor versteht
  • C) Der Code wird in Python umgewandelt
  • D) Der Code wird gespeichert
Frage 7
Was ist ein Betriebssystem? Nennen Sie zwei Beispiele.
→ kurze Antwort + Beispiele
Frage 8
Warum lernen wir gerade C und nicht zum Beispiel Python?
→ ein bis zwei SĂ€tze reichen
Frage 9
Wo wird ein laufendes Programm gespeichert — in der CPU, im RAM oder auf der SSD?
  • A) In der CPU
  • B) Im RAM
  • C) Auf der SSD
  • D) In der GPU
Frage 10
Wandeln Sie die BinÀrzahl 1011 in eine Dezimalzahl um.
  • A) 9
  • B) 11
  • C) 13
  • D) 1011 (bleibt gleich)
🔒 Musterlösung — alle Antworten
Falsches Passwort!
  1. CPU: Central Processing Unit — das „Gehirn" des Computers. FĂŒhrt Rechenoperationen aus, holt Daten aus dem RAM, schreibt Ergebnisse zurĂŒck. Macht die Entscheidungen (if/else) und fĂŒhrt die Programm-Befehle Schritt fĂŒr Schritt aus.
  2. A — RAM ist schnell, aber flĂŒchtig (Stromabschaltung = Daten weg). SSD/Festplatte ist langsamer, aber dauerhaft.
  3. B — GPU = sehr viele einfache Berechnungen parallel (Bilder, KI-Training). CPU = wenige, aber komplexe Aufgaben mit Verzweigungen.
  4. B — 1 Byte = 8 Bit.
  5. B — Bit (1 oder 0) → Byte (8 Bit) → Kilobyte (1024 B) → Megabyte (1024 KB) → Gigabyte (1024 MB).
  6. B — Compiler ĂŒbersetzt C-Code in Maschinencode (BinĂ€r), den der Prozessor direkt ausfĂŒhren kann.
  7. Betriebssystem (OS): Software, die Hardware verwaltet und Programmen erlaubt darauf zuzugreifen. Beispiele: Windows, macOS, Linux, Android, iOS.
  8. C ist hardwarenah: man lernt, wie der Computer wirklich tickt (Speicher, Pointer, Bits). Python versteckt das alles. Mit C versteht man spÀter jede andere Sprache leichter.
  9. B — Im RAM. Beim Programmstart wird der Code von der SSD ins RAM geladen, von dort holt die CPU ihn.
  10. B — 1011₂ = 1·8 + 0·4 + 1·2 + 1·1 = 11.

6 Mein eigener Rechner ⏱ 25 Min

Ziel: Herausfinden, welche Hardware in Ihrem Laptop steckt.

📝 Aufgabenstellung:

Finden Sie die folgenden Werte fĂŒr Ihren Rechner heraus und notieren Sie sie auf einem Zettel oder in einer Textdatei:

  1. Welcher CPU-Typ (z.B. Intel i7, Apple M2, AMD Ryzen 5)?
  2. Wie viele CPU-Kerne?
  3. Wie viel RAM (in GB)?
  4. Wie groß ist Ihre SSD/Festplatte (in GB oder TB)?
  5. Welches Betriebssystem + Version?
  6. Haben Sie eine dedizierte GPU (eigene Grafikkarte) oder integrierte?
💡 Wo finden Sie das?
  • Mac: Apfel-Logo oben links → „Über diesen Mac"
  • Windows: Windows-Taste + R → msinfo32 Enter — oder Einstellungen → System → Info
  • Linux: Terminal: lscpu, free -h, df -h, uname -a
Beispiel-Notiz:
Mein Rechner:
- CPU: Apple M2, 8 Kerne
- RAM: 16 GB
- SSD: 512 GB
- OS: macOS 14.5 Sonoma
- GPU: integriert (Apple M2 GPU, 10 Kerne)

đŸ€” Diskussionsfrage:

Schauen Sie sich die Werte an. Wie viele Bytes RAM haben Sie ungefĂ€hr? (1 GB ≈ 1 Milliarde Bytes)
Und wie groß ist Ihr Hello-World-Programm in Bytes (Datei hello nach Kompilieren)?

🔒 Auflösung der Diskussion
Falsches Passwort!

Beispielrechnung fĂŒr 16 GB RAM:

16 GB = 16 × 1.024 MB
      = 16.384 MB
      = 16.384 × 1.024 KB
      = 16.777.216 KB
      = 16.777.216 × 1.024 Bytes
      ≈ 17 Milliarden Bytes (17.179.869.184)

Ein Hello-World-Programm (kompiliert) ist meistens nur ~ 16 KB groß.
→ Sie könnten ~ 1 Million Hello-World-Programme gleichzeitig in Ihren Arbeitsspeicher laden!

7 Vom Code zum Programm — der Compiler-Weg ⏱ 35 Min

Ziel: Verstehen, was beim Kompilieren wirklich passiert — und das Terminal benutzen.

📝 Aufgabenstellung:

Diesmal kompilieren Sie Ihr Hello-World nicht ĂŒber den Editor-Knopf, sondern selbst im Terminal.

Schritt 1: Terminal öffnen

  • Mac: Cmd+Leertaste → „Terminal" eintippen
  • Windows: Windows-Taste → „cmd" oder „PowerShell"
  • Linux: Ctrl+Alt+T

Schritt 2: Im Terminal navigieren

Mit diesen drei Befehlen bewegen Sie sich durch das Dateisystem:

  • pwd — zeigt, wo Sie gerade sind („print working directory")
  • ls (Mac/Linux) oder dir (Windows) — listet Dateien im aktuellen Ordner
  • cd ordnername — wechselt in einen Ordner
  • cd .. — geht einen Ordner zurĂŒck

Navigieren Sie zu dem Ordner, in dem Ihre hello.c aus Aufgabe 1 liegt.

Schritt 3: Manuell kompilieren mit gcc

gcc hello.c -o hello

Das bedeutet:

  • gcc = der Compiler
  • hello.c = die Eingabedatei (Ihr Quellcode)
  • -o hello = der Name der Ausgabedatei (das fertige Programm)

Schritt 4: Programm ausfĂŒhren

./hello       (Mac/Linux)
hello.exe     (Windows)

🎯 Erwartetes Ergebnis:

Ihr Programm gibt „Hello World" aus — ohne IDE, nur ĂŒber die Kommandozeile.

💡 Was ist gerade passiert?
  1. Sie haben Ihren Quellcode (hello.c) als Eingabe gegeben
  2. Der Compiler gcc hat ihn in Maschinensprache (BinĂ€rcode) ĂŒbersetzt
  3. Das Ergebnis ist die ausfĂŒhrbare Datei (hello oder hello.exe)
  4. Beim Aufruf wird sie von der SSD ins RAM geladen → CPU fĂŒhrt sie Schritt fĂŒr Schritt aus
  5. Genau das, was wir in Vorlesung 3 besprochen haben!

đŸ€” Bonus-Aufgabe:

Vergleichen Sie die GrĂ¶ĂŸe von hello.c (Quelltext) mit hello (kompiliert):

ls -la hello.c hello       (Mac/Linux)
dir hello.c hello.exe      (Windows)

Welche Datei ist grĂ¶ĂŸer? Warum?

🔒 ErklĂ€rung Bonus
Falsches Passwort!

Die kompilierte Datei (hello) ist grĂ¶ĂŸer als der Quelltext, obwohl der Quelltext „mehr Zeichen" zu haben scheint.

Warum? Der Compiler bindet Code aus der C-Bibliothek mit ein (z.B. die echte Implementierung von printf). Diese Bibliothekcode landet ebenfalls in Ihrer ausfĂŒhrbaren Datei. Außerdem enthĂ€lt die Datei Header-Informationen, die das Betriebssystem braucht, um sie zu starten.

Typisch: hello.c ≈ 100 Bytes · hello ≈ 16.000 Bytes (auf macOS sogar mehr).

🎯 Ziel des Labors

✅ Was Sie nach diesem Labor können sollten

🚀 Gut gemacht!

Sie wissen jetzt, was in Ihrem Rechner steckt — und können ihm einfache Aufgaben geben.

NĂ€chste Woche: Variablen — wir lernen, dem Computer Werte zu merken zu geben.

🏠 ZurĂŒck zur Startseite

🔑 Passwort-Übersicht — Musterlösungen

Probiert die Aufgaben zuerst selbst — die Lösungen sind zum Vergleichen, nicht zum Abschreiben.

AufgabePasswort
Aufgabe 1hallo
Aufgabe 2visit
Aufgabe 3kunst
Aufgabe 4rechnen
Aufgabe 5cpu
Aufgabe 6hardware
Aufgabe 7compiler