diff --git a/P04_Modularisieren_von_C_Code/P04_Modularisieren_von_C_Code.docx b/P04_Modularisieren_von_C_Code/P04_Modularisieren_von_C_Code.docx deleted file mode 100644 index 1e9048b..0000000 Binary files a/P04_Modularisieren_von_C_Code/P04_Modularisieren_von_C_Code.docx and /dev/null differ diff --git a/P04_Modularisieren_von_C_Code/P04_Modularisieren_von_C_Code.pdf b/P04_Modularisieren_von_C_Code/P04_Modularisieren_von_C_Code.pdf deleted file mode 100644 index 61c2206..0000000 Binary files a/P04_Modularisieren_von_C_Code/P04_Modularisieren_von_C_Code.pdf and /dev/null differ diff --git a/P04_Modularisieren_von_C_Code/new_P04/P04_Aufgabenstellung.drawio b/P04_Modularisieren_von_C_Code/new_P04/P04_Aufgabenstellung.drawio deleted file mode 100644 index a789857..0000000 --- a/P04_Modularisieren_von_C_Code/new_P04/P04_Aufgabenstellung.drawio +++ /dev/null @@ -1 +0,0 @@ -7VnRcuIgFP2aPLoTiIn6WLXd7sx2ptPuTrf7RhM0TDG4BGvs1y9RYgLoGjPqVLtPkgtc4Jx74IKON5hkXzmaxncswtSBbpQ53tCBEAReR/7kloWyuK67sow5iZStNDySd1w0VNYZiXCqNRSMUUGmujFkSYJDodkQ52yuNxsxqo86RWNsGR5DRG3rE4lErKwg6JUVt5iMYzV0F6oVT1DRWK0kjVHE5hWTd+14A86YWJUm2QDTHL0Cl1W/my2164lxnIg6He5GrYenJLv986310P99tfj56oKW8vKG6EwtWE1WLAoEcBJd5UDKr5CiNCXhj5gkjtePxYRKI5BFzmZJhPOBXPkle9wQWtStHOLIwrmcOFjDIQMJswkWfCGbzEvAfQViXIG6sHFMkSBvunukeB+v3a1HuGdEDgxdFaR+EWoqRNtdV3eRshkPsepVBdhw1G3vcCQQH2NhOZKFyrJL05K/PbiE/7n0oUFBryGXpiMAT8ultxeXCUvwv0j86LQFro62Z6Jdl7ZOoDuC7dPSVmwlFd6oTZzk4Tt6kSelRhmiZJzkwpScYC4Nb5gLIk+iK1UxIVGU++hznJJ39LL0l9M7zZezXKDfd/zhmvDcAc40TtQxqTqXh1M1FLYHpB0fyrv7BcBuT4f+IJHR0p0WuigcsNEoxUdhst1EgBFK46XowDmr0RTR2aqxY3EYX4YY2zvEGLQ7UNcNOEhkGAoPTiVG//OK0TwaG2c0O8/YI4sxsDh8+QAkrq+lqx5ntsE25bR0dHztdj+vdk2eG2t3Z8AcWbu9z8vhwa4m5jPDqTkE9lPPPbBolCmK0OlKBWeveMAo4yW3I0KpYaqfMc1jIvDjFIX5mHOOpluCYkPGVCMsCri7vgY37NlbPNwQNp67PUI0SvbGH9r42zK6GPyt3H/DEXta/Bs9qdTbxHBGxK9K+Vm1ysvDrFIxXOy57cnpLfeXnYH1UVIb36DdvPI13S7r3h1PmdoA+16SXa6ireftoJ6iTeIOp2g7LVlcLvymIIBbD34zzagBv/ws/5ZaiaX8d8+7/gs= \ No newline at end of file diff --git a/P04_Modularisieren_von_C_Code/new_P04/P04_Aufgabenstellung.png b/P04_Modularisieren_von_C_Code/new_P04/P04_Aufgabenstellung.png deleted file mode 100644 index b694a31..0000000 Binary files a/P04_Modularisieren_von_C_Code/new_P04/P04_Aufgabenstellung.png and /dev/null differ diff --git a/P04_Modularisieren_von_C_Code/new_P04/P04_Modularisieren_von_C_Code.md b/P04_Modularisieren_von_C_Code/new_P04/P04_Modularisieren_von_C_Code.md deleted file mode 100644 index b78d962..0000000 --- a/P04_Modularisieren_von_C_Code/new_P04/P04_Modularisieren_von_C_Code.md +++ /dev/null @@ -1,127 +0,0 @@ -# 04 - Modularisieren von C Code - -___ -## 1. Übersicht - -In diesem Praktikum wird eine kleine Sammlung von Funktionen als Modul erstellt. - -In der ersten Aufgabe schreiben Sie zu einem bestehenden C Programm die notwendigen Header Files plus passen das Makefile so an, dass die entsprechenden Module mit kompiliert werden. - -In der zweiten Aufgabe erstellen Sie Makefile Regeln um aus Konfigurationsdateien graphischen Darstellungen zu erzeugen. - -___ -## 2. Lernziele - -In diesem Praktikum lernen Sie die Handgriffe um ein Programm zu modularisieren, d.h. in mehrere Module aufzuteilen. - -- Sie wissen, dass ein Modul aus einem C-File und einem passenden H-File bestehen. -- Sie können Header Files korrekt strukturieren. -- Sie wissen wie **Include Guards** anzuwenden sind. -- Sie können Module im **Makefile** zur Kompilation hinzufügen. -- Sie können anhand einer Beschreibung Typen und Funktionen in den passenden Header Files deklarieren. -- Sie können **Makefile** Regeln schreiben. - -Die Bewertung dieses Praktikums ist am Ende angegeben. - -Erweitern Sie die vorgegebenen Code Gerüste, welche im **git** Repository **snp-lab-code** verfügbar sind. - -___ -## 3. Aufgabe 1: Modularisieren - -![](./P04_Aufgabenstellung.png) - -### 3.1 Teilaufgabe Modules einbinden, Header Files schreiben - -- src/objects.h - - 2 Datenstukturen definieren - - `struct point` mit 2 double für x und y Koordinate - - `struct line` mit 2 point -- src/functions.h und .c - - 2 Funktionen deklarieren und definieren - - Berechnung der Länge `get_length`einer Linie (Annahme: Koordinaten sind alle positiv) - - l = sqrt(h^ 2 + b^ 2) - - ev. muss hier in den Anhang `#include ` - - Berechnung der Steigung `get_slope` der Linie gegenüber dem Koordinatensystem - - m = h / b -- tests vorgeben - -- src/objects.h - - Include Guard - - Includes - - Struct für Punkt und Linie - - Include Guard -- src/functions.h - - Include Guard - - Includes - - Deklarationen der Funktionen für Berechnung der Länge und Steigung - - Include Guard -- src/functions.c - - Includes - - Definitionen der Funktionen für Berechnung der Länge und Steigung - - Include Guard - - - - - -___ -## 4. Aufgabe 2: Makefile Regeln - -Makefile ergänzen, damit Modul `functions` korrekt eingebunden und kompiliert wird. - -1. Kompilieren Sie das ganze mittels **make clean default**. Es sollten keine Compiler Fehler auftreten. - -### 4.1 Neue Regeln hinzufügen - -- Vorraussetzung: tab2svg.sh aus Praktikum 3 wird um die Möglichkeit erweitert eine Linie zu zeichnen (`line:x1:y1:x2:y2:color`) -- Studierende erstellen - - mind. 2 Files `long.line` und `short.line` mit 2 unterschiedlichen Linien - - Makefile Regeln um aus einem File `.line` ein File `.svg` mit Hilfe des Scripts zu erstellen - - PHONY Regel `display` um beide `.svg` mit Firefox darzustellen - - Vorgabe: sie sollen eine Variable für die Input-Dateien nutzen - -Nachdem das Programm in Aufgabe 1 umgesetzt ist, geht es nun darum, im **Makefile** Regeln zu definieren welche die einzelnen Schritte von den Source Files zu den **png** Files ausführen. - -Prüfen Sie schliesslich die Umsetzung mittels `make display`. - -___ -## 5. Aufgabe 3 -- Studierende sollen Ausgabe von `make doc` analysieren und die Include Diagramme erklären können -``` -make doc -firefox doc/index.html & -``` - -___ -## 6. Bewertung - - -Die gegebenenfalls gestellten Theorieaufgaben und der funktionierende Programmcode müssen der Praktikumsbetreuung gezeigt werden. Die Lösungen müssen mündlich erklärt werden. - -___ -## 7. Erweiterung Doxyfile für Abhängigkeitsanalyse - -``` ---- /home/vagrant/huno/snp-new/snp/praktika/Shared/work/Doxyfile 2022-02-07 21:16:42.343302707 +0100 -+++ /home/vagrant/snp/Doxyfile 2022-02-07 22:22:36.266839126 +0100 -@@ -297,14 +297,14 @@ - UML_LOOK = NO - UML_LIMIT_NUM_FIELDS = 10 - TEMPLATE_RELATIONS = NO --INCLUDE_GRAPH = NO --INCLUDED_BY_GRAPH = NO -+INCLUDE_GRAPH = YES -+INCLUDED_BY_GRAPH = YES - CALL_GRAPH = NO - CALLER_GRAPH = NO --GRAPHICAL_HIERARCHY = NO --DIRECTORY_GRAPH = NO -+GRAPHICAL_HIERARCHY = YES -+DIRECTORY_GRAPH = YES - DOT_IMAGE_FORMAT = png --INTERACTIVE_SVG = NO -+INTERACTIVE_SVG = YES - DOT_PATH = - DOTFILE_DIRS = - MSCFILE_DIRS = -```