Update of exercises

main
Thomas Smits 2025-04-25 14:05:56 +02:00
parent 590c0e9d23
commit 725365e1d0
17 changed files with 60 additions and 60 deletions

View File

@ -79,7 +79,7 @@ static char* allTests() {
return 0;
}
int main() {
int main(int argc, char** argv) {
char *result = allTests();
if (result != 0) printf("%s\n", result);

View File

@ -7,4 +7,4 @@ Lösung:
* [main.c](crypto/main.c)
* [test.c](crypto/test.c)
* [test-text.txt](crypto/test-text.txt)
* [Makefile](crypto/Makefile)
* [Makefile](crypto/Makefile)

View File

@ -8,7 +8,7 @@
if (message) return message; } while (0)
int tests_run;
static char* testRoundtrip() {
static char* testRoundtrip(void) {
char* text = strdup("DIESXISTXEINXTEST");
char* result = (char*) malloc(strlen(text) + 1);
char* result2 = (char*) malloc(strlen(text) + 1);
@ -21,7 +21,7 @@ static char* testRoundtrip() {
return 0;
}
static char* testIllegalKey() {
static char* testIllegalKey(void) {
char* text = strdup("DIESXISTXEINXTEST");
char* result = (char*) malloc(strlen(text) + 1);
int error;
@ -40,21 +40,21 @@ static char* testIllegalKey() {
return 0;
}
static char* textIllegalMessage() {
static char* textIllegalMessage(void) {
KEY key1 = { 1, "KEY" };
int error = encrypt(key1, "ABCD AB", NULL);
mu_assert("Illegal char in message not detected: ABCD AB", error == E_MESSAGE_ILLEGAL_CHAR);
return 0;
}
static char* textIllegalCypher() {
static char* textIllegalCypher(void) {
KEY key1 = { 1, "KEY" };
int error = decrypt(key1, "ABCD AB", NULL);
mu_assert("Illegal char in cypher not detected: ABCD AB", error == E_CYPHER_ILLEGAL_CHAR);
return 0;
}
static char* allTests() {
static char* allTests(void) {
mu_run_test(testRoundtrip);
mu_run_test(testIllegalKey);
mu_run_test(textIllegalMessage);
@ -62,7 +62,7 @@ static char* allTests() {
return 0;
}
int main() {
int main(int argc, char** argv) {
char *result = allTests();
if (result != 0) printf("%s\n", result);

View File

@ -17,7 +17,7 @@ void manipulate_text(char* text) {
printf("Manipulierter Text: %s\n", copiedText);
}
int main() {
int main(int argc, char** argv) {
char text[100];
printf("Geben Sie einen Text ein: ");

View File

@ -59,7 +59,7 @@ void to_console_ucase(const char* data) {
free(ucase);
}
int main() {
int main(int argc, char** argv) {
const char* data[] = { "Daten 1", "Daten 2", "Daten 3" };
int count = sizeof(data) / sizeof(data[0]);

View File

@ -24,7 +24,7 @@ void print_number(number_t zahl, number_type typ) {
}
}
int main() {
int main(int argc, char** argv) {
number_t zahl;
number_type typ;

View File

@ -1,4 +1,4 @@
# Assignment: Vektor (heap-basiert)
# Vektor (heap-basiert)
📆 **Fällig: ----** 📆 [Musterlösung](solution/)

View File

@ -17,7 +17,7 @@ Vector* vec_new(double x, double y, double z) {
return result;
}
Vector* vec_new_null() {
Vector* vec_new_null(void) {
return vec_new(0.0,
0.0,
0.0);

View File

@ -4,7 +4,7 @@
#include "minitest.h"
#include "vector_heap.h"
static char* test_creation() {
static char* test_creation(void) {
Vector* vec = vec_new(3.0, 1.0, -5.0);
mu_assert("Equal x", vec->x == 3.0);
mu_assert("Equal y", vec->y == 1.0);
@ -16,14 +16,14 @@ static char* test_creation() {
static int tests_run;
static char* allTests() {
static char* allTests(void) {
mu_run_test(test_creation);
/* Weitere Tests hier einfügen */
return 0;
}
int main() {
int main(int argc, char** argv) {
char *result = allTests();
if (result != 0) printf("%s\n", result);

View File

@ -4,7 +4,7 @@
#include "minitest.h"
#include "vector_heap.h"
static char* test_creation() {
static char* test_creation(void) {
Vector* vec = vec_new(3.0, 1.0, -5.0);
mu_assert("Equal x", vec->x == 3.0);
mu_assert("Equal y", vec->y == 1.0);
@ -16,14 +16,14 @@ static char* test_creation() {
static int tests_run;
static char* allTests() {
static char* allTests(void) {
mu_run_test(test_creation);
/* Weitere Tests hier einfügen */
return 0;
}
int main() {
int main(int argc, char** argv) {
char *result = allTests();
if (result != 0) printf("%s\n", result);

View File

@ -1,4 +1,4 @@
# Assignment: Vektor (stack-basiert)
# Vektor (stack-basiert)
📆 **Fällig: ----** 📆 [Musterlösung](solution/)

View File

@ -8,4 +8,4 @@ Lösung:
* [vector_stack_benchmark.c](vector_stack_benchmark.c)
* [vector_stack.c](vector_stack.c)
* [vector_stack.h](vector_stack.h)
* [vector_stack_test.c](vector_stack_test.c)
* [vector_stack_test.c](vector_stack_test.c)

View File

@ -4,7 +4,7 @@
#include "minitest.h"
#include "vector_stack.h"
static char* test_creation() {
static char* test_creationvoid {
Vector vec;
vec_init(&vec, 3.0, 1.0, -5.0);
@ -19,14 +19,14 @@ static char* test_creation() {
static int tests_run;
static char* allTests() {
static char* allTests(void) {
mu_run_test(test_creation);
/* Alle Testmethoden hier rufen */
return 0;
}
int main() {
int main(int argc, char** argv) {
char *result = allTests();
if (result != 0) printf("%s\n", result);

View File

@ -4,7 +4,7 @@
#include "minitest.h"
#include "vector_stack.h"
static char* test_creation() {
static char* test_creationvoid {
Vector vec;
vec_init(&vec, 3.0, 1.0, -5.0);
@ -19,14 +19,14 @@ static char* test_creation() {
static int tests_run;
static char* allTests() {
static char* allTests(void) {
mu_run_test(test_creation);
/* Alle Testmethoden hier rufen */
return 0;
}
int main() {
int main(int argc, char** argv) {
char *result = allTests();
if (result != 0) printf("%s\n", result);

View File

@ -18,7 +18,7 @@
#define PORT 8080
#define BUFFER_SIZE 1024
int main() {
int main(int argc, char** argv) {
int server_fd, new_socket;
struct sockaddr_in address;
int addrlen = sizeof(address);

View File

@ -14,7 +14,7 @@ void* task(void* arg) {
pthread_exit(NULL);
}
int main() {
int main(int argc, char** argv) {
pthread_t threads[NUM_THREADS];
for (int i = 0; i < NUM_THREADS; i++) {

View File

@ -6,34 +6,34 @@ Die **Abgabedaten** haben keine Bedeutung, da der Kurs keine Prüfung beinhaltet
## Themenüberblick
| # | Thema | Fällig am 📆 |
|----|----------------------------------------------------------------------------------------------|----------------|
| 1. | [Simples Hello-World-Programm](Assignment_001/readme.md) | **----** |
| 2. | [Simples Hello-World-Programm mit #define](Assignment_002/readme.md) | **----** |
| 3. | [Kommandozeilenargumente ausgeben](Assignment_003/readme.md) | **----** |
| 4. | [Hello-World-Programm, das den Namen von der Kommandozeile nimmt](Assignment_004/readme.md) | **----** |
| 5. | [Simples Hello-World-Programm mit externer Funktion](Assignment_005/readme.md) | **----** |
| 6. | [Zahlenraten](Assignment_006/readme.md) | **----** |
| 7. | [Verschlüsselung in C](Assignment_007/readme.md) | **----** |
| 8. | [Countdown](Assignment_008/readme.md) | **----** |
| 9. | [Größe von Datentypen](Assignment_009/readme.md) | **----** |
| 10. | [Vertauschen von zwei Integer-Werte](Assignment_010/readme.md) | **----** |
| 11. | [Leet Speak](Assignment_011/readme.md) | **----** |
| 12. | [Array ausgeben](Assignment_012/readme.md) | **----** |
| 13. | [Array mit Pointer-Arithmetik ausgeben](Assignment_013/readme.md) | **----** |
| 14. | [String-Verarbeitung](Assignment_014/readme.md) | **----** |
| 15. | [String umdrehen](Assignment_015/readme.md) | **----** |
| 16. | [Vararg Funktion schreiben](Assignment_016/readme.md) | **----** |
| 17. | [typedef verwenden](Assignment_017/readme.md) | **----** |
| 18. | [Dynamische Speicherverwaltung mit malloc und free](Assignment_018/readme.md) | **----** |
| 19. | [Funktionspointer benutzen](Assignment_019/readme.md) | **----** |
| 20. | [Struct verwenden](Assignment_020/readme.md) | **----** |
| 21. | [Union verwenden](Assignment_021/readme.md) | **----** |
| 22. | [Vektor (heap-basiert)](Assignment_022/readme.md) | **----** |
| 23. | [Vektor (stack-basiert)](Assignment_023/readme.md) | **----** |
| 24. | [Datei auf der Konsole aufgeben](Assignment_024/readme.md) | **----** |
| 25. | [Datei auf der Konsole mit Zeilennummern aufgeben](Assignment_025/readme.md) | **----** |
| 26. | [Datei lesen und schreiben](Assignment_026/readme.md) | **----** |
| 27. | [Rechner mit Pipes](Assignment_027/readme.md) | **----** |
| 28. | [Socket-Client und -Server programmieren](Assignment_028/readme.md) | **----** |
| 29. | [POSIX-Threads](Assignment_029/readme.md) | **----** |
| # | Thema | Fällig am 📆 | Musterlösung |
|-----|----------------------------------------------------------------------------------------------|----------------|----------------|
| 1. | [Simples Hello-World-Programm](Assignment_001/readme.md) | **----** | [](Assignment_001/solution/) |
| 2. | [Simples Hello-World-Programm mit #define](Assignment_002/readme.md) | **----** | [](Assignment_002/solution/) |
| 3. | [Kommandozeilenargumente ausgeben](Assignment_003/readme.md) | **----** | [](Assignment_003/solution/) |
| 4. | [Hello-World-Programm, das den Namen von der Kommandozeile nimmt](Assignment_004/readme.md) | **----** | [](Assignment_004/solution/) |
| 5. | [Simples Hello-World-Programm mit externer Funktion](Assignment_005/readme.md) | **----** | [](Assignment_005/solution/) |
| 6. | [Zahlenraten](Assignment_006/readme.md) | **----** | [](Assignment_006/solution/) |
| 7. | [Verschlüsselung in C](Assignment_007/readme.md) | **----** | [](Assignment_007/solution/) |
| 8. | [Countdown](Assignment_008/readme.md) | **----** | [](Assignment_008/solution/) |
| 9. | [Größe von Datentypen](Assignment_009/readme.md) | **----** | [](Assignment_009/solution/) |
| 10. | [Vertauschen von zwei Integer-Werte](Assignment_010/readme.md) | **----** | [](Assignment_010/solution/) |
| 11. | [Leet Speak](Assignment_011/readme.md) | **----** | [](Assignment_011/solution/) |
| 12. | [Array ausgeben](Assignment_012/readme.md) | **----** | [](Assignment_012/solution/) |
| 13. | [Array mit Pointer-Arithmetik ausgeben](Assignment_013/readme.md) | **----** | [](Assignment_013/solution/) |
| 14. | [String-Verarbeitung](Assignment_014/readme.md) | **----** | [](Assignment_014/solution/) |
| 15. | [String umdrehen](Assignment_015/readme.md) | **----** | [](Assignment_015/solution/) |
| 16. | [Vararg Funktion schreiben](Assignment_016/readme.md) | **----** | [](Assignment_016/solution/) |
| 17. | [typedef verwenden](Assignment_017/readme.md) | **----** | [](Assignment_017/solution/) |
| 18. | [Dynamische Speicherverwaltung mit malloc und free](Assignment_018/readme.md) | **----** | [](Assignment_018/solution/) |
| 19. | [Funktionspointer benutzen](Assignment_019/readme.md) | **----** | [](Assignment_019/solution/) |
| 20. | [Struct verwenden](Assignment_020/readme.md) | **----** | [](Assignment_020/solution/) |
| 21. | [Union verwenden](Assignment_021/readme.md) | **----** | [](Assignment_021/solution/) |
| 22. | [Vektor (heap-basiert)](Assignment_022/readme.md) | **----** | [](Assignment_022/solution/) |
| 23. | [Vektor (stack-basiert)](Assignment_023/readme.md) | **----** | [](Assignment_023/solution/) |
| 24. | [Datei auf der Konsole aufgeben](Assignment_024/readme.md) | **----** | [](Assignment_024/solution/) |
| 25. | [Datei auf der Konsole mit Zeilennummern aufgeben](Assignment_025/readme.md) | **----** | [](Assignment_025/solution/) |
| 26. | [Datei lesen und schreiben](Assignment_026/readme.md) | **----** | [](Assignment_026/solution/) |
| 27. | [Rechner mit Pipes](Assignment_027/readme.md) | **----** | [](Assignment_027/solution/) |
| 28. | [Socket-Client und -Server programmieren](Assignment_028/readme.md) | **----** | [](Assignment_028/solution/) |
| 29. | [POSIX-Threads](Assignment_029/readme.md) | **----** | [](Assignment_029/solution/) |