diff options
author | Karl Berry <karl@freefriends.org> | 2018-08-22 21:20:03 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-08-22 21:20:03 +0000 |
commit | d73c922e3d1cc0085aab0488d1b8d2c7ff4f09d9 (patch) | |
tree | 9cf07e9b1056e59e30a1fb55c026822bc416777d /Master/texmf-dist/doc/latex/schule/fachInformatik.tex | |
parent | a5b8f028298d5555872bdd3858a8132094a12688 (diff) |
restore schule, tikz symbols and all
git-svn-id: svn://tug.org/texlive/trunk@48453 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/schule/fachInformatik.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/schule/fachInformatik.tex | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/schule/fachInformatik.tex b/Master/texmf-dist/doc/latex/schule/fachInformatik.tex new file mode 100644 index 00000000000..3412425d217 --- /dev/null +++ b/Master/texmf-dist/doc/latex/schule/fachInformatik.tex @@ -0,0 +1,167 @@ +\section{Informatik} +\label{fach:informatik} +Das Fachmodul \module{Informatik} bindet Pakete ein, um Klassen- sowie Objektdiagramme (\texttt{pgf-umlcd}), Syntaxdiagramme (\pkg{syntaxdi}, siehe \prettyref{paket:syntaxdi}), Struktogramme (\pkg{struktex}) und Sequenzdiagramme (\texttt{pgf-umlsd}) setzen zu können. Die entsprechenden Dokumentationen sind bei den jeweiligen Paketen zu finden. Hier sind lediglich Abweichungen und Erweiterungen vom Standardumfang der Pakete dokumentiert. + +\subsection{Objektdiagramme} +\begin{commands} + \command{anchormark}[\oarg{Horizontale Verschiebung} \marg{Nodename}\oarg{Skalierung}] Durch den Befehl \cs{anchormark} können Objektdiagramme mit Beziehungsattributen ausgestattet werden, die an der korrekten Stelle hinter dem Attributbezeichner beginnen. + + \achtung{Dieser Befehl ist nicht skalierungssicher!} + + % % Der folgende kenntlich gemachte Abschnitt ist in der Zusammenarbeit + % % von Informatikreferendaren und ehemaligen Informatikreferendaren + % % der Studienseminare (heute ZfsL) Arnsberg, Hamm und Solingen + % % entstanden. + % % + % % Der Abschnitt steht unter der Lizenz: Creative Commons by-nc-sa + % % Version 4.0 + % % http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de + % % + % % Nach dieser Lizenz darf der Abschnitt beliebig kopiert und + % % bearbeitet werden, sofern das Folgeprodukt wiederum unter + % % gleichen Lizenzbedingungen vertrieben und auf die ursprünglichen + % % Urheber verwiesen wird. Eine kommerzielle Nutzung ist + % % ausdrücklich ausgeschlossen. + % % + % % Die Namensnennung durch einen Verweis und die Lizenzangabe der + % % ursprünglichen Urheber auf den Materialien für Schülerinnen und + % % Schüler ist erforderlich. + % % + % % Die vollständige Sammlung der Dokumente steht unter + % % http://ddi.uni-wuppertal.de/material/materialsammlung/ zur + % % Verfügung. + % % + % % Das LaTeX-Paket zum Setzen der Dokumente der Sammlung steht unter + % % http://www.ctan.org/pkg/ zur Verfügung. + % % + % % ----- BEGIN ------------------------------------------------------ + \begin{example}[gobble=12] + \begin{tikzpicture}[remember picture] + \begin{object}[text width=5.5cm]{gustavsRadiowecker}{-3,0} + \attribute{standort = \diastring{Gustavs Zimmer}} + \attribute{weckzeit = \diastring{6:30}} + \attribute{weckmodusAktiv = \diastring{Wahr}} + \attribute{hatLautsprecher = \anchormark{hatLautsprecher}[0.025]} + \operation{einschalten()} + \operation{ausschalten()} + \operation{alarmAusloesen()} + \end{object} + \begin{object}[text width=4.5cm]{gustav}{-10,0} + \attribute{name = \diastring{Gustav Grabert}} + \attribute{geburtstag = \diastring{3.10.1998}} + \attribute{besitzt =\anchormark{besitzt}[0.025]} + \attribute{kennt =\anchormark{gKennt}[0.025]} + \end{object} + \begin{object}[text width=4.5cm]{fridolin}{-10,-4} + \attribute{name = \diastring{Fridolin Wagner}} + \attribute{geburtstag = \diastring{1.4.1999}} + \attribute{kennt =\anchormark{fKennt}[0.025]} + \end{object} + \begin{object}[text width=5.2cm]{lautsprecher}{-3,-5} + \attribute{untereFrequenzInHertz = 100} + \attribute{obereFrequenzInHertz = 18000} + \end{object} + + \draw (hatLautsprecher) -- (lautsprecher.north); + \draw (gKennt.south east) -- (fridolin.north); + \draw (besitzt.east) -- (gustavsRadiowecker.west); + \draw (fKennt.east) -- ($(fKennt.east)+(3.5,0)$) + -| ($(gustav.south)+(3,0.2)$) -- ($(gustav.south east) + +(-0.01,0.2)$); + \end{tikzpicture} + \end{example} + % % ----- END ------------------------------------------------------ +\end{commands} + +\subsection{Sequenzdiagramme} +\label{fach:informatik:sequenz} +\begin{commands} + \command{skaliereSequenzdiagramm}[\marg{Faktor}] + \achtung{Sollte nicht mehr verwendet werden: Besser resizebox oder scalebox} + + Da es vorkommen kann, dass Sequenzdiagramme zu breit für eine Seite sind, kann mit dem Befehl \cs{skaliereSequenzdiagramm}\marg{Faktor} die Größe des Sequenzdiagramms angepasst werden, wenn er innerhalb der Umgebung \env{sequencediagram} ausgeführt wird. + + \command{newthreadtwo}[\oarg{Farbe}\marg{Bezeichnung}\marg{Name}\marg{Abstand}] + Threads haben im Gegensatz zu Instanzen im Paket \pkg{pgf-umlsd} immer einen festen Abstand zu den Nachbarn. Durch den neuen Befehl \cs{newthreadtwo} ist es über den dritten Parameter möglich, diesen Abstand zu verändern. Dabei verhält sich der neue Parameter für den Abstand genauso wie der zugehörige optionale Parameter bei Instanzen. + + \begin{example}[gobble=12] + \begin{sequencediagram} + \newthread{fritz}{fritz} + \newthreadtwo{mutter}{mutter}{3cm} + \newinst[2]{wecker}{wecker} + \newinst[2]{lampe}{lampe} + + \begin{callself}[2]{fritz}{schlafe()}{} + \end{callself} + \begin{call}{fritz}{gibUhrzeit()}{wecker}{\diastring{5:30}} + \end{call} + \begin{callself}[2]{fritz}{schlafe()}{} + \begin{call}{mutter}{gibUhrzeit()}{wecker}{\diastring{6:30}} + \end{call} + \begin{call}{mutter}{schalteAn()}{lampe}{} + \end{call} + \begin{call}{mutter}{weckeAuf()}{fritz}{} + \end{call} + \end{callself} + \end{sequencediagram} + \end{example} + + \command{nextlevel} Im Paket für Sequenzdiagramme ist vorgesehen, dass man mit \cs{prevlevel} wieder einen Schritt nach oben gehen kann. Zusätzlich wird ein Befehl \cs{nextlevel} bereitgestellt, mit dem man auch einen zusätzlichen Schritt nach unten gehen kann, um ggf. etwas mehr Platz und Abstand zu schaffen. + +\end{commands} + +\subsection{Struktogramme} +Mit dem Paket \pkg{struktex} lassen sich sehr einfach Struktogramme setzen: + +\begin{example}[gobble=4] + \begin{struktogramm}(130,60)[koche Kaffee] + \assign{F"ulle 1 Liter Wasser in die Kaffekanne} + \assign{Gie"se das Wasser in den Wasserbeh"alter} + \assign{Lege eine Filtert"ute in den Filter} + \ifthenelse{5}{5}{Sind die Kaffeetrinker m"ude?}{Ja}{Nein} + \assign{Gib 6 L"offel Pulver hinein} + \change + \assign{Gib 5 L"offel Pulver hinein} + \ifend + \assign{Dr"ucke auf den Start-Knopf} + \while{Solange der Kaffee noch nicht durchgelaufen ist} + \assign{Warte ungeduldig} + \whileend + \assign{Gie"se den Kaffee in die Tasse} + \assign{Trinke den Kaffee aus der Tasse} + \end{struktogramm} +\end{example} + +\subsection{Syntaxdiagramme} +Für ein Beispiel siehe \prettyref{paket:syntaxdi}. + +\subsection{Flussdiagramme} +Für Flussdiagramme, bzw. Programmablaufpläne steht der Style \verbcode|pap| bereit, der in \env{tikzpicture} genutzt werden kann. Damit werden \cs{node} ein entsprechendes Aussehen gegeben. Es stehen zur Verfügung: +\begin{description} + \item[startstop] Für den Beginn bzw. das Ende eines Ablaufs, als Rechteck mit runden Ecken. + \item[verzweigung] Für Abfragen und Wiederholungen als Diamant. + \item[aktion] Einfache Aktionen in einem Rechteck. + \item[einausgabe] Ein Rhomboid wird für Ein- oder Ausgaben genutzt. + \item[unterprogramm] Ein Rechteck ergänzt um freie Flächen auf der linken und rechten Seite stellt den Aufruf eines Unterprogramms dar. +\end{description} + +Weiterhin können Linien mit dem Style \verbcode|linie| versehen werden, um diese deutlicher darzustellen. + +\begin{example}[gobble=4] + \begin{tikzpicture}[pap] + \node[startstop] (s1){Los!}; + \node[verzweigung, below = of s1] (v1) {Lieblingsfach Informatik?}; + \node[unterprogramm, right = of v1] (up1) {\nodepart[text width=7em]{two} Pro\-gram\-mie\-re ein Spiel}; + \node[aktion, below = of up1] (a1) {fuehre es aus!}; + \node[einausgabe, below = of v1] (ea1) {ERROR 1337}; + \node[startstop, below = of ea1] (e1){Ende}; + + \draw[linie] (s1)--(v1); + \draw[linie] (v1)--(up1) node[near start, above] {ja}; + \draw[linie] (v1)--(ea1) node[near start, right] {nein}; + \draw[linie] (up1)--(a1); + + \draw[linie] (a1) |- ($(e1.north) + (0,0.5)$); + \draw[linie] (ea1)--(e1); + \end{tikzpicture} +\end{example} |