diff --git a/20201210/structs.c b/20201210/structs.c new file mode 100644 index 0000000000000000000000000000000000000000..375be8691a3644b8a4da51be9390bdf28880912b --- /dev/null +++ b/20201210/structs.c @@ -0,0 +1,103 @@ +#include <stdio.h> + +typedef struct +{ + int day; + int month; + int year; +} +date; + +int isschaltjahr (int jahr) +{ + if (jahr % 4 == 0 && (jahr % 100 != 0 || jahr % 400 == 0)) + { + return 1; + } + return 0; +} + +void +set_date (date * d) +{ + int i=0; + while (i == 0) + { + int daysamonth; + (*d).day = 12; //Hier wird ein festes Datum verwendet. + (*d).month = 11; //Das Datum soll später abgefragt werden + (*d).year = 2020; //weshalb geprüft wird, ob das Datum gültig ist. + + switch ((*d).month) + { + case 1: + daysamonth = 31; + break; + case 2: + { + if (isschaltjahr ((*d).year)) + { + daysamonth = 29; + } + else + { + daysamonth = 28; + } + break; + } + case 3: + daysamonth = 31; + break; + case 4: + daysamonth = 30; + break; + case 5: + daysamonth = 31; + break; + case 6: + daysamonth = 30; + break; + case 7: + daysamonth = 31; + break; + case 8: + daysamonth = 31; + break; + case 9: + daysamonth = 30; + break; + case 10: + daysamonth = 31; + break; + case 11: + daysamonth = 30; + break; + case 12: + daysamonth = 31; + break; + } + if ((*d).day > daysamonth || (*d).month > 12) + { + printf ("Dies ist kein gültiges Datum: \n"); + } + else + { + i = 1; + } + + } +} + +void print_date (date (*d)) +{ + printf ("%d.%d.%d\n", (*d).day, (*d).month, (*d).year); +} + + +int main (void) +{ + date today; + set_date (&today); + print_date (&today); + return 0; +} diff --git a/README.md b/README.md index b462cbf47debe48121f74faa575ec8923ce397b4..4995d1b3a909958308a94e15e0db6156814a1330 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,8 @@ Vortragsfolien und Beispiele: * [12.11.2020: Einführung in C: Seiteneffekte, Funktionen](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20201112/hp-20201112.pdf) [**(Beispiele)**](https://gitlab.cvh-server.de/pgerwinski/hp/tree/master/20201112/) * [19.11.2020: Einführung in C: Zeiger, Arrays und Strings](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20201119/hp-20201119.pdf) [**(Beispiele)**](https://gitlab.cvh-server.de/pgerwinski/hp/tree/master/20201119/) * [26.11.2020: Einführung in C: Arrays und Strings und Zeichen, Strukturen, Dateien und Fehlerbehandlung](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20201126/hp-20201126.pdf) [**(Beispiele)**](https://gitlab.cvh-server.de/pgerwinski/hp/tree/master/20201126/) + * [03.12.2020: Parameter des Hauptprogramms, String-Operationen](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20201203/hp-20201203.pdf) [**(Beispiele)**](https://gitlab.cvh-server.de/pgerwinski/hp/tree/master/20201203/) + * [10.12.2020: Parameter des Hauptprogramms, String-Operationen](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20201210/hp-20201210.pdf) [**(Beispiele)**](https://gitlab.cvh-server.de/pgerwinski/hp/tree/master/20201210/) * [alle in 1 Datei](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/hp-slides-2020ws.pdf) Übungsaufgaben: @@ -29,12 +31,16 @@ Vortragsfolien und Beispiele: * [12.11.2020: Schaltjahr ermitteln, Multiplikationstabelle, Fibonacci-Zahlen, fehlerhaftes Programm](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20201112/hp-uebung-20201112.pdf) * [19.11.2020: Seltsame Programme, Kalender-Berechnung](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20201119/hp-uebung-20201119.pdf) * [26.11.2020: Strings, Programm analysieren, fehlerhaftes Primzahl-Programm](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20201126/hp-uebung-20201126.pdf) + * [03.12.2020: Arrays mit Zahlen, Datum-Bibliothek](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20201203/hp-uebung-20201203.pdf) + * [10.12.2020: Ausgabe von Hexadezimalzahlen, Einfügen in Strings, Länge von Strings](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20201210/hp-uebung-20201210.pdf) Musterlösungen: --------------- * [12.11.2020: Schaltjahr ermitteln, Multiplikationstabelle, Fibonacci-Zahlen, fehlerhaftes Programm](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20201112/hp-musterloesung-20201112.pdf) * [19.11.2020: Seltsame Programme, Kalender-Berechnung](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20201119/hp-musterloesung-20201119.pdf) * [26.11.2020: Strings, Programm analysieren, fehlerhaftes Primzahl-Programm](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20201126/hp-musterloesung-20201126.pdf) + * [03.12.2020: Arrays mit Zahlen, Datum-Bibliothek](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20201203/hp-musterloesung-20201203.pdf) + * [10.12.2020: Ausgabe von Hexadezimalzahlen, Einfügen in Strings, Länge von Strings](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20201210/hp-musterloesung-20201210.pdf) Tafelbilder: ------------ diff --git a/hp-slides-2020ws.pdf b/hp-slides-2020ws.pdf index 030fd5c4a26def2332ab5c2bf6d4500fd249d53e..8757f7216e88790e04879bbfb20d1a7cdf6880eb 100644 Binary files a/hp-slides-2020ws.pdf and b/hp-slides-2020ws.pdf differ diff --git a/hp-slides-2020ws.tex b/hp-slides-2020ws.tex index 16380804feb11085bd248c1b6fbe118803349a95..1e448e3efd28bdfa23684529041a4c892fcf74b3 100644 --- a/hp-slides-2020ws.tex +++ b/hp-slides-2020ws.tex @@ -18,4 +18,8 @@ \includepdf[pages=-]{20201119/hp-20201119.pdf} \pdfbookmark[1]{26.11.2020: Einführung in C: Arrays und Strings und Zeichen, Strukturen, Dateien und Fehlerbehandlung}{20201126} \includepdf[pages=-]{20201126/hp-20201126.pdf} + \pdfbookmark[1]{03.12.2020: Parameter des Hauptprogramms, String-Operationen}{20201203} + \includepdf[pages=-]{20201203/hp-20201203.pdf} + \pdfbookmark[1]{10.12.2020: Parameter des Hauptprogramms, String-Operationen}{20201210} + \includepdf[pages=-]{20201210/hp-20201210.pdf} \end{document}