aboutsummaryrefslogtreecommitdiff
path: root/Info/9/3
diff options
context:
space:
mode:
Diffstat (limited to 'Info/9/3')
-rw-r--r--Info/9/3/Aufgaben/aepfel_fangen.tex60
-rw-r--r--Info/9/3/Aufgaben/methode_folgeMarken_schreiben.tex18
-rw-r--r--Info/9/3/Aufgaben/modellierung.tex18
-rw-r--r--Info/9/3/Aufgaben/ritter_jnr.tex75
-rw-r--r--Info/9/3/Aufgaben/schaltjahr_algo_struktogramm.tex22
-rw-r--r--Info/9/3/Aufgaben/schildkroete_in_der_wueste.tex23
6 files changed, 128 insertions, 88 deletions
diff --git a/Info/9/3/Aufgaben/aepfel_fangen.tex b/Info/9/3/Aufgaben/aepfel_fangen.tex
index e6896658..122e8755 100644
--- a/Info/9/3/Aufgaben/aepfel_fangen.tex
+++ b/Info/9/3/Aufgaben/aepfel_fangen.tex
@@ -1,3 +1,5 @@
+\renewcommand{\Verteilung}{4 + 4 + 9}
+
\begin{Aufg}[Äpfel fangen]
\begin{tabular}{p{0.3\textwidth} p{0.65\textwidth}}
\includegraphics[keepaspectratio, width=0.3\textwidth]{Aufgaben/aepfel_fangen.png} &
@@ -17,46 +19,46 @@ Die Klasse \mintinline{java}{Korb} hat folgende Methoden:
}
\begin{enumerate}[a), itemsep=0pt]
-\item Zeichne die Klassenkarte zu der Klasse \mintinline{java}{Korb}.
-Markiere und benenne, was jeweils in den einzelnen Bereichen der Klassenkarte steht.
-\iflehrer{}{\\[0.2cm] \kariert{17}}
-\item Erkläre unter Verwendung von Fachbegriffen, welche Schritte nötig sind, um die Anzahl der gesammelten Äpfel in der Variable \mintinline{java}{punkte} zu speichern.
-Gib den dazu benötigten Code an.
-\item Schreibe die Methode \mintinline{java}{spielen()} der Klasse \mintinline{java}{Korb}.
-In dieser soll der Korb solange gesteuert werden bis er eine Spinne berührt.
-Falls ein Apfel berührt wird, soll zudem der Punktestand um 1 erhöht werden.
-Du kannst annehmen, dass die Variable \mintinline{java}{punkte} existiert und verwendbar ist.
-Die Methode soll den erreichten Punktestand als Ergebnis zurückgeben.
+ \item Zeichne die Klassenkarte zu der Klasse \mintinline{java}{Korb}.
+ Markiere und benenne, was jeweils in den einzelnen Bereichen der Klassenkarte steht.
+ \iflehrer{}{\\[0.2cm] \kariert{17}}
+ \item Erkläre unter Verwendung von Fachbegriffen, welche Schritte nötig sind, um die Anzahl der gesammelten Äpfel in der Variable \mintinline{java}{punkte} zu speichern.
+ Gib den dazu benötigten Code an.
+ \item Schreibe die Methode \mintinline{java}{spielen()} der Klasse \mintinline{java}{Korb}.
+ In dieser soll der Korb solange gesteuert werden bis er eine Spinne berührt.
+ Falls ein Apfel berührt wird, soll zudem der Punktestand um 1 erhöht werden.
+ Du kannst annehmen, dass die Variable \mintinline{java}{punkte} existiert und verwendbar ist.
+ Die Methode soll den erreichten Punktestand als Ergebnis zurückgeben.
\end{enumerate}
\end{Aufg}
-\begin{Lsg}
+\begin{Lsg}[A2; Implementieren]
\begin{enumerate}[a)]
-\item
- \begin{tikzpicture}
- \begin{class}[text width=5cm]{Korb}{0,0}
- \operation{bewege(richtung)}
- \operation{pfeiltasteGedrückt(richtung)}
- \operation{spinneVorhanden()}
- \operation{blattVorhanden()}
- \end{class}
- \node[right=0cm of Korb, yshift=3cm] {UML \Point}; % UML
- \node[right=of Korb.center] {\Halfpoint}; % Methoden
- \node[right=of Korb.center, yshift=2cm, xshift=0.25cm] {\Halfpoint}; % Klassenname
- \node[right=of Korb.center, yshift=1.6cm] {\Halfpoint}; % Attribute
- \draw[Triangle-] ($(Korb.east) + (0, 2.5)$) -- ($(Korb.east) + (2, 2.5)$) node[right] {Klassenname \Halfpoint};
- \draw[Triangle-] ($(Korb.east) + (0, 2)$) -- ($(Korb.east) + (2, 2)$) node[right] {Attribute \Halfpoint};
- \draw[Triangle-] (Korb) -- ($(Korb.east) + (2, 0)$) node[right] {Methoden \Halfpoint};
- \end{tikzpicture}
+ \item
+ \begin{tikzpicture}
+ \begin{class}[text width=5cm]{Korb}{0,0}
+ \operation{bewege(richtung)}
+ \operation{pfeiltasteGedrückt(richtung)}
+ \operation{spinneVorhanden()}
+ \operation{blattVorhanden()}
+ \end{class}
+ \node[right=0cm of Korb, yshift=3cm] {UML \Point}; % UML
+ \node[right=of Korb.center] {\Halfpoint}; % Methoden
+ \node[right=of Korb.center, yshift=2cm, xshift=0.25cm] {\Halfpoint}; % Klassenname
+ \node[right=of Korb.center, yshift=1.6cm] {\Halfpoint}; % Attribute
+ \draw[Triangle-] ($(Korb.east) + (0, 2.5)$) -- ($(Korb.east) + (2, 2.5)$) node[right] {Klassenname \Halfpoint};
+ \draw[Triangle-] ($(Korb.east) + (0, 2)$) -- ($(Korb.east) + (2, 2)$) node[right] {Attribute \Halfpoint};
+ \draw[Triangle-] (Korb) -- ($(Korb.east) + (2, 0)$) node[right] {Methoden \Halfpoint};
+ \end{tikzpicture}
\item Eine Variable muss deklariert\Halfpoint werden, wobei ihr Name\Halfpoint und ihr Datentyp\Halfpoint festgelegt wird.
Anschließend muss die Variable noch initialisiert\Halfpoint werden, in dem ihr ein Anfangswert\Halfpoint zugewiesen wird. \\
\mintinline{java}{int punkte;} \Point \\
\mintinline{java}{punkte = 0;} \Halfpoint \\
\item
\begin{minted}[escapeinside=$$]{java}
-public$\Halfpoint$ int$\Halfpoint$ spielen$\Halfpoint$()$\Halfpoint$
+int$\Halfpoint$ spielen$\Halfpoint$()$\Halfpoint$
{
- while$\Halfpoint$(!spinneVorhanden()$\Halfpoint$)
+ while$\Halfpoint$(!$\Halfpoint$spinneVorhanden()$\Halfpoint$)
{
if$\Halfpoint$(apfelVorhanden()$\Halfpoint$)
{
diff --git a/Info/9/3/Aufgaben/methode_folgeMarken_schreiben.tex b/Info/9/3/Aufgaben/methode_folgeMarken_schreiben.tex
index 0dfc2355..5b4a00e4 100644
--- a/Info/9/3/Aufgaben/methode_folgeMarken_schreiben.tex
+++ b/Info/9/3/Aufgaben/methode_folgeMarken_schreiben.tex
@@ -1,8 +1,7 @@
-\begin{Aufg}
+\begin{Aufg}[Marken folgen]
Ein Marsrover soll einer markierten Spur folgen. \\
Dem Rover stehen folgende Methoden zur Verfügung: \\
\begin{tabular}{p{0.6\textwidth} p{0.4\textwidth}}
-% \vspace{-3cm}
\begin{minted}[baselinestretch=1]{java}
// Fahre ein Feld vorwärts
void fahre();
@@ -16,19 +15,20 @@ boolean markeVorhanden(String richtung);
\vspace{0.5cm}
\includegraphics[keepaspectratio, width=0.375\textwidth]{Aufgaben/planet_folgeMarken.png} \\
\end{tabular}
+
Schreibe die Methode \texttt{folgeMarken()}, die einer \underline{beliebigen} Spur aus Marken bis zu ihrem Ende folgt.
\end{Aufg}
\begin{Lsg}
\begin{minted}[baselinestretch=1, escapeinside=??]{java}
-public void?\Point? folgeMarken()?\Point? {
- while(markeVorhanden("vorne"))?\Point? {
- fahre();?\Point?
- if (markeVorhanden("links"))?\Point? {
- drehe("links");?\Point?
+void?\Halfpoint? folgeMarken()?\Halfpoint? {
+ while?\Halfpoint?(markeVorhanden?\Halfpoint?("vorne"?\Halfpoint?)) {
+ fahre();?\Halfpoint?
+ if?\Halfpoint? (markeVorhanden("links")?\Halfpoint?) {
+ drehe("links");?\Halfpoint?
}
- if (markeVorhanden("rechts")) ?\Point?{
- drehe("rechts");?\Point?
+ if?\Halfpoint? (markeVorhanden("rechts")) ?\Halfpoint?{
+ drehe("rechts");?\Halfpoint?
}
}
}
diff --git a/Info/9/3/Aufgaben/modellierung.tex b/Info/9/3/Aufgaben/modellierung.tex
new file mode 100644
index 00000000..0d9327fb
--- /dev/null
+++ b/Info/9/3/Aufgaben/modellierung.tex
@@ -0,0 +1,18 @@
+\renewcommand{\Verteilung}{2+4}
+\begin{Aufg}[Modellierung]
+\begin{enumerate}[a)]
+\item Erkläre \underline{knapp} den Unterschied zwischen einem Attribut und einer Methode.
+\item Nenne zwei Attribute mit unterschiedlichen Datentypen einer Klasse von Dingen aus deinem Alltag.
+Gib die Datentyp der Attribute an und beschreibe knapp deren Funktion für die Klasse.
+\end{enumerate}
+\end{Aufg}
+
+% LPP Bayern Info Kompetenzen: Analysieren, Modellieren, Implementieren, Kooperieren und kommunizieren, Begründen und bewerten, Anwenden, Vernetzen
+\begin{Lsg}[A1; Kommunizieren]
+\begin{enumerate}[a)]
+\item
+Ein Attribut ist eine Eigenschaft.\Point \\
+Eine Methode ist etwas das ein Objekt tun kann.\Point \\
+\item \BE{2} Für Datentypen. \BE{2} Für Beschreibungen.
+\end{enumerate}
+\end{Lsg}
diff --git a/Info/9/3/Aufgaben/ritter_jnr.tex b/Info/9/3/Aufgaben/ritter_jnr.tex
index 684d4158..343ca620 100644
--- a/Info/9/3/Aufgaben/ritter_jnr.tex
+++ b/Info/9/3/Aufgaben/ritter_jnr.tex
@@ -1,10 +1,10 @@
-% \Verteilung{4 + 4 + 7}
+\renewcommand{\Verteilung}{4 + 4 + 7}
\begin{Aufg}[Ritter Jump n' Run]
-\iflehrer{}{\vspace{-0.5cm}}
+\ifschueler{\vspace{-0.5cm}}
\begin{center}
\includegraphics[keepaspectratio, width=0.8\textwidth]{Aufgaben/ritter_jnr.png}
\end{center}
-\iflehrer{}{\vspace{-0.5cm}}
+\ifschueler{}{\vspace{-0.5cm}}
Das oben gezeigte Jump n' Run Spiel soll programmiert werden.
Ziel ist es, einen Ritter, der stetig nach rechts läuft, bis ins Ziel zu steuern.
Unterwegs sollen so viele Münzen wie möglich gesammelt werden.
@@ -22,48 +22,57 @@ Die Klasse \mintinline{java}{Ritter} hat folgende Methoden:
\end{itemize}
}
\begin{enumerate}[a),itemsep=0pt]
-\item Zeichne die Klassenkarte zu der Klasse \mintinline{java}{Ritter}.
-Markiere und benenne, was jeweils in den einzelnen Bereichen der Klassenkarte steht.
-\iflehrer{}{\\[0.2cm] \kariert{20}}
-\item Erkläre unter Verwendung von Fachbegriffen, welche Schritte nötig sind, um die Anzahl der gesammelten Münzen in der Variable \mintinline{java}{punkte} zu speichern.
-Gib den dazu benötigten Code an.
-\item Schreibe die Methode \mintinline{java}{spielen()} der Klasse \mintinline{java}{Ritter}.
-In dieser soll der Ritter bis zum Ziel laufen.
-Unterwegs soll er immer dann springen, wenn die Leertaste gedrückt wird.
-Falls er eine Münze berührt, soll zudem der Punktestand um 1 erhöht werden.
-Du kannst annehmen, dass die Variable \mintinline{java}{punkte} existiert und verwendbar ist.
+\ifnumequal{\theAufgVersion}{1}{
+ \item Zeichne die Klassenkarte zu der Klasse \mintinline{java}{Ritter}.
+ Markiere und benenne, was jeweils in den einzelnen Bereichen der Klassenkarte steht.
+ \ifschueler{\\[0.2cm] \kariert{20}}
+}{
+ \item Gib zwei Attribute der Klasse Ritter mit unterschiedlichen Datentypen an.
+ Nenne den jeweiligen Datentyp und beschreibe knapp welche Aufgabe das Attribut hat.
+}
+ \item Erkläre unter Verwendung von Fachbegriffen, welche Schritte nötig sind, um die Anzahl der gesammelten Münzen in der Variable \mintinline{java}{punkte} zu speichern.
+ Gib den dazu benötigten Code an.
+ \item Implementiere die Methode \mintinline{java}{spielen()} der Klasse \mintinline{java}{Ritter}.
+ In dieser soll der Ritter bis zum Ziel laufen.
+ Unterwegs soll er immer dann springen, wenn die Leertaste gedrückt wird.
+ Falls er eine Münze berührt, soll zudem der Punktestand um 1 erhöht werden.
+ Du kannst annehmen, dass die Variable \mintinline{java}{punkte} existiert und verwendbar ist.
\end{enumerate}
\end{Aufg}
\begin{Lsg}
\begin{enumerate}[a)]
-\item
- \begin{tikzpicture}
- \begin{class}[text width=5cm]{Ritter}{0,0}
- \operation{laufe()}
- \operation{springe()}
- \operation{zielVorhanden()}
- \operation{münzeVorhanden()}
- \operation{mauerVorhanden()}
- \operation{zielVorhanden()}
- \end{class}
- \node[right=0cm of Ritter, yshift=3cm] {UML \Point}; % UML
- \node[right=of Ritter.center] {\Halfpoint}; % Methoden
- \node[right=of Ritter.center, yshift=2cm, xshift=0.25cm] {\Halfpoint}; % Klassenname
- \node[right=of Ritter.center, yshift=1.6cm] {\Halfpoint}; % Attribute
- \draw[Triangle-] ($(Ritter.east) + (0, 2.5)$) -- ($(Ritter.east) + (2, 2.5)$) node[right] {Klassenname \Halfpoint};
- \draw[Triangle-] ($(Ritter.east) + (0, 2)$) -- ($(Ritter.east) + (2, 2)$) node[right] {Attribute \Halfpoint};
- \draw[Triangle-] (Ritter) -- ($(Ritter.east) + (2, 0)$) node[right] {Methoden \Halfpoint};
- \end{tikzpicture}
+\ifnumequal{\theAufgVersion}{1}{
+ \item
+ \begin{tikzpicture}
+ \begin{class}[text width=5cm]{Ritter}{0,0}
+ \operation{laufe()}
+ \operation{springe()}
+ \operation{zielVorhanden()}
+ \operation{münzeVorhanden()}
+ \operation{mauerVorhanden()}
+ \operation{zielVorhanden()}
+ \end{class}
+ \node[right=0cm of Ritter, yshift=3cm] {UML \Point}; % UML
+ \node[right=of Ritter.center] {\Halfpoint}; % Methoden
+ \node[right=of Ritter.center, yshift=2cm, xshift=0.25cm] {\Halfpoint}; % Klassenname
+ \node[right=of Ritter.center, yshift=1.6cm] {\Halfpoint}; % Attribute
+ \draw[Triangle-] ($(Ritter.east) + (0, 2.5)$) -- ($(Ritter.east) + (2, 2.5)$) node[right] {Klassenname \Halfpoint};
+ \draw[Triangle-] ($(Ritter.east) + (0, 2)$) -- ($(Ritter.east) + (2, 2)$) node[right] {Attribute \Halfpoint};
+ \draw[Triangle-] (Ritter) -- ($(Ritter.east) + (2, 0)$) node[right] {Methoden \Halfpoint};
+ \end{tikzpicture}
+}{
+ \item \BE{2} auf die Datentypen. \BE{2} Auf die Beschreibungen der Attribute.
+}
\item Eine Variable muss deklariert\Halfpoint werden, wobei ihr Name\Halfpoint und ihr Datentyp\Halfpoint festgelegt wird.
Anschließend muss die Variable noch initialisiert\Halfpoint werden, in dem ihr ein Anfangswert\Halfpoint zugewiesen wird. \\
\mintinline{java}{int punkte;} \Point \\
\mintinline{java}{punkte = 0;} \Halfpoint \\
\item
\begin{minted}[escapeinside=$$]{java}
-public$\Halfpoint$ void$\Halfpoint$ spielen$\Halfpoint$()$\Halfpoint$
+void$\Halfpoint$ spielen$\Halfpoint$()$\Halfpoint$
{
- while$\Halfpoint$(!zielVorhanden()$\Halfpoint$)
+ while$\Halfpoint$(!$\Halfpoint$zielVorhanden()$\Halfpoint$)
{
if$\Halfpoint$(münzeVorhanden()$\Halfpoint$)
{
diff --git a/Info/9/3/Aufgaben/schaltjahr_algo_struktogramm.tex b/Info/9/3/Aufgaben/schaltjahr_algo_struktogramm.tex
index df9beba5..3f42650d 100644
--- a/Info/9/3/Aufgaben/schaltjahr_algo_struktogramm.tex
+++ b/Info/9/3/Aufgaben/schaltjahr_algo_struktogramm.tex
@@ -1,3 +1,4 @@
+\renewcommand{\Verteilung}{1 + 3 + 2}
\begin{Aufg}[Schaltjahre]
Der folgende Algorithmus beschreibt ein Vorgehen, mit dem überprüft werden kann, ob eine bestimmte Jahreszahl ein Schaltjahr ist:
@@ -10,10 +11,15 @@ Der folgende Algorithmus beschreibt ein Vorgehen, mit dem überprüft werden kan
\end{itemize}
}
-Nenne die Kontrollstruktur, die zur Programmierung dieses Algorithmus benötigt wird.
-Vervollständige das folgende Struktogramm der Methode \mintinline{java}{schaltjahr(int jahr)}, die berechnet, ob das übergebene Jahr ein Schaltjahr ist oder nicht, und entsprechend \mintinline{java}{true} oder \mintinline{java}{false} zurückgibt.
+\begin{enumerate}[a)]
+\item Nenne die Kontrollstruktur, die zur Programmierung dieses Algorithmus benötigt wird.
+ \ifschueler{\\ \liniert{1}}
-Skizziere dann im Struktogramm durch Einzeichnen des Weges den Ablauf und den Rückgabewert der Methode, wenn \mintinline{java}{schaltjahr(2023)} aufgerufen wird.
+\item Vervollständige das folgende Struktogramm der Methode \mintinline{java}{schaltjahr(int jahr)}.
+Die Methode berechnet, ob das übergebene Jahr ein Schaltjahr ist oder nicht, und gibt entsprechend \mintinline{java}{true} oder \mintinline{java}{false} zurück.
+
+\item Skizziere im Struktogramm durch Einzeichnen des Weges den Ablauf und den Rückgabewert des Methodenaufrufs \mintinline{java}{schaltjahr(2023)}.
+\end{enumerate}
\vspace{0.3cm}
\begin{tikzpicture}
@@ -24,11 +30,16 @@ Skizziere dann im Struktogramm durch Einzeichnen des Weges den Ablauf und den RÃ
\end{Aufg}
\begin{Lsg}
-\includegraphics[keepaspectratio, width=\textwidth]{Aufgaben/schaltjahr_struktogramm_loesung.png}
-\BE{3} \iftoggle{erwartungshorizont}{(0.5 BE) pro Lücke}{}
+\begin{enumerate}[a)]
+\item
Kontrollstruktur: Bedingte Anweisung\Halfpoint mit Alternative oder zweiseitig bedingte Anweisung\Halfpoint
+\item
+\includegraphics[keepaspectratio, width=\textwidth]{Aufgaben/schaltjahr_struktogramm_loesung.png}
+\BE{3} \iftoggle{erwartungshorizont}{(0.5 BE) pro Lücke}{}
+
+\item
\mintinline{java}{schaltjahr(2023)}: \\
\begin{itemize}
\item 2023 ist nicht durch 400 teilbar $\rightarrow$ Falsch. \Halfpoint
@@ -36,4 +47,5 @@ Kontrollstruktur: Bedingte Anweisung\Halfpoint mit Alternative oder zweiseitig b
\item 2023 ist nicht durch 4 teilbar $\rightarrow$ Falsch \Halfpoint $\rightarrow$ return false\Halfpoint
\item 2023 ist kein Schaltjahr.
\end{itemize}
+\end{enumerate}
\end{Lsg}
diff --git a/Info/9/3/Aufgaben/schildkroete_in_der_wueste.tex b/Info/9/3/Aufgaben/schildkroete_in_der_wueste.tex
index 5fec46d4..b1ff24a1 100644
--- a/Info/9/3/Aufgaben/schildkroete_in_der_wueste.tex
+++ b/Info/9/3/Aufgaben/schildkroete_in_der_wueste.tex
@@ -1,8 +1,9 @@
\begin{Aufg}[Schildkröte in der Wüste]
-\vspace{-1cm}
+\vspace{-0.8cm}
\begin{center}
\includegraphics[keepaspectratio, width=0.6\textwidth]{Aufgaben/schildkroete_in_der_wueste.png}
\end{center}
+\vspace{-0.5cm}
Analysiere die folgenden Kontrollstrukturen im abgebildeten Szenario.
Gib jeweils an, wie oft jede der Bedingungen überprüft wurde, auf welchen Feldern eine Marke gesetzt wird und auf welchem Feld die Schildkröte nach Ausführung des Programms steht.
Zu Beginn steht die Schildkröte auf Feld 0.
@@ -22,24 +23,25 @@ if(!kaktusVorhanden("links") || kaktusVorhanden("rechts"))
\end{minted}
\\
\end{tabular} \\
-\begin{tabular}{|l p{1cm} | l p{1cm} | l p{2cm} | l p{1cm}|}
+\begin{tabular}{l p{1cm} | l p{1cm} | l p{2cm} | l p{1cm}|}
\hline
1. Bedingung: & \solution{2\Halfpoint} &
2. Bedingung: & \solution{1\Halfpoint} &
Marken: & \solution{0\Halfpoint} &
Ende: & \solution{2\Halfpoint} \\
\hline
-\end{tabular} \\[0.5cm]
+\end{tabular} \\[0.5cm]%
+%
\begin{tabular}{l p{0.41\textwidth} l p{0.45\textwidth}}
b) & \vspace{-0.7cm}
\begin{minted}[fontsize=\small, baselinestretch=1.1]{java}
while(kaktusVorhanden("links"))
{
- if(kaktusVorhanden("rechts"))
- {
- setzeMarke();
- }
- laufe();
+ if(kaktusVorhanden("rechts"))
+ {
+ setzeMarke();
+ }
+ laufe();
}
\end{minted}
&
@@ -57,17 +59,15 @@ while(kaktusVorhanden("links"))
\end{minted}
\\
\end{tabular} \\
-\begin{tabular}{|l p{1cm} | l p{1cm} | l p{2cm} | l p{1cm}|}
+\begin{tabular}{l p{1cm} | l p{1cm} | l p{2cm} | l p{1cm}|}
\hline
%\cline{2-9}
-%b) &
1. Bedingung: & \solution{6\Halfpoint} &
2. Bedingung: & \solution{5\Halfpoint} &
Marken: & \solution{1,2,3\Halfpoint} &
Ende: & \solution{5\Halfpoint} \\
\hline
%\cline{2-9}
-%c) &
1. Bedingung: & \solution{4\Halfpoint} &
2. Bedingung: & \solution{5\Halfpoint} &
Marken: & \solution{0,4\Halfpoint} &
@@ -76,6 +76,5 @@ Ende: & \solution{5\Halfpoint} \\
%\cline{2-9}
\end{tabular}
\end{Aufg}
-
\begin{Lsg}
\end{Lsg}