aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitmodules3
m---------Info/10/2/Felder/Erderwaermung0
-rw-r--r--Info/10/2/Felder/slides.md243
-rw-r--r--Info/23_24/01/18/10B/schedule.md37
l---------Info/23_24/01/18/10B/topic1
5 files changed, 284 insertions, 0 deletions
diff --git a/.gitmodules b/.gitmodules
index 62db1c84..d65a83ec 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -13,3 +13,6 @@
[submodule "scripts/quiz"]
path = scripts/quiz
url = https://github.com/fischerling/quiz.git
+[submodule "Info/10/2/Felder/Erderwaermung"]
+ path = Info/10/2/Felder/Erderwaermung
+ url = git@gitlab.com:school1805723/tagestemperaturen.git
diff --git a/Info/10/2/Felder/Erderwaermung b/Info/10/2/Felder/Erderwaermung
new file mode 160000
+Subproject ae88484e066d41ef6e16939a02407d29f75aaef
diff --git a/Info/10/2/Felder/slides.md b/Info/10/2/Felder/slides.md
new file mode 100644
index 00000000..ac114e89
--- /dev/null
+++ b/Info/10/2/Felder/slides.md
@@ -0,0 +1,243 @@
+---
+author: Florian Fischer
+theme: metropolis
+aspectratio: 169
+header-includes: |
+ \makeatletter
+ \beamer@ignorenonframefalse
+ \makeatother
+---
+
+
+##
+
+\begin{tikzpicture}
+\node[rotate=0] {\includegraphics[keepaspectratio]{img/Copyrighted/polarbears.jpg}};
+\pause
+\node[rotate=-5] {\includegraphics[keepaspectratio]{img/Copyrighted/flood.jpg}};
+\pause
+\node[rotate=8] {\includegraphics[keepaspectratio]{img/Copyrighted/drought.jpg}};
+\pause
+\node[rotate=3] {\includegraphics[keepaspectratio]{img/Copyrighted/burnt.jpg}};
+\end{tikzpicture}
+
+## {.standout}
+
+Heute geht es um den Klimawandel.
+
+\pause
+
+Wieso wissen wir eigentlich davon?
+
+## Temperaturmessungen
+
+Wir messen die Temperatur.
+
+![](img/Copyrighted/dsc.jpg){.centered height=70%}
+
+\pause
+Was fehlt noch damit wir einen Trend beobachten können?
+
+## Speichern von vielen gleichen Daten
+
+\pause
+Wie würdet ihr in Java euch mehrere Temperaturmessungen speichern?
+
+\pause
+```java
+class Messungen {
+ double messung1;
+ double messung2;
+ double messung3;
+ double messung4;
+ ...
+}
+```
+
+\pause
+Ok geht! Aber hat einiges an Problemen.
+
+## Die Datenstruktur Feld
+
+Da die Verwaltung einer größeren, meist fester Anzahl, gleicher Daten ein gängiges Problem ist haben die meisten Programmiersprachen eine Lösung.
+
+\pause
+### Feld (engl. Array)
+
+Ein \boldred{Array} könnt ihr euch wie ein Schachtel mit vielen gleich großen Fächern vorstellen.
+
+\vspace{0.5cm}
+\begin{center}
+\scalebox{1.5}{
+\begin{tabular}{|c|c|c|c|c|c}
+\hline
+&&&&&...\\
+\hline
+\end{tabular}
+}
+\end{center}
+
+## Arrays in Java
+
+Java unterstützt \boldred{Felder} von **jedem** Datentyp.
+Um ein Feld von ganzen Zahlen anzulegen musst du ein Attribut/Variable mit dem Typ `int[]`{.java} **deklarieren**.
+
+\pause
+Ein Array in Java hat eine **feste Länge** die beim Erzeugen eines Arrays mit Hilfe des `new`{.java} Befehls in den eckigen Klammern angegeben wird.
+
+\pause
+```{.java}
+// Deklaration eines int arrays namens Zahlen
+int[] zahlen;
+// Initialisieren der Variable zahlen mit einem neuen array der Länge 5
+zahlen = new int[5];
+```
+
+## \faIcon{pencil-alt} Arrays in Java
+
+* Zusammenschluss mehrerer Daten gleichen Typs
+* Der Datentyp setzt sich aus dem Typ eines Eintrags und `[]` zusammen
+ * `<typ>[]`
+ * Bsp: `String[]`{.java}, `int[]`{.java}, `double[]`{.java}
+* Werden durch das Schlüsselwort `new`{.java} erzeugt
+ * Bsp: `int[] zahlen = new int[5];`{.java}
+* Haben eine feste Länge
+ * Die Länge wird in dem Attribut `length` eines Feldes gespeichert
+ * ```java
+int[] zahlen = new int[5];
+zahlen.length == 5; // Wahr
+```
+
+## \faIcon{desktop} Arbeitsauftrag - 5min
+
+Wir wollen ein Programm schreiben das die [stündliche]{.underline} Temperaturmessungen eines Tages verwaltet.
+
+1. Öffne das Tagestemperaturen Projekt
+2. Deklariere ein Feld vom Typ `double`{.java} namens `temperaturen`, als Attribut der Klasse `Tagestemperaturen`
+3. Initialisiere das Feld im Konstruktor der Klasse `Tagestemperaturen`
+
+## Auf Einträge zugreifen.
+
+Jetzt haben wir ein Feld aber können damit noch nichts anfangen.
+
+\pause
+
+### \faIcon{pencil-alt} Index
+Um auf einzelne Stellen in einem Feld zuzugreifen, verwenden wir deren \boldred{Index}.
+
+Der \boldred{Index} eines \boldred{Feldes} startet in Java bei 0.
+
+Um ein Feld mit Index `n` anzusprechen wird der \boldred{Index} in **eckige Klammern** hinter den Feldnamen geschrieben.
+
+\pause
+::: {.columns align=center}
+:::: {.column width=40%}
+```java
+int[] zahlen = new int[5];
+zahlen[0] = 1;
+zahlen[1] = 2;
+zahlen[2] = 3;
+zahlen[3] = 4;
+zahlen[4] = 5;
+```
+::::
+
+:::: {.column width=40%}
+\begin{tabular}{|c|c|c|c|c|}
+\hline
+1 & 2 & 3 & 4 & 5 \\
+\hline
+\end{tabular}
+
+\begin{tabular}{ccccc}
+0 & 1 & 2 & 3 & 4 \\
+\end{tabular}
+::::
+:::
+
+
+## Feld durchlaufen
+
+Das ist auch noch ganz schön mühsam!
+
+Wie könnten wir leichter jeden Eintrag eines Feld lesen/schreiben?
+
+\pause
+
+### Mit einer `for` - Wiederholung!
+
+```java
+int[] zahlen = new int[5];
+for (int i = 0; i < zahlen.length; i++) {
+ zahlen[i] = i + 1;
+}
+```
+
+## \faIcon{desktop} Arbeitsauftrag - 15min
+
+1. Vervollständigen die Methode `temperaturenAusgeben()` in dem du das Feld mit einer `for`- Wiederholung durchläufst.
+2. Bei jeder Wiederholung soll die Temperatur und die Stunde ausgegeben werden.
+
+## \faIcon{desktop} Arbeitsauftrag - Lösung
+
+```java
+public void temperaturenAusgeben() {
+ for (int i = 0; i < temperaturen.length; i++) {
+ System.out.println("Zur Stunde " + i +
+ " wurden " + temperaturen[i] +
+ " °C gemessen.");
+ }
+}
+```
+
+## Wie finden wir die kleinste Temperatur?
+
+### Idee\only<1>{?}\only<2->{:}
+\pause
+Alle Temperaturen der Reihe nach mit der aktuell kleinsten vergleichen und die kleinere Temperatur merken
+
+### Was brauchen wir?
+\begin{itemize}
+\item<3-> Wir müssen uns das aktuelle Minimum in einer Variable merken
+\item<4-> Wir müssen das Feld durchlaufen und alle Temperaturen prüfen
+\item<5-> Wir müssen auf ungültige/fehlende Messungen (-300) prüfen
+\end{itemize}
+
+## Kleinste Temperatur finden in Java
+
+```java
+public void minTempAusgeben() {
+ double minimum = -300;
+ for (int i = 0; i < temperaturen.length; i++) {
+ if(temperaturen[i] > -300 ) {
+ if (minimum == -300) { // Noch kein echtes Minimum
+ minimum = temperaturen[i];
+ } else if(temperaturen[i] < minimum) {
+ minimum = temperaturen[i];
+ }
+ }
+ }
+ System.out.println("Die kleinste gemessene Temperatur war " +
+ minimum + " °C.");
+}
+```
+
+## \faIcon{desktop} Arbeitsauftrag - 15min
+
+1. Vervollständigen die Methode `maxTempAusgeben()`, die ähnlich zu `minTempAusgeben()` die maximal gemessene Temperatur ausgiebt.
+2. **Für Schnelle:** Vervollständige die Methode `durchschnittTempAusgeben()`, die die durchschnittliche Temperatur nach dem arithmetischen Mittel ausgiebt.
+
+## \faIcon{desktop} Arbeitsauftrag - Lösung
+
+```java
+public void maxTempAusgeben() {
+ double maximum = -300;
+ for (int i = 0; i < temperaturen.length; i++) {
+ if (temperaturen[i] > maximum) {
+ maximum = temperaturen[i];
+ }
+ }
+ System.out.println("Die größte gemessene Temperatur war " +
+ maximum + " °C.");
+}
+```
diff --git a/Info/23_24/01/18/10B/schedule.md b/Info/23_24/01/18/10B/schedule.md
new file mode 100644
index 00000000..76446029
--- /dev/null
+++ b/Info/23_24/01/18/10B/schedule.md
@@ -0,0 +1,37 @@
+---
+lang: de
+geometry: margin=2cm
+---
+# Felder
+
+* **Klasse**: 10B
+* **Datum**: 18.01
+
+## Lernziele
+
+## Verlaufplan
+
+---------------------------------------------------------------------------------------------------
+Zeit Phase Unterrichtsgeschehen Ziel Methode Medien
+----- --------------- -------------------------------------------- ----------- ---------- ---------
+15 Wdh OOP UG Beamer
+
+5 Motivation Erderwärmung LV Beamer
+
+10 Erarbeitung Felder in Java UG Beamer
+
+5 Uebung SuS deklarieren und initialisieren ein EA BlueJ/
+ Feld O_IDE
+
+10 Erarbeitung Index, Felddurchlauf UG Beamer
+
+15 Uebung temperaturenGeben() EA
+
+5 Sicherung temperaturenGeben() UG Beamer
+
+5 Erarbeitung minTempAusgeben() UG Beamer
+
+15 Vertiefung maxTempAusgeben() EA
+
+5 Sicherung maxTempAusgeben() UG Beamer
+---------------------------------------------------------------------------------------------------
diff --git a/Info/23_24/01/18/10B/topic b/Info/23_24/01/18/10B/topic
new file mode 120000
index 00000000..aefc8544
--- /dev/null
+++ b/Info/23_24/01/18/10B/topic
@@ -0,0 +1 @@
+../../../../10/2/Felder/ \ No newline at end of file