\documentclass[a4paper,twoside,12pt]{article}
%\usepackage [reqno] {amsmath}
\usepackage{amsfonts,amstext}
\usepackage{amsmath}
\usepackage{german}
\usepackage{graphicx}
\usepackage{fullpage}
\usepackage{verbatim}

\newcommand{\ZETTELNUMMER}{7}
\newcommand{\ABGABEDATUM}{am 14. Juni 2016 bis 12 Uhr in die
Tutorenf\"acher}

\newcounter{AUFGNR}
\setcounter{AUFGNR}{1}
\newcommand{\AUFGABE}[2]{\vspace{0.3cm}\item[Aufgabe~\arabic{AUFGNR}]\stepcounter{AUFGNR} #1\hfill\emph{#2}}


\newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor}
\newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil}
\newcommand{\half}[1]{\frac{#1}{2}}



\renewcommand{\labelenumi}{(\alph{enumi})}
\renewcommand{\labelenumii}{(\roman{enumii})}


\begin{document}
\pagestyle{empty}
\hrule\medskip
\rule{0ex}{0ex}\\[-1ex]
\ZETTELNUMMER. Aufgabenblatt zur Vorlesung

\smallskip
\noindent
\large
\textbf{Informatik B}\hfill SoSe 2016 \\[0.5ex]
\normalsize
Wolfgang Mulzer

\medskip\hrule

\smallskip
\noindent
\textbf{Abgabe} \ABGABEDATUM

\vskip 0.5cm


\begin{description}

\AUFGABE{O-Notation}{10 Punkte}

Wahr oder falsch? Geben Sie jeweils einen Beweis oder 
ein Gegenbeispiel. Hierbei seien jeweils 
$f, g: \mathbb{N} \rightarrow \mathbb{R}^+$ Funktionen.
\begin{enumerate}
  \item $\max\{f(n),g(n)\} = \Theta(f(n)+g(n))$. 
  \item Wenn $f(n) = O(g(n))$, dann 
        ist $2^{f(n)} = O\bigl(2^{g(n)}\bigr)$.
   \item Wenn $f(n) = \Theta(g(n))$ ist, dann
      ist $g(n) = \Theta(f(n))$.
   \item Wenn $f(n) = O(g(n))$ ist, dann ist $f(n) = o(g(n))$.
   \item Es gilt immer $f(n) = O(g(n))$ oder $f(n) = \Omega(g(n))$.
\end{enumerate}

\AUFGABE{Java I}{10 Punkte}

\begin{enumerate}
\item
Schreiben Sie ein Java-Programm, das f\"ur eine positive ganzzahlige 
Eingabe $n$ alle Primzahlen kleiner gleich $n$ auf dem Bildschirm ausgibt.
\item
Schreiben Sie ein Java-Programm, das f\"ur eine gegebene 
Jahreszahl zwischen 1 und 2016 diese in r\"omischer Darstellung ausgibt.
\end{enumerate}

Machen Sie geeignete Testl\"aufe,
und achten Sie auf eine angemessene Fehlerbehandlung und Dokumentation
Ihres Programms.

\AUFGABE{Java II }{10 Punkte}

Betrachten Sie das folgende Java-Codefragment:

\begin{verbatim}
int[][] a = {{2,4,6,8},{1,2,3},{3,4,5}};
int[][] b = a;
int[][] c = (int[][]) a.clone();
c[2] = a[1];
c[2][1] = 6;
b[2][2] = 7;
for(int i=0; i < a.length; i++) { 
  a[i][i]++; 
}
\end{verbatim}

Zeichen Sie den Zustand des Speichers und
der Referenzvariablen nach jeder Anweisung.
Welche Werte haben die Ausdr\"ucke: 
\texttt{(a[1] == c[1])}, \texttt{(b[2] == c[2])}, \texttt{(a == c)},
\texttt{b[2][2]}, \texttt{c[1][1]} und \texttt{c[2][2]}?
Begr\"unden Sie Ihre Antworten.

\end{description}
\end{document}
