Template for Theoretische Informatik Uni Tübingen
Forfatter
Pascal Müller
Sidst opdateret
6 år siden
Licens
Creative Commons CC BY 4.0
Resumé
A template for Theoretische Informatik Uni Tübingen
A template for Theoretische Informatik Uni Tübingen
% ----------------------- TODO ---------------------------
% Diese Daten müssen pro Blatt angepasst werden:
\newcommand{\NUMBER}{1}
\newcommand{\EXERCISES}{5}
% Diese Daten müssen einmalig pro Vorlesung angepasst werden:
\newcommand{\COURSE}{Theoretische Informatik}
\newcommand{\TUTOR}{Vorname Nachname}
\newcommand{\STUDENTA}{John Doe}
\newcommand{\STUDENTB}{Jane Doe}
\newcommand{\STUDENTC}{Max Mustermann}
\newcommand{\DEADLINE}{XX.0X.2019}
% ----------------------- TODO ---------------------------
\documentclass[a4paper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{fancyhdr}
\usepackage{color}
\usepackage{graphicx}
\usepackage{lastpage}
\usepackage{listings}
\usepackage{tikz}
\usepackage{pdflscape}
\usepackage{subfigure}
\usepackage{float}
\usepackage{polynom}
\usepackage{hyperref}
\usepackage{tabularx}
\usepackage{forloop}
\usepackage{geometry}
\usepackage{listings}
\usepackage{fancybox}
\usepackage{tikz}
\usepackage{algpseudocode,algorithm,algorithmicx}
%Definiere Let-Command für algorithmen
\newcommand*\Let[2]{\State #1 $\gets$ #2}
\input kvmacros
%Größe der Ränder setzen
\geometry{a4paper,left=3cm, right=3cm, top=3cm, bottom=3cm}
%Kopf- und Fußzeile
\pagestyle {fancy}
\fancyhead[L]{Tutor: \TUTOR}
\fancyhead[C]{\COURSE}
\fancyhead[R]{\today}
\fancyfoot[L]{}
\fancyfoot[C]{}
\fancyfoot[R]{Seite \thepage /\pageref*{LastPage}}
%Formatierung der Überschrift, hier nichts ändern
\def\header#1#2{
\begin{center}
{\Large Übungsblatt #1}\\
{(Abgabetermin #2)}
\end{center}
}
%Definition der Punktetabelle, hier nichts ändern
\newcounter{punktelistectr}
\newcounter{punkte}
\newcommand{\punkteliste}[2]{%
\setcounter{punkte}{#2}%
\addtocounter{punkte}{-#1}%
\stepcounter{punkte}%<-- also punkte = m-n+1 = Anzahl Spalten[1]
\begin{center}%
\begin{tabularx}{\linewidth}[]{@{}*{\thepunkte}{>{\centering\arraybackslash} X|}@{}>{\centering\arraybackslash}X}
\forloop{punktelistectr}{#1}{\value{punktelistectr} < #2 } %
{%
\thepunktelistectr &
}
#2 & $\Sigma$ \\
\hline
\forloop{punktelistectr}{#1}{\value{punktelistectr} < #2 } %
{%
&
} &\\
\forloop{punktelistectr}{#1}{\value{punktelistectr} < #2 } %
{%
&
} &\\
\end{tabularx}
\end{center}
}
\begin{document}
% Hier nichts ändern
\begin{tabularx}{\linewidth}{m{0.2 \linewidth}X}
\begin{minipage}{\linewidth}
\STUDENTA\\
\STUDENTB\\
\STUDENTC
\end{minipage} & \begin{minipage}{\linewidth}
\punkteliste{1}{\EXERCISES}
\end{minipage}\\
\end{tabularx}
\header{Nr. \NUMBER}{\DEADLINE}
% ----------------------- TODO ---------------------------
% Hier werden die Aufgaben/Lösungen eingetragen:
\section*{Aufgabe 1}
\subsection*{a) Erstellung von Dokumenten mit LaTeX}
Dies ist eine Aufgabe. Text könnt ihr hier einfach ganz normal schreiben, jedoch bricht
Latex
nicht
die
Zeilen
um, wenn ihr im Editor eine neue Zeile anfangt.
Um einen Zeilenumbruch \\
zu erhalten \\
verwendet zwei Backslash.\\
Einen neuen Absatz erhaltet ihr, wenn ihr zwei Zeilenumbrüche einfügt.
Es gibt zwei Arten des Mathemodus, einen im Text $x_1 = 5 \cdot 10^{42}$ und einen freistehenden.
\[x_2 = \sqrt{ \sin{ \alpha \times \beta} \cdot \frac{a}{b}} + \log_2{64}\]
Wenn der Mathemodus sich über mehrere Zeilen erstrecken soll, so könnt ihr die Umgebung align benutzen. Der Stern sagt hierbei, dass die Zeilen nicht nummeriert werden sollen. Das \& ist ein align-parameter, die Zeilen werden hierbei so ausgerichtet, dass die \& immer über einander stehen.
\begin{align*}
\text{Text im Mathemodus} & = 5\\
x_2 &= 7\\
\Sigma + \phi + \epsilon + w &= \text{sinnlose Zeichen}
\end{align*}
Mengenklammern, die sich an der Größe des inneren orientieren, kann man so erzeugen
\[\left\{ \frac{2}{3} \cdot x \ \middle| \ x \in \mathbb{R} \right\} .\]
Ein Bild kann man folgendermaßen einbinden: \\
Entfernt dabei das \% und ersetzt Bild.jpg mit dem Dateinamen. \% kommentiert eine Zeile aus.
\begin{figure}[H]
\centering
%\includegraphics[width=11cm]{Bild.jpg}
\caption{Dies ist die Bildunterschrift}
\end{figure}
Eine Tabelle könnt ihr so anlegen:\\
In der zweiten geschweiften Klammer wird das Layout der Tabelle definiert. Das \& trennt hierbei die Spalten.\\
\ \\ %Trick um eine leere Zeile zu erhalten, gleichzeitig wird in der nächsten Zeile kein neuer Absatz begonnen
\begin{tabular}{c|lr}
zentrierte Spalte & linksbündig & rechtsbündig\\
\hline
zweite Zeile & \\
\end{tabular}\\
\ \\
Eine neue Seite wird durch $\backslash$newpage erzwungen.
\newpage
Das hier ist eine nummerierte Aufzählung
\begin{enumerate}
\item Erster Punkt
\item Zweiter Punkt
\end{enumerate}
und das hier ist eine Aufzählung ohne Nummerierung
\begin{itemize}
\item Erster Punkt
\item Zweiter Punkt
\end{itemize}
\subsection*{b) Zeichnen von Automaten}
Übergangsrelationen von Automaten können ihr mit dem Tool auf \url{http://madebyevan.com/fsm/} zeichnen.
Alternativ, wenn ihr mehr Kontrolle über die Platzierung der Nodes haben wollt, könnt ihr die Übergangsrelationen auch ohne das Tool direkt in TikZ definieren, siehe das Beispiel: \url{http://texample.net/tikz/examples/state-machine/}
\begin{center}
\begin{tikzpicture}[scale=0.2]
\tikzstyle{every node}+=[inner sep=0pt]
\draw [black] (18.5,-19.9) circle (3);
\draw (18.5,-19.9) node {$q_0$};
\draw [black] (31.3,-19.9) circle (3);
\draw (31.3,-19.9) node {$q_1$};
\draw [black] (24.7,-29.4) circle (3);
\draw (24.7,-29.4) node {$q_2$};
\draw [black] (24.7,-29.4) circle (2.4);
\draw [black] (11,-19.9) -- (15.5,-19.9);
\fill [black] (15.5,-19.9) -- (14.7,-19.4) -- (14.7,-20.4);
\draw [black] (21.5,-19.9) -- (28.3,-19.9);
\fill [black] (28.3,-19.9) -- (27.5,-19.4) -- (27.5,-20.4);
\draw (24.9,-19.4) node [above] {$a.b$};
\draw [black] (29.59,-22.36) -- (26.41,-26.94);
\fill [black] (26.41,-26.94) -- (27.28,-26.56) -- (26.46,-25.99);
\draw (28.6,-26.01) node [right] {$a,b$};
\draw [black] (23.06,-26.89) -- (20.14,-22.41);
\fill [black] (20.14,-22.41) -- (20.16,-23.36) -- (21,-22.81);
\draw (20.98,-25.97) node [left] {$a,b$};
\end{tikzpicture}
\end{center}
\subsection*{c) Pseudocode}
\begin{algorithm}
\caption{Zähle die Anzahl der Stellen, an der zwei Binärzahlen sich unterscheiden}
\begin{algorithmic}[1]
\Require{$x$ und $y$ sind Binärzahlen der gleichen Länge}
\Statex
\Function{Distance}{$x, y$}
\Let{$z$}{$x \oplus y$} \Comment{$\oplus$: bitweise exkulsives oder}
\Let{$\delta$}{$0$}
\For{$i \gets 1 \textrm{ to } n$} \Comment{$n$: Länge von $z$}
\If{$z_i \neq 0$} \Comment{$z_i$: $i$tes Bit von $z$}
\Let{$\delta$}{$\delta + 1$}
\EndIf
\EndFor
\State \Return{$\delta$}
\EndFunction
\end{algorithmic}
\end{algorithm}
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End: