code.tex

\documentclass[a4paper]{scrartcl}

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{amsmath}
\usepackage{algorithmic}
\usepackage{algorithm}
\usepackage{listings}
\usepackage{color}
\usepackage{beramono}

\definecolor{DarkPurple}{rgb}{0.4,0.1,0.4}
\definecolor{DarkCyan}{rgb}{0.0,0.5,0.4}
\definecolor{LightLime}{rgb}{0.3,0.5,0.4}
\definecolor{Blue}{rgb}{0.0,0.0,1.0}

\lstdefinestyle{MeinStyle}
{
language=Java,
columns=flexible,
numbers=left,
frame=single,
frameround=tttt,
showstringspaces=false,
basicstyle=\footnotesize\ttfamily,
keywordstyle=\bfseries\color{DarkPurple},
commentstyle=\itshape\color{LightLime},
stringstyle=\color{Blue}
}

\title{Pseudocode und Quellcode}
\author{Julian Fietkau}
\date{2. Januar 1970}

\begin{document}

\section*{Mein erster Pseudocode}

Euklids Algorithmus zur Berechnung des größten
gemeinsamen Teilers zweier positiver ganzer Zahlen kann
ausgeführt werden wie folgt:

\begin{algorithm}
\begin{algorithmic}[1]
  \REQUIRE $a$ und $b$ sind positive ganze Zahlen.
  \WHILE{$b \neq 0$}
    \STATE $t \gets b$
    \COMMENT{$t$ ist eine temporäre Variable.}
    \STATE $b \gets a \bmod b$
    \STATE $a \gets t$
  \ENDWHILE
  \RETURN $a$
\end{algorithmic}
\label{alg:euklid}
\caption{Dies ist der Euklid-Algorithmus zum Berechnen
des größten gemeinsamen Teilers.}
\end{algorithm}

\section*{Mein erster "`richtiger"' Code}

Umgesetzt in Java könnte der Euklid-Algorithmus
ungefähr aussehen wie folgt:

\begin{lstlisting}[style=MeinStyle]
class Euklid {
    public int gcd(int a, int b) {
        assert a > 0 : "a muss groesser sein als 0!";
        assert b > 0 : "b muss groesser sein als 0!";
        while(a != 0) {
            int t = a; // t ist eine temporaere Variable.
            b = a % b;
            a = t;
        }
        return a;
    }
}
\end{lstlisting}

\end{document}