beispiel.tex 6.59 KB
Newer Older
Mario Albrecht's avatar
Mario Albrecht committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
\documentclass[a4paper,10pt,ngerman]{scrartcl}
\usepackage{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage[a4paper,margin=2.5cm,footskip=0.5cm]{geometry}

% Die nächsten drei Felder bitte anpassen:
\newcommand{\Aufgabe}{Aufgabe 1: \LaTeX-Dokument} % Aufgabennummer und Aufgabennamen angeben
\newcommand{\TeamID}{00000}       % Team-ID aus dem PMS angeben
\newcommand{\TeamName}{Name} % Team-Namen angeben
\newcommand{\Namen}{Vor- und Nachnamen} % Namen der Bearbeiter/-innen dieser Aufgabe angeben
 
% Kopf- und Fußzeilen
\usepackage{scrlayer-scrpage, lastpage}
\setkomafont{pageheadfoot}{\large\textrm}
\lohead{\Aufgabe}
\rohead{Team-ID: \TeamID}
\cfoot*{\thepage{}/\pageref{LastPage}}

% Position des Titels
\usepackage{titling}
\setlength{\droptitle}{-1.0cm}

% Für mathematische Befehle und Symbole
\usepackage{amsmath}
\usepackage{amssymb}

% Für Bilder
\usepackage{graphicx}

% Für Algorithmen
\usepackage{algpseudocode}

% Für Quelltext
\usepackage{listings}
\usepackage{color}
\definecolor{mygreen}{rgb}{0,0.6,0}
\definecolor{mygray}{rgb}{0.5,0.5,0.5}
\definecolor{mymauve}{rgb}{0.58,0,0.82}
\lstset{
  keywordstyle=\color{blue},commentstyle=\color{mygreen},
  stringstyle=\color{mymauve},rulecolor=\color{black},
  basicstyle=\footnotesize\ttfamily,numberstyle=\tiny\color{mygray},
  captionpos=b, % sets the caption-position to bottom
  keepspaces=true, % keeps spaces in text
  numbers=left, numbersep=5pt, showspaces=false,showstringspaces=true,
  showtabs=false, stepnumber=2, tabsize=2, title=\lstname
}
\lstdefinelanguage{JavaScript}{ % JavaScript ist als einzige Sprache noch nicht vordefiniert
  keywords={break, case, catch, continue, debugger, default, delete, do, else, finally, for, function, if, in, instanceof, new, return, switch, this, throw, try, typeof, var, void, while, with},
  morecomment=[l]{//},
  morecomment=[s]{/*}{*/},
  morestring=[b]',
  morestring=[b]",
  sensitive=true
}

% Diese beiden Pakete müssen zuletzt geladen werden
%\usepackage{hyperref} % Anklickbare Links im Dokument
\usepackage{cleveref}

% Daten für die Titelseite
\title{\textbf{\Huge\Aufgabe}}
\author{\LARGE Team-ID: \LARGE \TeamID \\\\
	    \LARGE Team-Name: \LARGE \TeamName \\\\
	    \LARGE Bearbeiter/-innen dieser Aufgabe: \\ 
	    \LARGE \Namen\\\\}
\date{\LARGE\today}

\begin{document}

\maketitle
\tableofcontents

\vspace{0.5cm}

\noindent\textbf{Anleitung:} Trage oben in den Zeilen 8 bis 11 die Aufgabennummer, 
die Team-ID, den Team-Namen und alle Bearbeiter/-innen dieser Aufgabe mit Vor- und Nachnamen ein.
Vergiss nicht, auch den Aufgabennamen anzupassen (statt "`\LaTeX-Dokument"')!\\
   
\noindent Dann kannst du dieses Dokument mit deiner \LaTeX-Umgebung übersetzen.\\

\noindent Die Texte, die hier bereits stehen, geben ein paar Hinweise zur
Einsendung. Du solltest sie aber in deiner Einsendung wieder entfernen!

\section{Lösungsidee}
Die Idee der Lösung sollte hieraus vollkommen ersichtlich werden, ohne dass auf die eigentliche Implementierung Bezug genommen wird.

Der Text wird am besten mit Unterüberschriften strukturiert:
\subsection{Unterüberschrift}
\subsubsection{Unter-Unterüberschrift}
\paragraph{Benannter Absatz} Lorem ipsum.


\subsection{Mathematik}

\begin{align}
 a_0 & := 2 + 3 \\
   & = 3^2 - 2^2
\end{align}

\begin{align}\label{eq:toll}
 \sum_{i=0}^3 i = \prod_{i=1}^3 i = \frac{12}{2} = \sqrt[3]{216}
\end{align}

\begin{align*}
 f(x) \propto  x^2 \Leftrightarrow \exists r \in \mathbb R : \forall x: f(x) = r * x^2 \Rightarrow x \in \mathcal{O}(x^2)
\end{align*}

Mathematische Formeln erhalten normalerweise eine Nummer, die man referenzieren kann.
In \cref{eq:toll} zum Beispiel ist jeder Term gleich $6$.
Mathematische Formeln können auch im Fließtext gesetzt werden: $\sum_{i=0}^3 i = \prod_{i=1}^3 i = \frac{12}{2} = \sqrt[3]{216}.$

\subsection{Algorithmen}
\begin{algorithmic}
\If{$i\geq i_\text{max}$}
  \State $a\gets -1$
\ElsIf{$i\leq i_\text{min}$}
  \State $a\gets 1$
\Else
  \State $a\gets 0$
\EndIf
\For{$i$ from 1 to 10}
  \State $a\gets a + i$
\EndFor
\ForAll{$i$ in $Liste$}
  \State $a\gets a + i$
\EndFor
\While{$a > 0$}
  \State $a\gets a - 1$
\EndWhile
\Repeat
  \State $a\gets a - 1$
\Until{$a < 0$}
\Loop
  \State $i\gets$\Call{Increment}{$i$}
\EndLoop
\Function{Increment}{$a$}
  \State $a \gets a+1$
  \State \Return $a$
\EndFunction
\end{algorithmic}

\subsection{Bilder}

Bilder werden von \LaTeX nicht direkt da angezeigt, wo sie eingebunden wurden, sondern an passenden Stellen in der Nähe.
Das ist so beabsichtigt.
Man kann aber Bilder referenzieren.
Auf \cref{abb:bild1} sieht man irgendwas mit Informatik, auf \cref{abb:bild2} auch.

\begin{figure}
	\begin{center}
		\includegraphics[width=0.3\textwidth]{computerbild1.png}
		\caption{Ein Bild mit irgendwas mit Informatik (Lizenz: CC0)}
		\label{abb:bild1}
	\end{center}
\end{figure}

\begin{figure}
	\begin{center}
		\includegraphics[width=0.4\textwidth]{computerbild2.jpg}
		\caption{Ein anderes Bild mit irgendwas mit Informatik (Lizenz: CC0)}
		\label{abb:bild2}
	\end{center}
\end{figure}

Man kann Bilder fest positionieren, dann können sie aber keine Bildunterschrift haben und man kann sie nicht referenzieren. Zum Beispiel diese Veranschaulichung einer Queue (Warteschlange):
\begin{center}
	\includegraphics[width=0.4\textwidth]{queue.png}
\end{center}

\section{Umsetzung}
Hier wird kurz erläutert, wie die Lösungsidee im Programm tatsächlich umgesetzt wurde. Hier können auch Implementierungsdetails erwähnt werden.

\section{Beispiele}
Genügend Beispiele einbinden! Die Beispiele von der BwInf-Webseite sollten hier diskutiert werden, aber auch eigene Beispiele sind sehr gut – besonders wenn sie Spezialfälle abdecken. Aber bitte nicht 30 Seiten Programmausgabe hier einfügen!

\section{Quellcode}
Unwichtige Teile des Programms sollen hier nicht abgedruckt werden. Dieser Teil sollte nicht mehr als 2–3 Seiten umfassen, maximal 10.

\lstset{language=Pascal}          % Set your language (you can change the language for each code-block optionally)

\begin{lstlisting}[frame=single,language=Python,title=Kleines Python-Programm]
for i in range(100):
if i % 2 == 0:
pass
else:
print(i)
\end{lstlisting}

\begin{lstlisting}[frame=single,language=C++,title=Kleines C++-Programm]
#include <iostream>

int main(int argc, char** argv) {
std::cout << "Hallo";
return 0;
}
\end{lstlisting}

Hier noch ein kurzes Pascal-Snippet ohne Rahmen:
\begin{lstlisting}[language=Pascal]
for i := maxint to 0 do
begin
a := a + i
end;
Write('Case insensitive ');
Write('Pascal keywords.');
\end{lstlisting}

Das folgende Programm wird aus einer Datei geladen:
\lstinputlisting[frame=single,language=JavaScript,title=Großes JS-Programm]{source.js}

\end{document}