Jenkins published newest html version

This commit is contained in:
Jenkins 2022-03-01 15:06:22 +01:00
parent beb60bdf97
commit 0b56c29b2f
5 changed files with 29 additions and 127 deletions

View File

@ -37,26 +37,10 @@
<section class="tex2jax_ignore mathjax_ignore" id="modularisieren-von-c-code"> <section class="tex2jax_ignore mathjax_ignore" id="modularisieren-von-c-code">
<h1>04 - Modularisieren von C Code<a class="headerlink" href="#modularisieren-von-c-code" title="Permalink to this headline"></a></h1> <h1>04 - Modularisieren von C Code<a class="headerlink" href="#modularisieren-von-c-code" title="Permalink to this headline"></a></h1>
<figure class="align-right" id="logo"> <p><img alt="" src="../_images/modularisieren_von_c_code.JPG" /></p>
<a class="reference internal image-reference" href="P04_Modularisieren_von_C_Code/zhaw_neg_P2945.jpg"><img alt="P04_Modularisieren_von_C_Code/zhaw_neg_P2945.jpg" src="P04_Modularisieren_von_C_Code/zhaw_neg_P2945.jpg" style="width: 100px;" /></a>
</figure>
<hr class="docutils" /> <hr class="docutils" />
<figure class="align-center" id="logo">
<a class="reference internal image-reference" href="../_images/modularisieren_von_c_code.JPG"><img alt="../_images/modularisieren_von_c_code.JPG" src="../_images/modularisieren_von_c_code.JPG" style="width: 500px;" /></a>
</figure>
<hr class="docutils" />
<section id="inhalt">
<h2>Inhalt<a class="headerlink" href="#inhalt" title="Permalink to this headline"></a></h2>
<p><a class="reference internal" href="#introduction"><span class="std std-ref">1. Übersicht</span></a></p>
<p><a class="reference internal" href="#learning-objectives"><span class="std std-ref">2. Lernziele</span></a></p>
<p><a class="reference internal" href="#task-01"><span class="std std-ref">3. Aufgabe 1: Modularisieren</span></a></p>
<p><a class="reference internal" href="#task-02"><span class="std std-ref">4. Aufgabe 2: Makefile Regeln</span></a></p>
<p><a class="reference internal" href="#grading"><span class="std std-ref">5. Bewertung</span></a></p>
<p><a class="reference internal" href="#appendix"><span class="std std-ref">6. Anhang</span></a></p>
<hr class="docutils" />
</section>
<section id="ubersicht"> <section id="ubersicht">
<span id="introduction"></span><h2>1. Übersicht<a class="headerlink" href="#ubersicht" title="Permalink to this headline"></a></h2> <h2>1. Übersicht<a class="headerlink" href="#ubersicht" title="Permalink to this headline"></a></h2>
<p>In diesem Praktikum üben Sie modulare Programmierung indem Sie ein <p>In diesem Praktikum üben Sie modulare Programmierung indem Sie ein
Java Programm (bestehend aus drei Java Files) in ein entsprechendes C Java Programm (bestehend aus drei Java Files) in ein entsprechendes C
Programm aus drei Modulen (aus je einem Header- und Implementations- Programm aus drei Modulen (aus je einem Header- und Implementations-
@ -65,13 +49,11 @@ entsprechenden Module mit kompiliert werden.</p>
<p>In der zweiten Aufgabe erstellen Sie Makefile Regeln für die drei <p>In der zweiten Aufgabe erstellen Sie Makefile Regeln für die drei
Schritte von den C Source Files zur graphischen Darstellung der Schritte von den C Source Files zur graphischen Darstellung der
Abhängigkeiten.</p> Abhängigkeiten.</p>
<figure class="align-center" id="uebersicht"> <p><img alt="" src="../_images/uebersicht.png" /></p>
<a class="reference internal image-reference" href="../_images/uebersicht.png"><img alt="../_images/uebersicht.png" src="../_images/uebersicht.png" style="width: 500px;" /></a>
</figure>
<p>Im Anhang ist eine Übersicht über die verwendeten File Formate gegeben.</p> <p>Im Anhang ist eine Übersicht über die verwendeten File Formate gegeben.</p>
</section> </section>
<section id="lernziele"> <section id="lernziele">
<span id="learning-objectives"></span><h2>2. Lernziele<a class="headerlink" href="#lernziele" title="Permalink to this headline"></a></h2> <h2>2. Lernziele<a class="headerlink" href="#lernziele" title="Permalink to this headline"></a></h2>
<p>In diesem Praktikum lernen Sie die Handgriffe um ein Programm zu modularisieren, d.h. in mehrere Module aufzuteilen.</p> <p>In diesem Praktikum lernen Sie die Handgriffe um ein Programm zu modularisieren, d.h. in mehrere Module aufzuteilen.</p>
<ul class="simple"> <ul class="simple">
<li><p>Sie wissen, dass ein Modul aus einem C-File und einem passenden <li><p>Sie wissen, dass ein Modul aus einem C-File und einem passenden
@ -88,7 +70,7 @@ eines Moduls.</p></li>
Repository <code class="docutils literal notranslate"><span class="pre">snp-lab-code</span></code> verfügbar sind.</p> Repository <code class="docutils literal notranslate"><span class="pre">snp-lab-code</span></code> verfügbar sind.</p>
</section> </section>
<section id="aufgabe-1-modularisieren"> <section id="aufgabe-1-modularisieren">
<span id="task-01"></span><h2>3. Aufgabe 1: Modularisieren<a class="headerlink" href="#aufgabe-1-modularisieren" title="Permalink to this headline"></a></h2> <h2>3. Aufgabe 1: Modularisieren<a class="headerlink" href="#aufgabe-1-modularisieren" title="Permalink to this headline"></a></h2>
<p>Das zu ergänzende Programm dep2dot hat folgende Funktionalität:</p> <p>Das zu ergänzende Programm dep2dot hat folgende Funktionalität:</p>
<p>Ergänzen Sie in <strong><code class="docutils literal notranslate"><span class="pre">modularize/src</span></code></strong> den Code in <strong><code class="docutils literal notranslate"><span class="pre">triangle.c</span></code></strong>, <p>Ergänzen Sie in <strong><code class="docutils literal notranslate"><span class="pre">modularize/src</span></code></strong> den Code in <strong><code class="docutils literal notranslate"><span class="pre">triangle.c</span></code></strong>,
<strong><code class="docutils literal notranslate"><span class="pre">read.h</span></code></strong>, <strong><code class="docutils literal notranslate"><span class="pre">read.c</span></code></strong>, <strong><code class="docutils literal notranslate"><span class="pre">rectang.h</span></code></strong> und <strong><code class="docutils literal notranslate"><span class="pre">rectang.c</span></code></strong> so <strong><code class="docutils literal notranslate"><span class="pre">read.h</span></code></strong>, <strong><code class="docutils literal notranslate"><span class="pre">read.c</span></code></strong>, <strong><code class="docutils literal notranslate"><span class="pre">rectang.h</span></code></strong> und <strong><code class="docutils literal notranslate"><span class="pre">rectang.c</span></code></strong> so
@ -220,7 +202,7 @@ table th:nth-of-type(2) {
</section> </section>
</section> </section>
<section id="aufgabe-2-makefile-regeln"> <section id="aufgabe-2-makefile-regeln">
<span id="task-02"></span><h2>4. Aufgabe 2: Makefile Regeln<a class="headerlink" href="#aufgabe-2-makefile-regeln" title="Permalink to this headline"></a></h2> <h2>4. Aufgabe 2: Makefile Regeln<a class="headerlink" href="#aufgabe-2-makefile-regeln" title="Permalink to this headline"></a></h2>
<p>Die folgenden drei Schritte erstellen von einem C Source File eine <p>Die folgenden drei Schritte erstellen von einem C Source File eine
graphische Darstellung der Abhängigkeiten:</p> graphische Darstellung der Abhängigkeiten:</p>
<ol class="arabic simple"> <ol class="arabic simple">
@ -230,9 +212,7 @@ graphische Darstellung der Abhängigkeiten:</p>
</ol> </ol>
<p>Sie sollen für die Compiler-ähnlichen Programme <code class="docutils literal notranslate"><span class="pre">dep2dot</span></code> und <code class="docutils literal notranslate"><span class="pre">dot</span></code> <p>Sie sollen für die Compiler-ähnlichen Programme <code class="docutils literal notranslate"><span class="pre">dep2dot</span></code> und <code class="docutils literal notranslate"><span class="pre">dot</span></code>
Makefile Regeln schreiben.</p> Makefile Regeln schreiben.</p>
<figure class="align-center" id="uebersicht"> <p><img alt="" src="../_images/uebersicht.png" /></p>
<a class="reference internal image-reference" href="../_images/uebersicht.png"><img alt="../_images/uebersicht.png" src="../_images/uebersicht.png" style="width: 500px;" /></a>
</figure>
<p>Das Programm <code class="docutils literal notranslate"><span class="pre">dep2dot</span></code> hat folgende Funktionalität:</p> <p>Das Programm <code class="docutils literal notranslate"><span class="pre">dep2dot</span></code> hat folgende Funktionalität:</p>
<ol class="arabic simple"> <ol class="arabic simple">
<li><p>Es liest von <code class="docutils literal notranslate"><span class="pre">stdin</span></code> die vom Compiler generierten <li><p>Es liest von <code class="docutils literal notranslate"><span class="pre">stdin</span></code> die vom Compiler generierten
@ -260,9 +240,7 @@ firefox dep.png
</pre></div> </pre></div>
</div> </div>
<p>Als Resultat sollte Firefox folgende Graphik darstellen:</p> <p>Als Resultat sollte Firefox folgende Graphik darstellen:</p>
<figure class="align-center" id="dep-dot"> <p><img alt="" src="../_images/dep_dot.png" /></p>
<a class="reference internal image-reference" href="../_images/dep_dot.png"><img alt="../_images/dep_dot.png" src="../_images/dep_dot.png" style="width: 150px;" /></a>
</figure>
<p>Definieren Sie im <code class="docutils literal notranslate"><span class="pre">Makefile</span></code> Regeln, welche die einzelnen Schritte von <p>Definieren Sie im <code class="docutils literal notranslate"><span class="pre">Makefile</span></code> Regeln, welche die einzelnen Schritte von
den Source Files zu den <code class="docutils literal notranslate"><span class="pre">png</span></code> Files ausführen.</p> den Source Files zu den <code class="docutils literal notranslate"><span class="pre">png</span></code> Files ausführen.</p>
<p>Prüfen Sie schliesslich die Umsetzung Aufgabe mittels <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">dep-clean</span> <span class="pre">dep</span> <span class="pre">&amp;&amp;</span> <span class="pre">firefox</span> <span class="pre">src/*.png.</span></code></p> <p>Prüfen Sie schliesslich die Umsetzung Aufgabe mittels <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">dep-clean</span> <span class="pre">dep</span> <span class="pre">&amp;&amp;</span> <span class="pre">firefox</span> <span class="pre">src/*.png.</span></code></p>
@ -300,8 +278,9 @@ dargestellt wird.</p>
</ul> </ul>
</section> </section>
</section> </section>
<hr class="docutils" />
<section id="bewertung"> <section id="bewertung">
<span id="grading"></span><h2>5. Bewertung<a class="headerlink" href="#bewertung" title="Permalink to this headline"></a></h2> <h2>5. Bewertung<a class="headerlink" href="#bewertung" title="Permalink to this headline"></a></h2>
<p>Die gegebenenfalls gestellten Theorieaufgaben und der funktionierende Programmcode müssen der Praktikumsbetreuung gezeigt werden. Die Lösungen müssen mündlich erklärt werden.</p> <p>Die gegebenenfalls gestellten Theorieaufgaben und der funktionierende Programmcode müssen der Praktikumsbetreuung gezeigt werden. Die Lösungen müssen mündlich erklärt werden.</p>
<table class="colwidths-auto docutils align-default"> <table class="colwidths-auto docutils align-default">
<thead> <thead>
@ -330,24 +309,18 @@ dargestellt wird.</p>
</tbody> </tbody>
</table> </table>
</section> </section>
<hr class="docutils" />
<section id="anhang"> <section id="anhang">
<span id="appendix"></span><h2>6. Anhang<a class="headerlink" href="#anhang" title="Permalink to this headline"></a></h2> <h2>6. Anhang<a class="headerlink" href="#anhang" title="Permalink to this headline"></a></h2>
<section id="verwendete-zusatzliche-sprach-elemente"> <section id="verwendete-zusatzliche-sprach-elemente">
<h3>6.1 Verwendete zusätzliche Sprach Elemente<a class="headerlink" href="#verwendete-zusatzliche-sprach-elemente" title="Permalink to this headline"></a></h3> <h3>6.1 Verwendete zusätzliche Sprach Elemente<a class="headerlink" href="#verwendete-zusatzliche-sprach-elemente" title="Permalink to this headline"></a></h3>
<table><tr><td>
<p><strong>Sprach Element</strong></p> <p><strong>Sprach Element</strong></p>
</td><td>
<p><strong>Beschreibung</strong></p>
</td></tr>
<tr><td>
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="n">fprintf</span><span class="p">(</span><span class="n">stderr</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;v=%d&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">v</span><span class="p">)</span><span class="w"></span> <div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="n">fprintf</span><span class="p">(</span><span class="n">stderr</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;v=%d&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">v</span><span class="p">)</span><span class="w"></span>
</pre></div> </pre></div>
</div> </div>
</td><td> <p><strong>Beschreibung</strong></p>
<p>Formatierte Ausgabe auf den Standard Error Stream. Siehe <em><strong>man 3 <p>Formatierte Ausgabe auf den Standard Error Stream. Siehe <em><strong>man 3
stderr</strong></em> und <em><strong>man 3 fprintf</strong></em>.</p> stderr</strong></em> und <em><strong>man 3 fprintf</strong></em>.</p>
</td></tr>
</table>
</section> </section>
<section id="verarbeitung-und-verwendete-file-formate-a-name-file-formats-a"> <section id="verarbeitung-und-verwendete-file-formate-a-name-file-formats-a">
<h3>6.2 Verarbeitung und verwendete File Formate <a name="file_formats"></a><a class="headerlink" href="#verarbeitung-und-verwendete-file-formate-a-name-file-formats-a" title="Permalink to this headline"></a></h3> <h3>6.2 Verarbeitung und verwendete File Formate <a name="file_formats"></a><a class="headerlink" href="#verarbeitung-und-verwendete-file-formate-a-name-file-formats-a" title="Permalink to this headline"></a></h3>
@ -456,9 +429,7 @@ Problem der ansprechenden Visualisierung kümmern muss.</p>
<span class="p">}</span><span class="w"></span> <span class="p">}</span><span class="w"></span>
</pre></div> </pre></div>
</div> </div>
<figure class="align-center" id="bsp-dot"> <p><img alt="" src="P04_Modularisieren_von_C_Code/dsp_dot.png" /></p>
<a class="reference internal image-reference" href="../_images/bsp_dot.png"><img alt="../_images/bsp_dot.png" src="../_images/bsp_dot.png" style="width: 210px;" /></a>
</figure>
</section> </section>
<section id="png-file"> <section id="png-file">
<h4>6.2.3 png File<a class="headerlink" href="#png-file" title="Permalink to this headline"></a></h4> <h4>6.2.3 png File<a class="headerlink" href="#png-file" title="Permalink to this headline"></a></h4>

View File

@ -1,41 +1,9 @@
# 04 - Modularisieren von C Code # 04 - Modularisieren von C Code
```{eval-rst} ![](./modularisieren_von_c_code.JPG)
.. figure:: zhaw_neg_P2945.jpg
:width: 100px
:name: logo
:align: right
```
___ ___
```{eval-rst}
.. figure:: modularisieren_von_c_code.JPG
:width: 500px
:name: logo
:align: center
```
___
## Inhalt
{ref}`04_introduction`
{ref}`04_learning_objectives`
{ref}`04_task_01`
{ref}`04_task_02`
{ref}`04_grading`
{ref}`04_appendix`
___
(04_introduction)=
## 1. Übersicht ## 1. Übersicht
In diesem Praktikum üben Sie modulare Programmierung indem Sie ein In diesem Praktikum üben Sie modulare Programmierung indem Sie ein
@ -48,18 +16,13 @@ In der zweiten Aufgabe erstellen Sie Makefile Regeln für die drei
Schritte von den C Source Files zur graphischen Darstellung der Schritte von den C Source Files zur graphischen Darstellung der
Abhängigkeiten. Abhängigkeiten.
```{eval-rst}
.. figure:: uebersicht.png ![](./uebersicht.png)
:width: 500px
:name: uebersicht
:align: center
```
Im Anhang ist eine Übersicht über die verwendeten File Formate gegeben. Im Anhang ist eine Übersicht über die verwendeten File Formate gegeben.
(04_learning_objectives)=
## 2. Lernziele ## 2. Lernziele
In diesem Praktikum lernen Sie die Handgriffe um ein Programm zu modularisieren, d.h. in mehrere Module aufzuteilen. In diesem Praktikum lernen Sie die Handgriffe um ein Programm zu modularisieren, d.h. in mehrere Module aufzuteilen.
@ -79,7 +42,6 @@ Erweitern Sie die vorgegebenen Code Gerüste, welche im `git`
Repository `snp-lab-code` verfügbar sind. Repository `snp-lab-code` verfügbar sind.
(04_task_01)=
## 3. Aufgabe 1: Modularisieren ## 3. Aufgabe 1: Modularisieren
Das zu ergänzende Programm dep2dot hat folgende Funktionalität: Das zu ergänzende Programm dep2dot hat folgende Funktionalität:
@ -240,7 +202,6 @@ System.out.println(
</td><td></td></tr> </td><td></td></tr>
</table> </table>
(04_task_02)=
## 4. Aufgabe 2: Makefile Regeln ## 4. Aufgabe 2: Makefile Regeln
Die folgenden drei Schritte erstellen von einem C Source File eine Die folgenden drei Schritte erstellen von einem C Source File eine
@ -253,12 +214,9 @@ graphische Darstellung der Abhängigkeiten:
Sie sollen für die Compiler-ähnlichen Programme `dep2dot` und `dot` Sie sollen für die Compiler-ähnlichen Programme `dep2dot` und `dot`
Makefile Regeln schreiben. Makefile Regeln schreiben.
```{eval-rst}
.. figure:: uebersicht.png ![](./uebersicht.png)
:width: 500px
:name: uebersicht
:align: center
```
Das Programm `dep2dot` hat folgende Funktionalität: Das Programm `dep2dot` hat folgende Funktionalität:
@ -294,12 +252,8 @@ firefox dep.png
Als Resultat sollte Firefox folgende Graphik darstellen: Als Resultat sollte Firefox folgende Graphik darstellen:
```{eval-rst} ![](./dep_dot.png)
.. figure:: dep_dot.png
:width: 150px
:name: dep_dot
:align: center
```
@ -347,8 +301,7 @@ dargestellt wird.
* Analysieren Sie die in der vorherigen Aufgabe erstellten grafischen Darstellungen. * Analysieren Sie die in der vorherigen Aufgabe erstellten grafischen Darstellungen.
* Erklären Sie was dargestellt wird und stellen Sie den Bezug zum zugehörigen C-Code her. * Erklären Sie was dargestellt wird und stellen Sie den Bezug zum zugehörigen C-Code her.
___
(04_grading)=
## 5. Bewertung ## 5. 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. Die gegebenenfalls gestellten Theorieaufgaben und der funktionierende Programmcode müssen der Praktikumsbetreuung gezeigt werden. Die Lösungen müssen mündlich erklärt werden.
@ -361,41 +314,24 @@ Die gegebenenfalls gestellten Theorieaufgaben und der funktionierende Programmco
| 2 | Neue Regeln hinzufügen | 2 | | 2 | Neue Regeln hinzufügen | 2 |
___
(04_appendix)=
## 6. Anhang ## 6. Anhang
### 6.1 Verwendete zusätzliche Sprach Elemente ### 6.1 Verwendete zusätzliche Sprach Elemente
<table><tr><td>
**Sprach Element** **Sprach Element**
</td><td>
**Beschreibung**
</td></tr>
<tr><td>
```C ```C
fprintf(stderr, "v=%d", v) fprintf(stderr, "v=%d", v)
``` ```
</td><td> **Beschreibung**
Formatierte Ausgabe auf den Standard Error Stream. Siehe ***man 3 Formatierte Ausgabe auf den Standard Error Stream. Siehe ***man 3
stderr*** und ***man 3 fprintf***. stderr*** und ***man 3 fprintf***.
</td></tr>
</table>
### 6.2 Verarbeitung und verwendete File Formate <a name="file_formats"></a> ### 6.2 Verarbeitung und verwendete File Formate <a name="file_formats"></a>
@ -525,12 +461,7 @@ digraph G {
} }
``` ```
```{eval-rst} ![](./dsp_dot.png)
.. figure:: bsp_dot.png
:width: 210px
:name: bsp_dot
:align: center
```
#### 6.2.3 png File #### 6.2.3 png File

View File

@ -16,11 +16,11 @@ SNP Laboratories
P01_Erste_Schritte_mit_C/README.md P01_Erste_Schritte_mit_C/README.md
P02_Funktionen_Datentyp_enum/README.md P02_Funktionen_Datentyp_enum/README.md
P03_Bit_Operation_struct_typedef/README.md P03_Bit_Operation_struct_typedef/README.md
P04_Modularisieren_von_C_Code/new_P04/P04_Modularisieren_von_C_Code.md P04_Modularisieren_von_C_Code/new_P04/README.md
P05_TicTacToe/README.md P05_TicTacToe/README.md
P06_Personen_Verwaltung_Linked_List/README.md P06_Personen_Verwaltung_Linked_List/README.md
P07_Prozesse_und_Threads/README.md P07_Prozesse_und_Threads/README.md
P08_Sync/README.md P08_Sync/README.md
P09_File_Operations/README.md P09_File_Operations/README.md
P10_IPC/README.md P10_IPC/README.md

Binary file not shown.

File diff suppressed because one or more lines are too long