aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2024-07-13 12:17:28 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2024-07-13 12:18:03 +0200
commitdee46ae2bf06373def1d7e0d0a8375198089efdb (patch)
tree44d7ffc9d2fe39ba6caaed3befecb70dc3a1df8d
parentf381cd2c7414e218db5d676cf6d6669e1853c258 (diff)
downloadunterricht-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.png1
-rw-r--r--Info/23_24/07/09/9B/img/rennbahn.pngbin14491 -> 0 bytes
l---------Info/23_24/07/09/9B/topic1
-rw-r--r--Info/9/3/Rennbahn/.gitignore1
-rw-r--r--Info/9/3/Rennbahn/img/rennbahn.jpgbin0 -> 13705 bytes
-rw-r--r--Info/9/3/Rennbahn/modellierung_handout.tex58
-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
deleted file mode 100644
index 95c7c7ef..00000000
--- a/Info/23_24/07/09/9B/img/rennbahn.png
+++ /dev/null
Binary files differ
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
new file mode 100644
index 00000000..37e253c8
--- /dev/null
+++ b/Info/9/3/Rennbahn/img/rennbahn.jpg
Binary files differ
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}
-![](img/rennbahn.png){.center}
+![](img/rennbahn.jpg){.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
-![](img/greenfoot_buttons.png){.center}
+![](greenfoot_buttons.png){.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.