Lernpfad:Lerntheke Marsrover/23: Unterschied zwischen den Versionen

Zur Navigation springen Zur Suche springen
keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Karte|Hilfe=8,10}}
{{Karte|Hilfe=8,10,11}}


Ein Rover-Eigenschaften hat einige ''Eigenschaften''. Diese Eigenschaften können verschiedene ''Ausprägungen'' (Werte) annehmen. Zum Beispiel ändert sich die Eigenschaft <code>x</code> oder <code>y</code>, wenn der Rover den Auftrag <code>fahre()</code> ausführt. Eigenschaften werden in Java mit '''Variablen''' umgesetzt.
{{Kasten|Diese Karte ist leichter, wenn du schon etwas über {{Pfad|25|Wiederholungen}} und {{Pfad|20|Fallunterscheidungen}} weißt. Mit den Hilfen kannst du aber auch versuchen, die Karte so zu lösen.|Farbe={{Farbe:Info}}}}


Eine Variable ist ein Platzhalter für einen Wert. Auf diesen Wert kann mit dem Bezeichner der Variablen immer wieder zugegriffen werden. Der Wert kann auch verändert und wieder in der Variablen gespeichert werden.
Eine '''Variable''' ist ein Platzhalter für einen Wert. Auf diesen Wert kann mit dem ''Bezeichner'' der Variablen immer wieder zugegriffen werden. Der Wert kann auch verändert und wieder in der Variablen gespeichert werden.


Du kannst dir eine Variable wie eine Schublade vorstellen. Du kannst die Schublade öffnen und etwas hinein tun. Dann kannst du immer wieder in die Schublade hineinschauen, um dich an den Inhalt zu erinnern. Schließlich kannst du auch den Inhalt wieder aus der Schublade hinausnehmen und etwas neues hinein tun.
Du kannst dir eine Variable wie eine Schublade vorstellen. Du kannst die Schublade öffnen und etwas hinein tun. Dann kannst du immer wieder in die Schublade hineinschauen, um dich an den Inhalt zu erinnern. Schließlich kannst du auch den Inhalt wieder aus der Schublade hinausnehmen und etwas neues hinein tun.
Zeile 9: Zeile 9:
In Java musst du als erstes die Größe und Art der Schublade festlegen. Das nennt man die '''Deklaration'''. Das erste hineinlegen eines Wertes nennt man die '''Initialisierung''', das hineinschauen einen '''Zugriff''' und das ändern des Inhalts eine '''Zuweisung'''.
In Java musst du als erstes die Größe und Art der Schublade festlegen. Das nennt man die '''Deklaration'''. Das erste hineinlegen eines Wertes nennt man die '''Initialisierung''', das hineinschauen einen '''Zugriff''' und das ändern des Inhalts eine '''Zuweisung'''.


Du kannst eine ''lokale Hilfsvariable'' zum Beispiel benutzen:
So sieht ein Beispiel für eine Zahl-Variable aus:
<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
int eineZahl = 5;
int eineZahl = 5;
Zeile 23: Zeile 23:
# Lies im Buch auf Seite 219 nach, welche ''Datentypen'' es in Java gibt.
# Lies im Buch auf Seite 219 nach, welche ''Datentypen'' es in Java gibt.
# Notiere im Heft Beispiele für ''Variablendeklarationen'' vom Typ <code>double</code>, <code>int</code>, <code>char</code> und <code>boolean</code>;
# Notiere im Heft Beispiele für ''Variablendeklarationen'' vom Typ <code>double</code>, <code>int</code>, <code>char</code> und <code>boolean</code>;
# Bearbeite das {{AB|Informatik/Programmierung/Marsrover/EF-AB.6-Variablen|Arbeitsblatt zu Variablen}}.
{{Aufgabe:End}}
{{Aufgabe:End}}


Zeile 31: Zeile 32:
     int eineZahl = 0;
     int eineZahl = 0;
      
      
     fahre();
     while( !markeVorhanden() ) {
    if( gesteinVorhanden() ) {
        fahre();
        anaylsiereGestein();
        if( gesteinVorhanden() ) {
        eineZahl = eineZahl + 1;
            anaylsiereGestein();
            eineZahl = eineZahl + 1;
        }
     }
     }
   
}
    fahre();
</syntaxhighlight>
    if( gesteinVorhanden() ) {
{{Aufgabe:End}}
        anaylsiereGestein();
{{Roverkarte|.\n.\n.\n.\n..R[.G][.G][.G][.G][.G][.G]M}}
        eineZahl = eineZahl + 1;
{{Lösung:Start}}
    }
In der Variablen <code>eineZahl</code> wird die Anzahl an analysierten Gesteinen gespeichert, die zwischen dem Rover und der nächsten Markierung liegen.
   
{{Lösung:End}}
    fahre();
 
     if( gesteinVorhanden() ) {
{{Aufgabe:Start|Icon=Greenfoot Rover.png}}
         anaylsiereGestein();
Programmiere den Rover so, dass er ''genau fünf Steine'' analysiert.
         eineZahl = eineZahl + 1;
 
Du kannst die Karte unten benutzen.
{{Aufgabe:End}}
{{Roverkarte|.\n.\n.\n.\n..RGGGGGGGGGG}}
{{Lösung:Start}}
<syntaxhighlight lang="Java">
public void act() {
    int anzahlSteine = 0;
     while( anzhalSteine < 5 ) {
        fahre();
         analysiereGestein();
         anzahlSteine += 1;
     }
     }
}
}
</syntaxhighlight>
</syntaxhighlight>
{{Lösung:End}}
{{Aufgabe:Start|Icon=Greenfoot Rover.png}}
Programmiere den Rover so, dass er bis zur nächsten Marke vorwärts fährt, diese einsammelt, dann umdreht und auf seine Ausgangsposition zurückkehrt. Der Rover soll dabei selber keine weitere Marke ablegen.
Du kannst die Karte unten benutzen.
{{Aufgabe:End}}
{{Aufgabe:End}}
{{Roverkarte|.\n.\n.\n.\n....R[.G][.G][.G][.G]}}
{{Kasten|
'''Hinweis:''' Du kannst als Bedingung in einer Wiederholung oder Fallunterscheidung auch einen Vergleich benutzen. Zum Beispiel:
<syntaxhighlight lang="Java">
int i = 5;
while( i > 0 ) {
    i = i-1;
}
</syntaxhighlight>
|Farbe={{Farbe:Info}}}}
 
{{Roverkarte|.\n.\n.\n.\n..R.....[.M][.M][.M][.M][.M]}}
{{Lösung:Start}}
{{Lösung:Start}}
In der Variablen <code>eineZahl</code> wird die Anzahl an analysierten Gesteinen gespeichert.
<syntaxhighlight lang="Java">
public void act() {
    int anzahlFelder = 0;
    while( !markeVorhanden() ) {
        fahre();
        anzahlFelder += 1;
    }
    entferneMarke();
    drehe("rechts");
    drehe("rechts");
    while( anzahlFelder > 0 ) {
        fahre();
        anzahlFelder -= 1;
    }
}
</syntaxhighlight>
{{Lösung:End}}
{{Lösung:End}}


{{Inhalt/Lerntheke}}
{{Inhalt/Lerntheke}}

Navigationsmenü