\begin{slide}{Aufgaben zum Testen und Verifizieren}

\begin{itemize}
\item
  Aufgabe zu \verb|x = x + y; y = x - y; x = x - y;|
\item
  Aufgabe zu schnellem Potenzieren
\item
  Wie lautet die Spezifikation f�r
\begin{verbatim}
static void sort (int [] a);
\end{verbatim}
  Reicht das:
\begin{verbatim}
public void testSort () {
    int [] a = { 4,2,3,1,5 };
    sort (a);
    assertMonotonSteigend (a);
}
\end{verbatim}

\item
  implementiere eine Sortiermethode,
  die zum Zugriff auf das zu sortierende Array
  \emph{nur} \verb|swap_if_gt| benutzt
  (d. h. \emph{keine} weiteren Elementvergleiche 
  oder Zuweisungen ausf�hrt)
\begin{verbatim}
static void swap (int [] a, int i, int j) {
    int h = a[i]; a[i] = a[j]; a[j] = h;
}
static void swap_if_gt 
  (int [] a, int i, int j) {
    if (a[i] > a[j]) { swap (a, i, j); }
}
\end{verbatim}
\item
  Hinweis: zwei Schleifen. Welches sind die Invarianten?
\item
  siehe auch autotool-Aufgaben (Sortiernetze)
\end{itemize}

\end{slide}
