Skip to content

Commit

Permalink
fixed ex. compile issues, replaced 2.5.1
Browse files Browse the repository at this point in the history
  • Loading branch information
JVHon committed Oct 2, 2021
1 parent ee03a49 commit f9b4126
Show file tree
Hide file tree
Showing 6 changed files with 91 additions and 11 deletions.
4 changes: 2 additions & 2 deletions exercises/Aufgaben.tex
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
\section{Zum Aufwärmen \stage1}\mccmd
\vorkurstask{2-mc-if}
\section{Variablen \stage1}
\vorkurstask{2-var-naming}\slnformat{\clearpage}
\vorkurstask{2-var-case}\slnformat{\clearpage}
\vorkurstask{2-var-id}\vorkurstaskformat{\clearpage}
\vorkurstask{2-var-assign}\slnformat{\clearpage}
\section{Logische Operationen \stage1}
Expand All @@ -83,7 +83,7 @@
\vorkurstask{2-var-io}
\vorkurstask{2-stm-calc}\vorkurstaskformat{\clearpage}\slnformat{\clearpage}
\section{Zum Weiterdenken \stage3}
\vorkurstask{2-cooking}\vorkurstaskformat{\clearpage}\slnformat{\clearpage}
\vorkurstask{2-decision-tree}\vorkurstaskformat{\clearpage}\slnformat{\clearpage}
\vorkurstask{2-var-processor}
\or%ex3
\section{Schleifen}
Expand Down
30 changes: 30 additions & 0 deletions exercises/sln/2-decision-tree.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# hier die Werte eintragen
wettervorhersage = "regen"
temperatur = 27
luftfeuchtigkeit = "hoch"
windig = True
# Die Zahlenwerte, gegen die verglichen wird,
# können von den hier eingetragenen abweichen.
# Eure Lösung kann auch anders vorgehen, wenn die Testdaten
# korrekt erkannt werden, stimmt sie wahrscheinlich trotzdem.
if wettervorhersage == "regen":
freibad = False
else:
if temperatur > 24:
freibad = True
else:
if wettervorhersage == "sonnig":
if temperatur < 18 and windig:
freibad = False
else:
freibad = True
else:
if temperatur >= 18 and not windig:
freibad = True
else:
freibad = False

if freibad:
print("Geh ins Freibad")
else:
print("Bleib zu Hause")
1 change: 1 addition & 0 deletions exercises/sln/2-var-case.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Die Variable in Zeile 2 müsste mein\textbf{\_}alter heißen und nicht meinalter.
1 change: 0 additions & 1 deletion exercises/sln/2-var-naming.tex

This file was deleted.

49 changes: 49 additions & 0 deletions exercises/task/2-decision-tree.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
\subsection{Entscheidungsbaum}
Wenn große Mengen von Daten verarbeitet werden müssen, geht es oft darum, diese in bestimmte Gruppen bzw. Klassen einzuteilen, zum Beispiel sollen häufig fehlerhafte Daten von korrekten getrennt werden. Eine mögliche Klassifikationsmethode, die für Tabellendaten genutzt werden kann, ist ein Entscheidungsbaum.\\
\\
Entscheidungsbäume funktionieren so, dass man für einen Datenpunkt (also eine Tabellenzeile) nach und nach die Spalteneinträge überprüft, bis man an einem Punkt ankommt, wo man sicher die Klasse festlegen kann. Das kann je nach dem, in welcher Reihenfolge man die Spalten betrachtet, unterschiedlich kompliziert sein (manchmal reicht sogar eine einzelne Spalte, um sicher zu wissen, welche Klasse es ist).\\
\\
Deine Aufgabe ist es, mit den Daten in der folgenden Tabelle einen Entscheidungsbaum zu konstruieren, der dir ausgibt, wann es sich lohnt, ins Freibad zu gehen (so, wie es in der Tabellenspalte ganz rechts festgelegt ist). Lege dazu am Besten pro Spalte eine Variable an, wo du dann Zeile für Zeile die Werte nacheinander durchprobieren kannst, um deine Implementierung zu testen.
\begin{table}[ht]
\centering
\begin{tabular}{|c|c|c|c|c|}
\hline
Wettervorhersage & Temperatur & Luftfeuchtigkeit & Wind & Freibad \\\hline
sonnig & 29 & hoch & False & Ja \\\hline
sonnig & 29 & mittel & True & Ja \\\hline
regen & 13 & mittel & True & Nein \\\hline
bewölkt & 22 & mittel & False & Ja \\\hline
regen & 13 & hoch & False & Nein \\\hline
bewölkt & 29 & mittel & False & Ja \\\hline
sonnig & 14 & mittel & True & Nein \\\hline
bewölkt & 27 & hoch & True & Ja \\\hline
bewölkt & 14 & hoch & True & Nein \\\hline
sonnig & 20 & mittel & False & Ja \\\hline
regen & 27 & mittel & False & Nein \\\hline
bewölkt & 14 & mittel & False & Nein \\\hline
regen & 20 & mittel & True & Nein \\\hline
sonnig & 22 & hoch & True & Ja \\\hline
sonnig & 14 & hoch & False & Ja \\\hline
bewölkt & 22 & mittel & True & Nein \\\hline
regen & 29 & mittel & True & Nein \\\hline
regen & 22 & hoch & False & Nein \\\hline
\end{tabular}
\end{table}
\newpage
Wenn du überprüfen möchtest, ob dein Entscheidungsbaum gut funktioniert, kannst du auch noch diese Datenpunkte ausprobieren:
\begin{table}[ht]
\centering
\begin{tabular}{|c|c|c|c|c|}
\hline
Wettervorhersage & Temperatur & Luftfeuchtigkeit & Wind & Freibad \\\hline
bewölkt & 15 & hoch & False & Nein \\\hline
sonnig & 28 & mittel & False & Ja \\\hline
sonnig & 21 & hoch & False & Ja \\\hline
regen & 27 & hoch & False & Nein \\\hline
regen & 20 & mittel & False & Nein \\\hline
bewölkt & 28 & hoch & False & Ja \\\hline
sonnig & 13 & hoch & True & Nein \\\hline
bewölkt & 21 & hoch & False & Ja \\\hline
regen & 27 & hoch & True & Nein \\\hline
\end{tabular}
\end{table}
17 changes: 9 additions & 8 deletions exercises/task/2-var-io.tex
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@ \subsection{Variablen einlesen}
\begin{itemize}
\item deinen Namen als Zeichenkette
\item dein Geburtsdatum als drei ganze Zahlen: Tag, Monat, Jahr
\end {itemize}
Insgesamt sollen also vier Eingaben verarbeiten werden. Achte dabei darauf, dass dein Programm die erwarteten Eingaben textuell klar strukturiert (Stichwort: Bedienerfreundlichkeit).\\Nachdem die letzte Eingabe verarbeitet ist, soll folgende Zeichenkette ausgegeben werden (wobei natürlich die Platzhalter zu ersetzen sind):\\Ausgabe: {\ttfamily{\dq}}<dein Name> hat am <tt.mm.jjjj> Geburtstag.{\ttfamily{\dq}}

\textit{Hinweis:} Die Verarbeitung von Eingaben wird im Foliensatz 'Variablen.pdf' erläutert.

\end{itemize}
Insgesamt sollen also vier Eingaben verarbeiten werden. Achte dabei darauf, dass dein Programm die erwarteten Eingaben textuell klar strukturiert (Stichwort: Bedienerfreundlichkeit).\\
Nachdem die letzte Eingabe verarbeitet ist, soll folgende Zeichenkette ausgegeben werden (wobei natürlich die Platzhalter zu ersetzen sind):\\
Ausgabe: {\ttfamily{\dq}}<dein Name> hat am <tt.mm.jjjj> Geburtstag.{\ttfamily{\dq}}\\
\\
\textit{Hinweis:} Die Verarbeitung von Eingaben wird im Foliensatz 'Variablen.pdf' erläutert.\\
\\
\textit{Hinweis:} Variablen sollten in Strings nicht mit '\pythoninline{+}' eingefügt werden, stattdessen vor den String ein '\pythoninline{f}' setzen und an die entsprechenden Stellen im String \pythoninline{{variable0}}, \pythoninline{{variable1}}, ... einsetzen. \\
Beispiel: \pythoninline{f"{variable0} ist kleiner {variable1}"} ergibt wenn variable0 = 4 und variable1 = 42 "4 ist kleiner 42"\\
Beispiel: \pythoninline{f"{variable0} ist kleiner {variable1}"} ergibt wenn variable0 = 4 und variable1 = 42 {\ttfamily{\dq}}4 ist kleiner 42{\ttfamily{\dq}}\\
Alternativ kannst du die ältere format Methode verwenden. Dazu setzt du an die entsprechenden Stellen im String \pythoninline{{0}}, \pythoninline{{1}}, ... ein und trägst dahinter \pythoninline{.format(variable0, variable1, ...)} ein.\\
Beispiel: \pythoninline{"{0} ist kleiner {1}".format(4, 42)} ergibt ebenfalls "4 ist kleiner 42"

Beispiel: \pythoninline{"{0} ist kleiner {1}".format(4, 42)} ergibt ebenfalls {\ttfamily{\dq}}4 ist kleiner 42{\ttfamily{\dq}}

0 comments on commit f9b4126

Please sign in to comment.