diff --git a/ws2019/ipi/uebungen/ipi6.pdf b/ws2019/ipi/uebungen/ipi6.pdf index cb0c65a..36a980d 100644 Binary files a/ws2019/ipi/uebungen/ipi6.pdf and b/ws2019/ipi/uebungen/ipi6.pdf differ diff --git a/ws2019/ipi/uebungen/ipi6.tex b/ws2019/ipi/uebungen/ipi6.tex index 25693c6..43ee6bc 100644 --- a/ws2019/ipi/uebungen/ipi6.tex +++ b/ws2019/ipi/uebungen/ipi6.tex @@ -1,6 +1,7 @@ \documentclass[uebung]{../../../lecture} \usepackage{listings} +\usetikzlibrary{positioning} \title{Übungsblatt 6} \author{Samuel Weidemaier, Christian Merten} @@ -27,14 +28,190 @@ \lstset{style=mystyle} +\usepackage{tikz, wasysym} +\usetikzlibrary{automata, positioning, arrows,shapes,shadows} + +\tikzstyle{abstract}=[rectangle, draw=black, + %text centered, + anchor=north, text=black, text width=15cm, rounded corners] + +\tikzstyle{subgroup}=[rectangle, draw=blue, + %text centered, + anchor=north, text=black, text width=3.5cm, rounded corners] + +\tikzstyle{myarrow}=[->, >=stealth, thick] +\tikzstyle{gestrichen}=[->, >=stealth, dashed] + \begin{document} \punkte \begin{aufgabe} - siehe Blatt. + + \vspace{5mm} +Marker 1: + \vspace{-3mm} +\begin{center} + \begin{tikzpicture}[shorten >= 1pt, node distance=2.5cm, on grid, auto] + + + \node[abstract, rectangle split, rectangle split parts=2] (global) { + Globale Umgebung + \nodepart{second}$g$ int $1$ + }; + + + + \node[subgroup, rectangle split, rectangle split parts=2, below left of=global, xshift=-3.3cm, yshift=-0.3cm] (main) { + main() \\ + \nodepart{second} + $a$ int $2$ \\ + $b$ int $14$ + }; + + \node[subgroup, rectangle split, rectangle split parts=2, below right of=main, yshift=-0.4cm] (block1) { + Block $1$ in main() \\ + \nodepart{second} + $a$ int $7$ \\ + $g$ int $?$ + }; + + \node[subgroup, rectangle split, rectangle split parts=2, right of=block1, , xshift=2.1cm, yshift=-0.32cm] (ggTab) { + ggT(b, a) \\ + \nodepart{second} + $a$ int $14$ \\ + $b$ int $7$ \\ + Null int $0$ + }; + + + + \node[subgroup, rectangle split, rectangle split parts=2, below right of=ggTab, yshift=-0.7cm] (amodb) { + $a \text{ mod } b(a,b)$ \\ + \nodepart{second} + $a$ int $14$ \\ + $b$ int $7$ \\ + $m$ int $0$ + }; + + + \draw[myarrow] (main.west) -- ++(0,0) -| ([xshift=-7.2cm] global.south); + + \draw[myarrow] (block1.west) -- ++(0,0) -| ([xshift=-1cm] main.south); + + \draw[gestrichen] ([xshift=-1.4cm] ggTab.south) -- ++(0,-0.4) -| (block1.south); + + \draw[myarrow] (ggTab.west) -- ++(0,0) -| ([xshift=-1cm] global.south); + + + \draw[gestrichen] (amodb.west) -- ++(0,0) -| ([xshift=-1.7cm] ggTab); + + \draw[myarrow] ([xshift=1cm] amodb.north) -- ++(0,0) -| ([xshift=4.1cm] global.south); + + + + \end{tikzpicture} + + \vspace{-10mm} + +\end{center} + + \nopagebreak + + Marker 2: + \vspace{-2mm} + \begin{center} + \begin{tikzpicture}[shorten >= 1pt, node distance=2.5cm, on grid, auto] + + + \node[abstract, rectangle split, rectangle split parts=2] (global) { + Globale Umgebung + \nodepart{second}$g$ int $2$ + }; + + + + \node[subgroup, rectangle split, rectangle split parts=2, below left of=global, xshift=-3.3cm, yshift=-0.3cm] (main) { + main() \\ + \nodepart{second} + $a$ int $2$ \\ + $b$ int $14$ + }; + + \node[subgroup, rectangle split, rectangle split parts=2, below right of=main, yshift=-0.4cm] (block1) { + Block $1$ in main() \\ + \nodepart{second} + $a$ int $7$ \\ + $g$ int $?$ + }; + + \node[subgroup, rectangle split, rectangle split parts=2, right of=block1, , xshift=2.1cm, yshift=-0.32cm] (ggTab) { + ggT(b, a) \\ + \nodepart{second} + $a$ int $14$ \\ + $b$ int $7$ \\ + Null int $0$ + }; + + \node[subgroup, rectangle split, rectangle split parts=2, below right of=ggTab, , xshift=1cm, yshift=-0.7cm] (ggTmod) { + $ggT(b, a \text{ mod }b(a,b))$ \\ + \nodepart{second} + $a$ int $7$ \\ + $b$ int $0$ \\ + Null int $0$ + }; + + + + \draw[myarrow] (main.west) -- ++(0,0) -| ([xshift=-7.2cm] global.south); + + \draw[myarrow] (block1.west) -- ++(0,0) -| ([xshift=-1cm] main.south); + + \draw[gestrichen] ([xshift=-1.4cm] ggTab.south) -- ++(0,-0.4) -| (block1.south); + + \draw[myarrow] (ggTab.west) -- ++(0,0) -| ([xshift=-1cm] global.south); + + \draw[gestrichen] (ggTmod.west) -- ++(0,0) -| (ggTab.south); + + \draw[myarrow] (ggTmod.north) -- ++(0,0) -| ([xshift=4.1cm] global.south); + + + + \end{tikzpicture} + + \end{center} + Marker 3: + \begin{center} + + \begin{tikzpicture}[shorten >= 1pt, node distance=2.5cm, on grid, auto] + + + \node[abstract, rectangle split, rectangle split parts=2] (global) { + Globale Umgebung + \nodepart{second}$g$ int $2$ + }; + + + + \node[subgroup, rectangle split, rectangle split parts=2, below left of=global, xshift=-3.3cm, yshift=-0.3cm] (main) { + main() \\ + \nodepart{second} + $a$ int $2$ \\ + $b$ int $7$ + }; + + + \draw[myarrow] (main.west) -- ++(0,0) -| ([xshift=-7.2cm] global.south); + + + + \end{tikzpicture} +\end{center} + \end{aufgabe} +\newpage + \begin{aufgabe} Primfaktorzerlegung \begin{lstlisting}[language=C++, title=Primfaktorzerlegung, captionpos=b] #include "cpp_headers/fcpp.hh"