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">
<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">
<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>
<p><img alt="" src="../_images/modularisieren_von_c_code.JPG" /></p>
<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">
<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
Java Programm (bestehend aus drei Java Files) in ein entsprechendes C
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
Schritte von den C Source Files zur graphischen Darstellung der
Abhängigkeiten.</p>
<figure class="align-center" id="uebersicht">
<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><img alt="" src="../_images/uebersicht.png" /></p>
<p>Im Anhang ist eine Übersicht über die verwendeten File Formate gegeben.</p>
</section>
<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>
<ul class="simple">
<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>
</section>
<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>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
@ -220,7 +202,7 @@ table th:nth-of-type(2) {
</section>
</section>
<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
graphische Darstellung der Abhängigkeiten:</p>
<ol class="arabic simple">
@ -230,9 +212,7 @@ graphische Darstellung der Abhängigkeiten:</p>
</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>
Makefile Regeln schreiben.</p>
<figure class="align-center" id="uebersicht">
<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><img alt="" src="../_images/uebersicht.png" /></p>
<p>Das Programm <code class="docutils literal notranslate"><span class="pre">dep2dot</span></code> hat folgende Funktionalität:</p>
<ol class="arabic simple">
<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>
</div>
<p>Als Resultat sollte Firefox folgende Graphik darstellen:</p>
<figure class="align-center" id="dep-dot">
<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><img alt="" src="../_images/dep_dot.png" /></p>
<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>
<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>
</section>
</section>
<hr class="docutils" />
<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>
<table class="colwidths-auto docutils align-default">
<thead>
@ -330,24 +309,18 @@ dargestellt wird.</p>
</tbody>
</table>
</section>
<hr class="docutils" />
<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">
<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>
</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>
</pre></div>
</div>
</td><td>
<p><strong>Beschreibung</strong></p>
<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>
</td></tr>
</table>
</section>
<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>
@ -456,9 +429,7 @@ Problem der ansprechenden Visualisierung kümmern muss.</p>
<span class="p">}</span><span class="w"></span>
</pre></div>
</div>
<figure class="align-center" id="bsp-dot">
<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>
<p><img alt="" src="P04_Modularisieren_von_C_Code/dsp_dot.png" /></p>
</section>
<section id="png-file">
<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
```{eval-rst}
.. figure:: zhaw_neg_P2945.jpg
:width: 100px
:name: logo
:align: right
```
![](./modularisieren_von_c_code.JPG)
___
```{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
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
Abhängigkeiten.
```{eval-rst}
.. figure:: uebersicht.png
:width: 500px
:name: uebersicht
:align: center
```
![](./uebersicht.png)
Im Anhang ist eine Übersicht über die verwendeten File Formate gegeben.
(04_learning_objectives)=
## 2. Lernziele
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.
(04_task_01)=
## 3. Aufgabe 1: Modularisieren
Das zu ergänzende Programm dep2dot hat folgende Funktionalität:
@ -240,7 +202,6 @@ System.out.println(
</td><td></td></tr>
</table>
(04_task_02)=
## 4. Aufgabe 2: Makefile Regeln
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`
Makefile Regeln schreiben.
```{eval-rst}
.. figure:: uebersicht.png
:width: 500px
:name: uebersicht
:align: center
```
![](./uebersicht.png)
Das Programm `dep2dot` hat folgende Funktionalität:
@ -294,12 +252,8 @@ firefox dep.png
Als Resultat sollte Firefox folgende Graphik darstellen:
```{eval-rst}
.. figure:: dep_dot.png
:width: 150px
:name: dep_dot
:align: center
```
![](./dep_dot.png)
@ -347,8 +301,7 @@ dargestellt wird.
* 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.
(04_grading)=
___
## 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.
@ -361,41 +314,24 @@ Die gegebenenfalls gestellten Theorieaufgaben und der funktionierende Programmco
| 2 | Neue Regeln hinzufügen | 2 |
___
(04_appendix)=
## 6. Anhang
### 6.1 Verwendete zusätzliche Sprach Elemente
<table><tr><td>
**Sprach Element**
</td><td>
**Beschreibung**
</td></tr>
<tr><td>
```C
fprintf(stderr, "v=%d", v)
```
</td><td>
**Beschreibung**
Formatierte Ausgabe auf den Standard Error Stream. Siehe ***man 3
stderr*** und ***man 3 fprintf***.
</td></tr>
</table>
### 6.2 Verarbeitung und verwendete File Formate <a name="file_formats"></a>
@ -525,12 +461,7 @@ digraph G {
}
```
```{eval-rst}
.. figure:: bsp_dot.png
:width: 210px
:name: bsp_dot
:align: center
```
![](./dsp_dot.png)
#### 6.2.3 png File

View File

@ -16,11 +16,11 @@ SNP Laboratories
P01_Erste_Schritte_mit_C/README.md
P02_Funktionen_Datentyp_enum/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
P06_Personen_Verwaltung_Linked_List/README.md
P07_Prozesse_und_Threads/README.md
P08_Sync/README.md
P09_File_Operations/README.md
P10_IPC/README.md

Binary file not shown.

File diff suppressed because one or more lines are too long