Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
faecher:informatik:mittelstufe:robot:arbeitsauftraege:ab10:start [30.09.2021 12:34] – sbel | faecher:informatik:mittelstufe:robot:arbeitsauftraege:ab10:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Auftrag AB 10 – Gezählte Wiederholungen ====== | ||
- | Eine Diamantminenfirma hat vom großen Erfolg des ReaktorRobots gehört und überlegt, ob sie | ||
- | nicht auch die gefährlichen Arbeiten in den Diamantenminen durch Roboter ausführen lassen soll, | ||
- | da es immer wieder zu Stolleneinbrüchen kommt oder gefährliche Sprengungen notwendig sind. | ||
- | Eine letzte Aufgabe für unsere Rescue-Robots... zum Glück kommen diese gerade aus dem | ||
- | Trainingslager. Schau mal an, was sie dort gelernt haben. | ||
- | |||
- | |||
- | Ziel: Zählschleifen kennen und (in mindestens einer Art) in Java notieren können. | ||
- | |||
- | |||
- | Die Methode '' | ||
- | |||
- | <code java> | ||
- | public void rundeDrehen() { | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | } | ||
- | </ | ||
- | Der Roboter umrundet gegen den Uhrzeigersinn ein von Wänden eingeschlossenes rechteckiges Feld. | ||
- | Dabei macht er vier Mal das Gleiche. Eine Befehlssequenz ist also eine mehrere male auszuführen. | ||
- | |||
- | Daher gibt es in praktisch allen Programmiersprachen die Möglichkeit solche Wiederholungen zu notieren. | ||
- | |||
- | Wir müssen dem Roboter mitteilen, was er wiederholen soll ('' | ||
- | |||
- | Er muss also solange die Befehle erneut ausführen wie die Rundenzahl kleiner ist als 4: | ||
- | |||
- | <code java> | ||
- | | ||
- | int anzGemacht; | ||
- | | ||
- | while (anzGemacht < 4) { | ||
- | | ||
- | | ||
- | | ||
- | } | ||
- | } | ||
- | </ | ||
- | |||
- | Die Wiederholungsrunden muss er zählen. Dafür benötigt er innerhalb der Methode '' | ||
- | |||
- | Der Wert dieses Wiederholungszählers muss bei jedem Schleifendurchgang um 1 erhöht werden. Daher findest du am Ende der zu wiederholenden Anweisungen den Erhöhe-Befehl für die Zählvariable < | ||
- | |||
- | Die Ausführungsbedingung '' | ||
- | |||
- | Eine 13-fache Wiederholung kannst du daher so schreiben: | ||
- | |||
- | <code java> | ||
- | int i=0; | ||
- | while (i < 13) { | ||
- | // Anweisungen, | ||
- | i++; // Mitzählen!! | ||
- | } | ||
- | </ | ||
- | |||
- | Statt dem Namen '' | ||
- | |||
- | |||
- | Wenn von Anfang an feststeht, wie oft etwas wiederholt werden muss, dann kann man Zählschleifen benutzen. Es gibt eine andere Formulierung für Zählschleifen, | ||
- | |||
- | <code java> | ||
- | for (int i=0; i<13; i++) { | ||
- | // Anweisungen, | ||
- | // if ( i == 2) { ...} | ||
- | } | ||
- | </ | ||
- | |||
- | Der Wert der Zählvariable '' | ||
- | |||
- | ^ Gezählte Wiederholungen in Java ^^ | ||
- | |while-Schleife |for-Schleife | | ||
- | |<code java> | ||
- | public void vierVor() { | ||
- | int i=0; | ||
- | while (i < 4) { | ||
- | einsVor(); | ||
- | i++; | ||
- | } | ||
- | }</ | ||
- | public void vierVor() { | ||
- | for (int i=0; i<4; i++){ | ||
- | einsVor(); | ||
- | } | ||
- | } | ||
- | </ | ||
- | |||
- | |||
- | |||
- | ====== Aufgaben: ====== | ||
- | |||
- | ===== Aufgabe 1: Patrouille ===== | ||
- | |||
- | Teste mit dem Roboter unten links die Methode '' | ||
- | 10x hin und herläuft, d.h. 10x nach rechts und 10x wieder nach links. | ||
- | |||
- | Welche Zahl darf '' | ||
- | |||
- | ===== Aufgabe 2 ===== | ||
- | |||
- | Warum wird die Variable '' | ||
- | |||
- | ===== Aufgabe 3 ===== | ||
- | |||
- | Verändere in der Methode '' | ||
- | Roboter soll nach Methodenaufruf genau 5x hin und herlaufen. | ||
- | |||
- | |||
- | ===== Aufgabe 4: Zu Befehl ===== | ||
- | |||
- | |||
- | Vervollständige die Methode '' | ||
- | |||
- | Blöderweise kann ihm der Strom ausgehen… zum Glück hat er jedoch drei Akkus dabei. | ||
- | Ergänze die Methode dreheAnzahlRunden(int anz) so, dass er seine Akkus sinnvoll | ||
- | einsetzt. | ||
- | (Tipp: mit if(getEnergie()< | ||
- | |||
- | |||
- | ===== Aufgabe 5 ===== | ||
- | **Laufe x Schritte:** Implementiere eine Methode, die den Roboter genau x Schritte nach | ||
- | vorne laufen lässt. | ||
- | |||
- | |||
- | ===== Aufgabe 6 ===== | ||
- | Was tut es?: Analysiere das Verhalten der folgenden Methode (Welche Aufgabe erledigt der Roboter?). | ||
- | |||
- | <code java> | ||
- | public void wastutes(int anz) { | ||
- | int i=0; | ||
- | | ||
- | while(!this.istWandVorne()) { | ||
- | | ||
- | | ||
- | } | ||
- | dreheUm(); | ||
- | i++ | ||
- | } | ||
- | } | ||
- | </ | ||
- | Entscheide, welche der Schleifen sinnvoll durch eine | ||
- | For-Schleife ersetzt werden kann. Implementiere die | ||
- | Methode mit einer for-Schleife und benenne die | ||
- | Methode geeignet. | ||
- | |||
- | Kann man durch einen geeigneten Aufruf der Methode | ||
- | alle Schrauben links unten auf einmal einsammeln? | ||
- | |||
- | ===== Aufgabe 7 ===== | ||
- | |||
- | |||
- | **Aufräumen: | ||
- | aufraeumen(), | ||
- | oben herunterrutschende Fässer in die untere Kammer schieben lässt. | ||
- | |||
- | ===== Aufgabe 8 ===== | ||
- | **Aufzug:** Implementiere die Methoden fahreAufzug und fahreInsStockwerk von AB9 unter | ||
- | Verwendung einer for-Schleife. Entscheide in beiden Fällen, ob die while-Schleife oder die | ||
- | for-Schleife geschickter war. | ||
- | |||
- | ====== Einsatz 10 ====== | ||
- | |||
- | Hilfe! Vier Stollen sind bei Sprengarbeiten eingestürzt und haben ein riesiges Loch hinterlassen. Die Situation ist prekär. Überall Staub – man kann kaum etwas sehen. Ein Trupp Rescue-Robots hat schon alle verteilten Brennstäbe gesichert. Nun müssen diese präzise deponiert werden. Die Einsatzleitung hat uns folgenden Plan überlassen: | ||
- | |||
- | {{ .:ab108.png |}} | ||
- | |||
- | Ihr Roboter hat 51 Brennstäbe für die Endlagerung und ein Akku für seine Stromversorgung erhalten. Sie müssen unbedingt genau nach Plan arbeiten. Beeilen Sie sich ... | ||
- | ---- | ||
- | |||
- | [[..: | ||
- | |||
- | ---- | ||
- | Alle Arbeitsaufträge in diesem Namensraum basieren auf den Materialien von '' |