Skip to content

Commit 92b1b2a

Browse files
fixed spelling mistakes and important isusses on sheets 3,4 and the e… (#179)
* fixed spelling mistakes and important isusses on sheets 3,4 and the extrablatt * fixed task instruction
1 parent 7e4b3a6 commit 92b1b2a

11 files changed

+45
-43
lines changed

sheets/3/exercise-1.tex

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
Mit einer For-Schleife kann man genau bestimmen wie oft der Code in der Schleife ausgeführt wird.\newline
1313

1414
Anstatt eine Sequenz von Operationen $n$-mal untereinander zu schreiben, um sie $n$-mal auszuführen, kann man den repetitiven Code einmal in den Rumpf eine For-Schleife schreiben.
15-
Im \enquote{Kopf} der for-Schleife kann man dann angeben, wie oft der Schleifenrumpf ausgeführt werden soll.\newline
15+
Im \enquote{Kopf} der For-Schleife kann man dann angeben, wie oft der Schleifenrumpf ausgeführt werden soll.\newline
1616

1717
Hier ein Beispiel:
1818

@@ -67,13 +67,13 @@
6767

6868
\item
6969
Hebe jetzt mit Totoro jeweils 2, 5, 16 und 20 Nüsse vom Feld \texttt{(0,22)} auf.
70-
Dazu musst du eine weitere For-Schleife benutzen, in der du auch den Schleifenrumpf anpasst.
70+
Dazu musst du eine weitere For-Schleife verwenden, in der du auch den Schleifenrumpf anpasst.
7171

7272
\item
7373
Verwende für diese Teilaufgabe den Totoro in der Variable \lstinline{totoroF}.
7474

7575
Hebe alle Nüsse auf Totoro's Startposition auf.
76-
Laufe jetzt 5 Schritte mit einer For-Schleife und lege jeden Schritt so viele Nüsse ab, wie du schon Schritte gelaufen bist.
76+
Laufe jetzt 5 Schritte mit einer For-Schleife und lege bei jedem Schritt so viele Nüsse ab, wie du schon Schritte gelaufen bist.
7777

7878
\textbf{Hinweis:} Dafür musst du eine For-Schleife in der For-Schleife verwenden.
7979
Du kannst die Variable \lstinline{i} der äußeren For-Schleife in der Schleifenbedingung (an der 2. Stelle im Schleifenkopf) der inneren For-Schleife benutzen.

sheets/3/exercise-2.tex

+20-19
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
Laufe mit Totoro bis zum ersten Feld mit einer Nuss und gib die Anzahl der Nüsse unter Totoro auf der Konsole aus.\newline
1616

1717
\textbf{Wichtig}: Mit der Operation \lstinline{totoro.getCurrentlyCollectableNuts();} bekommt man eine Liste aller Nuss-Objekte, die auf Totoro's aktuellem Feld liegen.
18-
Du kannst die den Datentyp List wie eine Sequenz (Aneinanderreihung) von Objekten desselben Typs - in diesem Fall des Typs \lstinline{Nut} - vorstellen.
19-
Eine Liste hat eine Länge die angibt wie viele Elemente in ihr enthalten sind.
18+
Du kannst dir den Datentyp List wie eine Sequenz (Aneinanderreihung) von Objekten desselben Typs, in diesem Fall des Typs \lstinline{Nut}, e vorstellen.
19+
Eine Liste hat eine Länge, die angibt wie viele Elemente in ihr enthalten sind.
2020
Diese Länge kann mit der \lstinline{size()}-Methode auf Listen-Objekten abgefragt werden.
2121
\end{enumerate}
2222

@@ -64,7 +64,7 @@
6464
\textbf{Vorsicht:} Mit dem Vergleichsoperator \enquote{\lstinline{==}} sollte man in der Regel nur primitive Datentypen (= etwa Werte vom Typ \lstinline{int}, Fließkommazahlen wie \lstinline{double} und ein paar andere Typen, die wir der Einfachheit halber hier weglassen) vergleichen!\newline
6565

6666
Zum Vergleichen von zwei Objekten sollte immer die \lstinline{equals}-Methode, die auf jedem Objekt definiert ist, verwendet werden:
67-
67+
6868
\begin{lstlisting}[numbers=none]
6969
if (totoro.getPosition().equals(new Position(1, 1))){
7070
System.out.println("Totoro is on Position (1, 1)");
@@ -86,22 +86,22 @@
8686
Nun wollen wir daran arbeiten möglichst viele Nüsse auf dem Spielfeld einzusammeln.
8787

8888
Dazu wollen wir Totoro erstmals so lange geradeaus laufen lasse, bis sich unter ihm eine oder mehrere Nüsse befinden.
89-
Wenn Totoro auf eine Nuss trifft, sollst du erst mal anhalten.
89+
Wenn Totoro auf eine Nuss trifft, sollte er erst mal anhalten.
9090
\end{enumerate}
9191

9292

9393
\begin{Infobox}[Endlosschleifen und \lstinline{break}]
9494
Eine While-Schleife, in der die Schleifenbedingung \lstinline{true} ist, nennt man eine Endlosschleife.
95-
Das heißt, dass die Schleife niemals aufhören wird den Code im Schleifenrumpf auszuführen, wenn das nicht durch eine Exception oder den Stop der Ausführung des Programms verhindert wird!
96-
Deshalb kann es passieren, dass du den Stopp Knopf in der Eclipse Konsole brauchst, um die Schleife wieder abzubrechen.\newline
95+
Das heißt, dass die Schleife niemals aufhören wird, den Code im Schleifenrumpf auszuführen, wenn das nicht durch eine Exception oder den Stop der Ausführung des Programms verhindert wird!
96+
Deshalb kann es passieren, dass du den Stopp Knopf in der IntelliJ Konsole benötigst, um die Schleife wieder abzubrechen.\newline
9797

98-
Endlosschleifen möchte man in der Regel wann immer möglich vermeiden.
99-
Aber man kann auch eine \lstinline{while(true)}-Schleife planmäßig im Quellcode und ohne das Auslösen von Exceptions beenden.
98+
Endlosschleifen möchte man wenn möglich immer vermeiden.
99+
Man kann jedoch auch eine \lstinline{while(true)}-Schleife planmäßig in den Quellcode einbauen und ohne das Auslösen von Exceptions beenden.
100100
Dafür braucht man das Schlüsselwort \lstinline{break}.\newline
101101

102102
Wenn du im Rumpf einer Schleife \lstinline{break;} aufrufst, dann wird die Schleife sofort unterbrochen.
103103
Auch die Schleifenbedingung wird dann nicht mehr überprüft und der Code nach der Schleife wird weiter ausgeführt.
104-
Das funktioniert auch in For-Schleifen, ist aber hier eher untypisch, da man dort meistens die Zählvariablen zur Begrenzung der Wiederholungen benutzt.
104+
Das funktioniert auch in For-Schleifen, ist aber hier eher untypisch, da dort meistens die Zählvariablen zur Begrenzung der Wiederholungen benutzt wird.
105105

106106
\begin{lstlisting}[numbers=none]
107107
while(true){
@@ -117,16 +117,17 @@
117117

118118
\begin{enumerate}\setcounter{enumi}{3}
119119
\item
120-
Mit dem neuen Wissen wollen wir nun an unserem Code aus Teilaufgabe c) weiterarbeiten.
120+
Mit diesem neuen Wissen wollen wir nun an unserem Code aus Teilaufgabe c) weiterarbeiten.
121121

122-
Wenn Totoro also auf einem Feld mit genau einer Nuss steht, soll er die Nuss aufsammeln, sich dann nach rechts drehen und einen weiteren Schritt machen.
122+
Wenn Totoro also auf einem Feld mit genau einer Nuss steht, soll er die Nuss aufsammeln und
123+
sich dann nach rechts drehen und einen weiteren Schritt machen.
123124
Wenn sich mehr als eine Nuss unter Totoro befinden, soll er die Schleife erstmals mit einem \lstinline{break} verlassen.
124-
Dann soll der wieder anfangen zu laufen, bis unter ihm wieder eine oder mehrere Nüsse auftauchen.
125-
125+
Dannach soll er wieder weiter laufen, bis er Nüsse findet.
126126
\item
127-
Wenn sich jetzt mehr als eine Nuss unter Totoro befinden sollten, dann soll Totoro genau eine Nuss aufsammeln, sich nach links drehen und dann wieder einen Schritt nach vorne machen.
127+
Wenn sich jetzt mehr als eine Nuss unter Totoro befinden,
128+
soll Totoro genau eine Nuss aufsammeln, und sich dann nach links drehen und wieder einen Schritt nach vorne machen.
128129

129-
Momentan soll Totoro noch nicht alle Nüsse aufgesammelt bekommen, ohne gegen einen Busch zu laufen.
130+
Momentan sollte Totoro noch nicht in der Lage sein, alle Nüsse aufzusammlen, ohne gegen einen Busch zu laufen.
130131
\end{enumerate}
131132

132133
\begin{Infobox}[Logische Operatoren]
@@ -155,7 +156,7 @@
155156

156157
\begin{lstlisting}[numbers=none]
157158
if (!totoro.canMove() && totoro.getCurrentlyCollectableNuts().size() == 7) {
158-
//totoro hat genau 7 Nüsse UND kann sich NICHT nach vorne gehen.
159+
//totoro hat genau 7 Nüsse UND kann sich NICHT nach vorne bewegen.
159160
}
160161
\end{lstlisting}
161162

@@ -176,11 +177,11 @@
176177
Dafür musst du vor jedem \lstinline{move()} Kommando prüfen, ob Totoro sich überhaupt nach vorne bewegen kann.
177178

178179
\item
179-
Jetzt wollen wir, dass Totoro auch irgendwann aufhört.
180-
Er soll aufhören zu laufen oder Nüsse einzusammeln, wenn er schon 20 Nüsse gesammelt hat oder wenn er auf einem Feld mit exakt 9 Nüssen ankommt.
180+
Totoro's Taschen sind leider relativ klein, daher soll er
181+
aufhören zu laufen oder Nüsse einzusammeln, wenn er schon 20 Nüsse gesammelt hat oder er auf einem Feld mit exakt 9 Nüssen ankommt.
181182
Mit \lstinline{totoro.getNutsInPocket()} kannst du die Anzahl der Nüsse in Totoro's Inventory abfragen.
182183

183-
\textbf{Tipp:} Hierfür kannst du entweder das Argument der Endlosschleife ändern oder \lstinline{break} Verwenden.
184+
\textbf{Tipp:} Hierfür kannst du entweder das Argument der Endlosschleife ändern oder \lstinline{break} verwenden.
184185
Falls du die Entscheidung, was Totoro auf einem Feld machen soll, mit einem \lstinline{if-else}-Verzweigung implementiert hast, kannst du hier ein \lstinline{else if(...)} einführen.
185186
\end{enumerate}
186187
\newpage

sheets/3/exercise-3.tex

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888
In der Klasse \lstinline{Sheet3Task3} findest du auch die folgende Operation.
8989

9090
\begin{lstlisting}
91-
private void dropFourNutssAndTurnLeft(Totoro totoro) {
91+
private void dropFourNutsAndTurnLeft(Totoro totoro) {
9292
//write the Code for f) here
9393
//make totoro drop four nuts
9494
//make totoro turn Left

sheets/3/exercise-6.tex

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
\excercise{Verebung}
1+
\excercise{Vererbung}
22
\begin{enumerate}
33
\item
44
Instanziiere die Simulation (\lstinline{Sheet3Task6} und \lstinline{Sheet3Task6Verifier}) und mache dich mit dieser vertraut.
@@ -63,15 +63,15 @@
6363
\item Überschreibe nun die \lstinline{collectNut()} Funktion der \lstinline{HungryTotoro} Klasse, sodass \lstinline{HungryTotoro} immer alle Nüsse auf einem Feld einsammelt, wenn die Funktion aufgerufen wird.
6464
Teste diese Funktionalität, indem du in \lstinline{Sheet3Task6} 5 Nüsse auf \lstinline{HungryTotoro} Feld platzierst und einmal \lstinline{collectNut()} ausführst.
6565

66-
\textbf{Tipp:} schaue die dazu die \lstinline{collectNut()} Funktion der \lstinline{Totoro} Klasse genauer an.
66+
\textbf{Tipp:} Schaue die dazu die \lstinline{collectNut()} Funktion der \lstinline{Totoro} Klasse genauer an.
6767

6868
\item Nun wollen wir Rußmännchen (\lstinline{Sooty_mans}) in den Simulator laden.
6969

7070
Außerdem wollen wir die \lstinline{collectNut()} Funktion von den Rußmännchen so abändern, dass sie einfach nichts machen, falls sich keine Nuss unter ihnen befindet.
7171
Spezieller soll dabei auch keine Fehlermeldung auf der Konsole erscheinen.
7272
Gehe dazu analog zu der letzten Teilaufgabe vor.
7373

74-
Teste diese Funktionalität, indem du in \lstinline{Sheet3Task6} keine Nüsse auf \lstinline{Sooty_mas}' Feld platzierst und einmal \lstinline{collectNut()} ausführst.
74+
Teste diese Funktionalität, indem du in \lstinline{Sheet3Task6} keine Nüsse auf \lstinline{Sooty_mans}' Feld platzierst und einmal \lstinline{collectNut()} ausführst.
7575

7676
\item Rußmännchen sollen in ihrer \lstinline{move()} Funktion nun automatisch Büsche erkennen und nicht einfach in sie hineinlaufen.
7777
Stattdessen sollen Rußmännchen prüfen, ob das Feld links, rechts oder hinter ihnen frei ist und in die entsprechende Richtung weiterlaufen.
@@ -83,6 +83,6 @@
8383
Finde den Codeteil der dieses Verhalten bewirkt.
8484

8585
Im Projekt ist noch eine Mario, Neo und Morpheus Textur hinterlegt.
86-
Versuche die Textur von GreedyNeo durch die von Mario zu ersetzten.
86+
Versuche die Textur von HungryTotoro durch die von Mario zu ersetzten.
8787

8888
\end{enumerate}

sheets/4/exercise-2.tex

+1-4
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,7 @@
66
\\ \includegraphics[width=\linewidth]{./figures/smily.png}
77
\item Zeichne den Smiley mithilfe von Shapes. Du kannst dafür z.B. das Pixel Shape verwenden.
88
\item Erstelle eine eigene Shape-klasse für Smilies und geb ihr einen Namen.
9-
\begin{Infobox}[Eclipse Class wizard]
10-
Wenn du im Package Explorer von Eclipse einen Rechtsklick machst, gibt es die Option new.
11-
Damit bekommst du ein kleines Menü an die Hand, um zum Beispiel eine Klasse zu erstellen.
12-
\end{Infobox}
9+
1310
\item Füge das Interface Shape hinzu.
1411
\begin{lstlisting}[title=Interface Syntax,frame=ltr]
1512
class <ClassName> implements <InterfaceName>

sheets/4/exercise-3.tex

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
\item
1616
Nun da wir Shapes etwas genauer kennengelernt haben, können wir damit Spielfelder frei bauen.
1717
Erstelle ein Labyrinth aus Büschen.
18-
\optional{Überlege dir wo der Start und das Ende des Labyrinths ist und löse es mit der Spielfigur.}
18+
19+
\optional{Überlege dir, wo der Start und das Ende des Labyrinths ist und löse es mit der Spielfigur.}
1920

2021
\item
2122
\optional{Versuche das folgende Spielfeld im Code nachzubauen.}\\

sheets/4/exercise-4.tex

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
\begin{enumerate}
44
\item Passe die Main Operation an die Aufgabe an.
5-
Verwende \lstinline{Sheet4Task4}, auch in dieser Aufgabe gibt es keinen Verifier.
5+
Verwende \lstinline{Sheet4Task4}. Auch in dieser Aufgabe gibt es keinen Verifier.
66
Diese Aufgabe ist mehr als ''Ideensammlung'' zu verstehen und wird nicht überprüft.
77
Spiele mit den Konzepten, die eingeführt wurden.
88
\item Erzeuge ein Programm, das Totoro geradeaus laufen lässt, bis er keine Schritte mehr machen kann.

sheets/extra/exercise-3.tex

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Ein Kommando welches sich selbst aufruft wird als rekusiv bezeichnet. Die Fibbonacci Reihe zum beispiel (1,1,2,3,5,8,13,21,...) kann beschrieben werden durch $F(0)=1$ $F(1)=1$ $F(n)=F(n-2)+F(n-1)$. wobei F(n) die n-te Fibbonacci Zahl ist. bei $F(n)=F(n-2)+F(n-1)$ wird erneut mit einem kleineren Argument verwendet. Dadurch wird das Argument in allen Schritten kleiner bis es bei $F(0)$ oder $F(1)$ ankommt welche einen Festen Wert haben.
44
\end{Infobox}
55
\begin{enumerate}
6-
\item versuche (rekursiv) ein Fibbonacci Kommando zu implementieren welches einen Integer n erhällt und dann $F(n)$ Nüsse ablegt.
7-
\item lasse Totoro die ersten Sechs Elemente der Fibbonacci Folge nacheinander auf das Spielfeld legen.
8-
\item (bonus) implementiere das Fibbonacci Kommando aus a) itterativ (ohne Rekursion).
6+
\item Versuche (rekursiv) ein Fibbonacci Kommando zu implementieren welches einen Integer n erhällt und dann $F(n)$ Nüsse ablegt.
7+
\item Lasse Totoro die ersten Sechs Elemente der Fibbonacci Folge nacheinander auf das Spielfeld legen.
8+
\item \optional Implementiere das Fibbonacci Kommando aus a) iterativ (ohne Rekursion).
99
\end{enumerate}

sheets/extra/exercise-4.tex

+9-6
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@
44
\item Implementiere das \lstinline{moveTo(Position position)} Kommando in der Klasse Totoro, welches totoro zu der übergebenen Position laufen lässt. Um das Kommando zu testen, lasse totoro zu (2,4) laufen (Tipp: In dieser Aufgabe gibt es keine Büsche auf dem Spielfeld. Du musst daher keinen komplexen Wegfindungsalgorithmus implementieren.)
55
\item Totoro ist umgeben von Nüssen. Wir wollen auch nun das innere dieser Form mit Nüssen füllen. Dafür verwenden wir einen beliebten (rekursiven) Füllalgorithmus der funktioniert wie folgt:\\
66
Fill(Position pos(x,y)):\\
7-
-lege eine Nuss auf pos\\
8-
-falls (x-1,y) leer ist: Fill(x-1,y)\\
9-
-falls (x+1,y) leer ist: Fill(x+1,y)\\
10-
-falls (x,y-1) leer ist: Fill(x,y-1)\\
11-
-falls (x,y+1) leer ist: Fill(x,y+1)\\
7+
\begin{enumerate}[label=\arabic*.]
8+
\item lege eine Nuss auf pos
9+
\item falls (x-1,y) leer ist: Fill(x-1,y)
10+
\item falls (x+1,y) leer ist: Fill(x+1,y)
11+
\item falls (x,y-1) leer ist: Fill(x,y-1)
12+
\item falls (x,y+1) leer ist: Fill(x,y+1)
13+
\end{enumerate}
14+
1215

13-
implementieren diesen Füllalgorithmus, und lasse totoro die Form mit Nüssen füllen
16+
Implementiere diesen Füllalgorithmus und lasse totoro die Form mit Nüssen füllen.
1417
\end{enumerate}

sheets/extra/jvk-extra.pdf

337 KB
Binary file not shown.

sheets/vorkurs.cls

+1-1
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@
136136
\hfill\includegraphics[height=3cm]{../logos/fius-logo-neu.png}
137137
\begin{center}
138138
\Large\textbf{Übungsblatt \sheetNumber}\\
139-
\large\kurs (\semester)
139+
\large\kurs \, \semester
140140
\normalsize
141141
\end{center}
142142
}

0 commit comments

Comments
 (0)