Update of exercises
parent
590c0e9d23
commit
725365e1d0
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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: ");
|
||||
|
|
|
@ -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]);
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Assignment: Vektor (heap-basiert)
|
||||
# Vektor (heap-basiert)
|
||||
|
||||
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Assignment: Vektor (stack-basiert)
|
||||
# Vektor (stack-basiert)
|
||||
|
||||
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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++) {
|
||||
|
|
62
readme.md
62
readme.md
|
@ -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/) |
|
||||
|
|
Loading…
Reference in New Issue