\documentclass{schuleab}
\usepackage[utf8]{inputenc}
\usepackage{schulinf}

% Dieses Dokument ist in der Zusammenarbeit von Informatikreferendaren und
% ehemaligen Informatikreferendaren der Studienseminare (heute ZfsL) Arnsberg,
% Hamm und Solingen entstanden.
%
% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0
% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de
%
% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden,
% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben
% und auf die ursprünglichen Urheber verwiesen wird.
% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen.
%
% Die Namensnennung durch einen Verweis und die Lizenzangabe der ursprünglichen
% Urheber auf den Materialien für Schülerinnen und Schüler ist erforderlich.
%
% Die Sammlung der Dokumente steht unter
% http://ddi.uni-wuppertal.de/material/materialsammlung/
% zur Verfügung.
%
% Das LaTeX-Paket zum Setzen der Dokumente der Sammlung steht
% unter  http://www.ctan.org/pkg/schule
% zur Verfügung.

\usepackage[pdfauthor={Referendare der Informatikfachseminare Arnsberg, Hamm und Solingen}]{hyperref}
\includexmp{lizenz}
\cclizenz{byncsaeu}
\footerQRLink{materialsammlung_qr_url.pdf}

\svnid{$Id: ab_02_buch-python.tex 1467 2016-03-25 10:56:54Z pieper $}

\dokName{Buchkauf}
\jahrgang{EF}

\begin{document}

\section*{Die Klasse Buch und ihre Implementierung}

\begin{minipage}[m]{0.48\textwidth}%
    \begin{tikzpicture}
        \scaleSequenzdiagramm{0.9}
        \begin{class}[text width=70mm]{Buch}{0,0}
                \attribute{thema: Zeichenkette}
                \attribute{gelesen: Wahrheitswert}

                \operation{!\_\_init\_\_(festesThema: Zeichenkette)}
                \operation{!setzeGelesen(neuerWert: Wahrheitswert)}
                \operation{?gibGelesen(): Wahrheitswert}
                \operation{!setzeThema(neuesThema: Zeichenkette)}
                \operation{?gibThema(): Zeichenkette}
        \end{class}
    \end{tikzpicture}
\end{minipage}
\begin{minipage}[m]{0.5\textwidth}%
\begin{lstlisting}[language=Python,
                   numberfirstline=true, 
                   texcl=true,
                   escapechar=\%,
                   numbers=left, 
                   numberstyle=\tiny, 
                   stepnumber=1, 
                   numbersep=3pt, 
                   firstnumber=1]
class Buch:
    def __init__(self, festesThema):
        self.setzeThema(festesThema)
        self.setzeGelesen(False)        

    def setzeGelesen(self, neuerWert):
        self.gelesen= neuerWert
        
    def gibGelesen(self):
        return self.gelesen
        
    def setzeThema(self, neuesThema):
        self.thema = neuesThema

    def gibThema(self):
        return self.thema
\end{lstlisting}
\end{minipage}

\dotfill

Um für eine Klassenkarte den Quellcode in Python zu notieren,
findet sich links die Klassenkarte zu der Klasse \enquote{Buch} und rechts der
Quellcode für die Klasse \enquote{Buch} in der Programmiersprache Python.

\dotfill

\begin{aufgaben}
 \item Markieren Sie (möglichst mit verschiedenen Farben) die Bezeichner, die
  Sie links finden und ihre Entsprechnungen auf der rechten Seite.

  Verbinden Sie die zusammengehörenden Bezeichner rechts und links.

 \item Nachdem Sie den ersten Arbeitsauftrag erledigt haben, sollten Sie
 \begin{alphaEnum}
  \item in der Lage sein, zukünftige einfache »setze« und die »gib« Methoden
   für Attribute zu programmieren,  
  \item sehen, dass es Elemente gibt, denen auf der jeweilig »anderen« Seite
   eine Entsprechung fehlt, 
  \item überlegen, was die Methoden machen, wenn sie aktiviert werden --
    beschreiben Sie dies mit Ihren Worten. 
  \end{alphaEnum}
\end{aufgaben}
        
\end{document}
