Aufgabe 1 – Einfaches enum verwenden
Definiere ein enum für die Wochentage (MONDAY bis FRIDAY).
Schreibe ein Programm, das:
- eine Variable dieses Typs anlegt,
- einen Wochentag zuweist,
- den numerischen Wert des Enums ausgibt.
Musterlösung: Einfaches enum verwenden
#include <stdio.h>
enum Day {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY
};
int main() {
enum Day today = WEDNESDAY;
printf("Numerischer Wert: %d\n", today);
return 0;
}
Aufgabe 2 – enum und switch
Erstelle ein enum für den Status eines Programms (START, RUNNING, STOPPED).
Gib mithilfe einer switch-Anweisung eine passende Textausgabe aus.
Musterlösung: enum und switch
#include <stdio.h>
enum Status {
START,
RUNNING,
STOPPED
};
int main() {
enum Status s = RUNNING;
switch (s) {
case START:
printf("Programm startet\n");
break;
case RUNNING:
printf("Programm läuft\n");
break;
case STOPPED:
printf("Programm ist gestoppt\n");
break;
}
return 0;
}
Aufgabe 3 – enum als Funktionsparameter
Definiere ein enum für Richtungen (LEFT, RIGHT, UP, DOWN).
Schreibe eine Funktion, die abhängig von der Richtung eine Textausgabe erzeugt.
Musterlösung: enum als Funktionsparameter
#include <stdio.h>
enum Direction {
LEFT,
RIGHT,
UP,
DOWN
};
void move(enum Direction d) {
if (d == LEFT)
printf("Bewege nach links\n");
else if (d == RIGHT)
printf("Bewege nach rechts\n");
else if (d == UP)
printf("Bewege nach oben\n");
else if (d == DOWN)
printf("Bewege nach unten\n");
}
int main() {
move(UP);
move(LEFT);
return 0;
}
Aufgabe 4 – enum in struct
Erstelle ein struct Person, das:
- einen Namen speichert,
- ein
enumfür den Beziehungsstatus enthält (SINGLE,MARRIED,DIVORCED).
Schreibe eine Funktion, die den Status menschenlesbar ausgibt.
Musterlösung: enum in struct
#include <stdio.h>
enum Status {
SINGLE,
MARRIED,
DIVORCED
};
struct Person {
char name[20];
enum Status status;
};
void printPerson(struct Person p) {
printf("%s ist ", p.name);
switch (p.status) {
case SINGLE: printf("ledig\n"); break;
case MARRIED: printf("verheiratet\n"); break;
case DIVORCED: printf("geschieden\n"); break;
}
}
int main() {
struct Person p = { "Alex", MARRIED };
printPerson(p);
return 0;
}
Aufgabe 5 – typedef enum + Validierung
Definiere mit typedef enum einen Typ Priority (LOW, MEDIUM, HIGH).
Schreibe ein Programm, das:
- eine Variable dieses Typs verwendet,
- prüft, ob der Wert gültig ist,
- abhängig von der Priorität unterschiedlich reagiert.
Musterlösung: typedef enum + Validierung
#include <stdio.h>
typedef enum {
LOW,
MEDIUM,
HIGH
} Priority;
int main() {
Priority p = HIGH;
if (p < LOW || p > HIGH) {
printf("Ungültige Priorität\n");
return 1;
}
if (p == LOW)
printf("Niedrige Priorität\n");
else if (p == MEDIUM)
printf("Mittlere Priorität\n");
else
printf("Hohe Priorität\n");
return 0;
}