diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2024-07-13 12:17:28 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2024-07-13 12:18:03 +0200 |
| commit | dee46ae2bf06373def1d7e0d0a8375198089efdb (patch) | |
| tree | 44d7ffc9d2fe39ba6caaed3befecb70dc3a1df8d | |
| parent | f381cd2c7414e218db5d676cf6d6669e1853c258 (diff) | |
| download | unterricht-dee46ae2bf06373def1d7e0d0a8375198089efdb.tar.gz unterricht-dee46ae2bf06373def1d7e0d0a8375198089efdb.zip | |
move rennbahn material from lesson to dedicated rennbahn dir
| l--------- | Info/23_24/07/09/9B/img/greenfoot_buttons.png | 1 | ||||
| -rw-r--r-- | Info/23_24/07/09/9B/img/rennbahn.png | bin | 14491 -> 0 bytes | |||
| l--------- | Info/23_24/07/09/9B/topic | 1 | ||||
| -rw-r--r-- | Info/9/3/Rennbahn/.gitignore | 1 | ||||
| -rw-r--r-- | Info/9/3/Rennbahn/img/rennbahn.jpg | bin | 0 -> 13705 bytes | |||
| -rw-r--r-- | Info/9/3/Rennbahn/modellierung_handout.tex | 58 | ||||
| -rw-r--r-- | Info/9/3/Rennbahn/slides.md (renamed from Info/23_24/07/09/9B/slides.md) | 41 |
7 files changed, 91 insertions, 11 deletions
diff --git a/Info/23_24/07/09/9B/img/greenfoot_buttons.png b/Info/23_24/07/09/9B/img/greenfoot_buttons.png deleted file mode 120000 index a1c2dfa2..00000000 --- a/Info/23_24/07/09/9B/img/greenfoot_buttons.png +++ /dev/null @@ -1 +0,0 @@ -../../../../../9/3/SpaceInvaders/img/greenfoot_buttons.png
\ No newline at end of file diff --git a/Info/23_24/07/09/9B/img/rennbahn.png b/Info/23_24/07/09/9B/img/rennbahn.png Binary files differdeleted file mode 100644 index 95c7c7ef..00000000 --- a/Info/23_24/07/09/9B/img/rennbahn.png +++ /dev/null diff --git a/Info/23_24/07/09/9B/topic b/Info/23_24/07/09/9B/topic new file mode 120000 index 00000000..58956f92 --- /dev/null +++ b/Info/23_24/07/09/9B/topic @@ -0,0 +1 @@ +../../../../9/3/Rennbahn
\ No newline at end of file diff --git a/Info/9/3/Rennbahn/.gitignore b/Info/9/3/Rennbahn/.gitignore new file mode 100644 index 00000000..d9c38090 --- /dev/null +++ b/Info/9/3/Rennbahn/.gitignore @@ -0,0 +1 @@ +*modellierung_handout.pdf diff --git a/Info/9/3/Rennbahn/img/rennbahn.jpg b/Info/9/3/Rennbahn/img/rennbahn.jpg Binary files differnew file mode 100644 index 00000000..37e253c8 --- /dev/null +++ b/Info/9/3/Rennbahn/img/rennbahn.jpg diff --git a/Info/9/3/Rennbahn/modellierung_handout.tex b/Info/9/3/Rennbahn/modellierung_handout.tex new file mode 100644 index 00000000..2a27f6ed --- /dev/null +++ b/Info/9/3/Rennbahn/modellierung_handout.tex @@ -0,0 +1,58 @@ +\documentclass[a5paper]{handout} +\csname endofdump\endcsname +\usepackage{minted} + +\title{Von der Klassenkarte zum Code} + +\begin{document} +\thispagestyle{empty} +\makedate + +\begin{defbox}{Klassenkarte $\Rightarrow$ Code} +\iftoggle{lehrerversion}{\iftrue}{\iffalse} +\begin{tabular}{p{0.5\textwidth} p{0.5\textwidth}} +\vspace{0.1cm} +\begin{tikzpicture} +\begin{class}[text width=4cm]{Auto}{0, 0} +\attribute{geschwindigkeit} +\attribute{farbe} +\operation{fahren()} +\end{class} + +\draw[->] (Auto) edge[above, red] node {1.} ($(Auto.north east) + (1, 0)$); +\draw[->] (Auto) edge[above, blue] node {2.} ($(Auto.east) + (1, 0)$); +\draw[->] (Auto) edge[above, teal] node {3.} ($(Auto.south east) + (1, 0)$); +\end{tikzpicture} +& +\vspace{-0.25cm} +\begin{minted}[]{java} +public class Auto +{ + int geschwindigkeit; + String farbe; + + public void fahren() { + ... + } +} +\end{minted} +\\ +\end{tabular} +\else +\vspace{7cm} +\fi +\end{defbox} + +\section*{Schritte} +\begin{enumerate}[itemsep=0.2cm] +\item \textcolor{red}{Klasse} mithilfe des \gap{{\Huge Klassennamen}} definieren. +\item \textcolor{blue}{Attribute} mit geeigneten \gap{{\Huge Datentypen}} deklarieren. +\vspace{0.3cm} +\item \textcolor{teal}{Methoden} mit geeignetem \iflehrer{{\Huge Rückgabetyp und Parametern}}{\ruletoend{0.1pt} \\} + definieren. +\end{enumerate} + +\subsection*{Hinweis \faIcon{lightbulb}} +Attribute sind wie Variablen mit dem Unterschied, dass sie innerhalb eines Objekts gültig sind. +Das bedeutet Attribute können, ohne neu deklariert werden zu müssen, in mehreren Methoden verwendet werden. +\end{document} diff --git a/Info/23_24/07/09/9B/slides.md b/Info/9/3/Rennbahn/slides.md index d20f010e..443773fe 100644 --- a/Info/23_24/07/09/9B/slides.md +++ b/Info/9/3/Rennbahn/slides.md @@ -7,7 +7,7 @@ header-includes: | ## Rennbahn \vspace{-0.75cm} -{.center} +{.center} ## \faIcon{pencil-alt} Arbeitsauftrag - Modellierung 5 min {.standout} @@ -15,7 +15,7 @@ Erstelle eine Klassendiagramm (mehrere Klassenkarten) zu allen Klassen, die du b ## Greenfoot und die geheimnisvollen Knöpfe -{.center} +{.center} ### Act @@ -23,7 +23,7 @@ Ruft die `act`-Methode jedes Actors [einmal]{.underline} auf. ### Run -Startet eine Wiederholug und ruft während jedem Schritt die `act`-Methode jedes Actors auf. +Startet eine Wiederholug und ruft in jedem Schritt die `act`-Methode jedes Actors auf. ## Von der Klassenkarte zum Code @@ -35,13 +35,25 @@ Startet eine Wiederholug und ruft während jedem Schritt die `act`-Methode jedes \attribute{farbe} \operation{bewegen()} \end{class} +\only<1>{ +\draw[->, opacity=0] (Auto) edge[above, red] node {1.} ($(Auto.north east) + (1, 2)$); +} +\only<2->{ +\draw[->] (Auto) edge[above, red] node[] {1.} ($(Auto.north east) + (1, 2)$); +} +\only<3->{ +\draw[] ($(Auto.east) + (0, 0.5)$) edge[->, left, blue] node[] {2.} ($(Auto.east) + (1, 1.5)$); +} +\only<4->{ +\draw[] ($(Auto.south east) + (0, 0.5)$) edge[->, above, teal] node {3.} ($(Auto.south east) + (1, 1)$); +} \end{tikzpicture} :::: :::: {.column width=60%} ```java -public class Auto // Klassendefinition -{ // Attribute +public class Auto { // Klassendefinition + // Attribute int geschwindigkeit; String farbe; @@ -132,17 +144,16 @@ public Auto() { // Konstruktor * Kopiere das Greenfoot-Projekt **Rennbahn** aus dem Vorlagen-Laufwerk und öffne es in Greenfoot. * Ergänze den **Konstruktor** der Klasse `Auto` * Der Konstruktor soll die `geschwindigkeit` auf 2 initialisieren -* **Fuer Schnelle**: +* **Für Schnelle**: Erzeuge ein Auto und eine Rakete im Konstruktor der Klasse `Rennbahn`. - Positioniere das Auto (`addObject(object, x, y)`{.java}) an Position $(90 | 700)$. - Positioniere die Rakete an Position $(220 | 700)$. + Positioniere das Auto an Position $(90 | 700)$ und die Rakete an Position $(220 | 700)$ (`addObject(object, x, y)`{.java}). ## \faIcon{pencil-alt} Konstruktor \only<2->{mit Parametern} ### \faIcon{lightbulb} Was wenn die Attributwerte nicht immer gleich sein sollen? \pause -$\Rightarrow$ Wir können dem Konstruktor Parameter übergeben. +$\Rightarrow$ Der Konstruktor ist eine [Methode]{.underline}, der wir \boldred{Parameter} übergeben können. \vspace{0.5cm} ::: {.columns align=center} @@ -166,10 +177,20 @@ $\Rightarrow$ Wir können dem Konstruktor Parameter übergeben. :::: ::: +\pause +```java +public class Auto { + public Auto(PARAMETER) { + geschwindigkeit = ...; + farbe = ...; + } +... +``` + ## \faIcon{desktop} Arbeitsauftrag - `Auto` **Konstruktor** mit Parametern \large * Ergänze den Konstruktor der Klasse `Auto`: * die Geschwindigkeit soll angegeben werden können - * die Farbe soll angegeben werden können + * die Farbe soll angegeben werden können \vspace{0.5cm} * **Für Schnelle:** Implementiere eine neue Klasse `Bus` als Unterklasse von `Actor` mit Geschwindigkeit 1. |
