← Zurück zur Übersicht

Zusammenfassung & Klausurvorbereitung

Alles Wichtige auf einen Blick

Grundlagen der Programmierung in C

Vorlesung 13 | HTW Berlin | WiSe 2025/26

Semesterübersicht: Was haben wir gelernt?

VL 1-3

  • Einführung & Setup
  • Erstes C-Programm
  • Datentypen
  • Variablen

VL 4-6

  • Git Versionskontrolle
  • Verzweigungen (if/else)
  • Schleifen (for/while)

VL 7-8

  • Arrays & Strings
  • Funktionen
  • Parameter & Return

VL 9-12

  • Algorithmen
  • Suchen & Sortieren
  • Array-Manipulation

1. Datentypen in C

Datentyp Beschreibung Beispiel printf
int Ganzzahlen int alter = 25; %d
float Dezimalzahlen (einfach) float pi = 3.14f; %f
double Dezimalzahlen (genau) double e = 2.718; %lf
char Einzelnes Zeichen char c = 'A'; %c
char[] String (Zeichenkette) char name[20] = "Anna"; %s

Klausurtipp: scanf braucht & bei int/float/double, aber NICHT bei Strings!

2. Operatoren

Arithmetisch

+ // Addition - // Subtraktion * // Multiplikation / // Division % // Modulo (Rest)

Vergleich

== // gleich != // ungleich < // kleiner > // größer <= // kleiner/gleich >= // größer/gleich

Logisch

&& // UND || // ODER ! // NICHT

Inkrement/Dekrement:

i++ // i = i + 1 i-- // i = i - 1

Häufiger Fehler: = ist Zuweisung, == ist Vergleich!

3. Kontrollstrukturen

if / else / else if

if (note < 1.5) { printf("Sehr gut!"); } else if (note < 2.5) { printf("Gut!"); } else { printf("Bestanden"); }

Verschachtelte if-Anweisungen

if (x > 0) { if (x < 10) { printf("Einstellig"); } else { printf("Mehrstellig"); } } else { printf("Nicht positiv"); }

Klausurtipp: Geschweifte Klammern auch bei einzelnen Anweisungen verwenden - vermeidet Fehler!

4. Schleifen

for-Schleife

Wenn Anzahl bekannt

for (int i = 0; i < 5; i++) { printf("%d ", i); } // Ausgabe: 0 1 2 3 4

while-Schleife

Bedingung am Anfang

int i = 0; while (i < 5) { printf("%d ", i); i++; }

do-while-Schleife

Mind. 1x ausgeführt

int i = 0; do { printf("%d ", i); i++; } while (i < 5);

break; - Schleife sofort beenden

continue; - Zum nächsten Durchlauf springen

5. Arrays

Deklaration & Initialisierung

// Deklaration int zahlen[5]; // Mit Initialisierung int zahlen[5] = {1, 2, 3, 4, 5}; // Automatische Größe int zahlen[] = {1, 2, 3};

Index beginnt bei 0!

zahlen[0] = erstes Element

Array durchlaufen

int arr[5] = {10, 20, 30, 40, 50}; for (int i = 0; i < 5; i++) { printf("%d ", arr[i]); } // Ausgabe: 10 20 30 40 50

Strings sind char-Arrays mit \0 am Ende!

6. Funktionen

// Funktionsdefinition int addiere(int a, int b) { return a + b; } // void = keine Rückgabe void gruessen(char name[]) { printf("Hallo, %s!\n", name); } int main() { int summe = addiere(3, 4); // summe = 7 gruessen("Anna"); // "Hallo, Anna!" return 0; }

Prototypen

Funktionsdeklaration vor main() oder in Header-Datei

int addiere(int a, int b); // Prototyp

Wichtig!

Bei Arrays in Funktionen: Änderungen wirken auf das Original-Array!

7. Wichtige Algorithmen

Tauschen (Swap)

int temp = a; a = b; b = temp;

Maximum finden

int max = arr[0]; for (int i = 1; i < n; i++) { if (arr[i] > max) { max = arr[i]; } }

Summe berechnen

int summe = 0; for (int i = 0; i < n; i++) { summe += arr[i]; }

Zählen

int count = 0; for (int i = 0; i < n; i++) { if (arr[i] > 0) { count++; } }

Lineare Suche

int pos = -1; for (int i = 0; i < n; i++) { if (arr[i] == gesucht) { pos = i; break; } }

Durchschnitt

double summe = 0; for (int i = 0; i < n; i++) { summe += arr[i]; } double avg = summe / n;

8. Sortieren: Bubble Sort

void bubbleSort(int arr[], int n) { for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j + 1]) { // Tauschen int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } }

Funktionsweise

  1. Vergleiche benachbarte Elemente
  2. Wenn falsche Reihenfolge: tauschen
  3. Wiederhole bis sortiert

Beispiel: [5, 3, 1, 4, 2]

Nach Pass 1: [3, 1, 4, 2, 5]

Nach Pass 2: [1, 3, 2, 4, 5]

...

Fertig: [1, 2, 3, 4, 5]

9. Ein- und Ausgabe

printf() - Ausgabe

int x = 42; double d = 3.14159; char c = 'A'; char s[] = "Hallo"; printf("Int: %d\n", x); printf("Double: %.2f\n", d); printf("Char: %c\n", c); printf("String: %s\n", s);

scanf() - Eingabe

int x; double d; char c; char s[50]; scanf("%d", &x); // MIT & scanf("%lf", &d); // MIT & scanf(" %c", &c); // MIT & scanf("%s", s); // OHNE &!

Bei Strings kein &!

10. Häufige Fehler vermeiden

Häufige Fehler

  • = statt == im Vergleich
  • Semikolon nach if oder for
  • Array-Index außerhalb der Grenzen
  • & bei scanf vergessen
  • & bei String-scanf verwendet
  • Schleifenvariable nicht erhöht (Endlosschleife)
  • Uninitialisierte Variablen

Richtig machen

  • if (x == 5) nicht if (x = 5)
  • if (x > 0) { ... }
  • Index: 0 bis n-1
  • scanf("%d", &x);
  • scanf("%s", str);
  • i++ in while nicht vergessen
  • int x = 0; initialisieren

Klausur-Checkliste

Das sollten Sie können:

  • Variablen deklarieren und initialisieren
  • printf und scanf korrekt verwenden
  • if/else/else if schreiben
  • for, while, do-while Schleifen
  • Arrays erstellen und durchlaufen
  • Funktionen mit Parametern schreiben
  • Maximum/Minimum in Array finden
  • Summe/Durchschnitt berechnen
  • Elemente zählen
  • Lineare Suche implementieren
  • Bubble Sort verstehen

Klausurtipps

  • Lesen Sie die Aufgabe genau
  • Beginnen Sie mit einfachen Aufgaben
  • Schreiben Sie leserlichen Code
  • Kommentieren Sie bei Bedarf
  • Prüfen Sie Semikolons und Klammern

Am Klausurtag

  • Ausreichend Schlaf vorher
  • Stift, Studierendenausweis
  • Ruhe bewahren!

Schnellreferenz

// Grundstruktur #include <stdio.h> int main() { // Code hier return 0; }
// Array-Schleife int arr[5] = {1,2,3,4,5}; for (int i=0; i<5; i++) { printf("%d", arr[i]); }
// Funktion int max(int a, int b) { if (a > b) { return a; } return b; }

Viel Erfolg bei der Klausur!

Sie haben das ganze Semester fleißig gearbeitet!

Klausurtermin: 4. Februar 2026
Bei Fragen: Moodle oder Sprechstunde

Grundlagen der Programmierung
HTW Berlin | WiSe 2025/26

1 / 15