Aufgabe Vorschlag B - 1 - Klassen und Methoden implementi… · Abitur Hessen Technische Informatik LK 2022

Thema: Klassen und Methoden implementieren · Aus der Prüfung LK (2022)

Aufgabenstellung

Rasenmähroboter

Roboter, die selbstständig den Rasen mähen können, sogenannte Rasenmähroboter, erfreuen sich in Deutschland immer größerer Beliebtheit. Sie werden nicht ferngesteuert, sondern mähen autonom die vorgegebene Fläche in geraden Bahnen. Die meisten Systeme nutzen zum Abgrenzen der zu mähenden Fläche ein Begrenzungskabel, durch das elektrische Signale geleitet werden, die der Rasenmähroboter beim Überfahren sensorisch erfassen kann (Material 1). Erkennt er die Begrenzung, dreht sich der Rasenmähroboter in einem zufälligen Winkel vom Kabel weg und fährt erneut in einer geraden Bahn weiter, bis er wieder an eine Begrenzung stößt. Nach diesem sogenannten Chaosprinzip erreicht und mäht der Rasenmähroboter, über eine gewisse Zeit betrachtet, alle Bereiche der Rasenfläche. Der Rasenmähroboter ist akkubetrieben und lädt sich selbstständig an einer in der Rasenfläche befindlichen Ladestation wieder auf. Die abgeschnittenen Grashalme werden nicht aufgefangen, sondern fallen einfach zu Boden.

1 Der Hersteller eines Rasenmähroboters plant ein Simulationsprogramm zu entwerfen, um den Fahralgorithmus des Rasenmähroboters zu testen und zu verbessern. Es haben zwei Personengruppen Zugriff auf dieses Simulationsprogramm: Die Entwickler oder Entwicklerinnen (im Folgenden Entwickler genannt) und die Simulatoren oder die Simulatorinnen (im Folgenden Simulatoren genannt). Die Entwickler erstellen neue Algorithmen oder optimieren bereits vorhandene Algorithmen. Die Simulatoren können Simulationen entwerfen, durchführen und löschen. Um eine Simulation durchzuführen muss sie zunächst entworfen werden, sofern sie noch nicht vorhanden ist. Zum Entwerfen einer Simulation ist es zwingend nötig, vorher einen Rasenmähroboter und eine Rasenfläche anzulegen. Außerdem können die Simulatoren vor dem Durchführen einer Simulation einen Algorithmus importieren.

Die zentrale Klasse Simulation ist vorgegeben (Material 2). Eine Simulation kann mehrere Algorithmen verwalten, während der einzelne Algorithmus in mehreren Simulationen verwendet werden kann. Die abstrakte Klasse Algorithmus beinhaltet die Informationen über den Namen des Algorithmus und den Namen des Erstellers sowie einen Wahrheitswert, ob sich der Algorithmus derzeit im Einsatz befindet. Des Weiteren ist ein statisches Attribut idAlgo vom Datentyp int enthalten, welches als Objektzähler fungiert. Zusätzlich liegt ein Attribut vom Typ String mit dem Bezeichner algorithmus vor, in dem die Fahrbefehle des Algorithmus verkettet als String gespeichert werden. Die Klasse Algorithmus beinhaltet Bewegungsmethoden, also je eine void-Methode für die Vorwärts- und Rückwärtsbewegung und je eine Methode für das Links- bzw. Rechtsdrehen. Die Methoden für die Vorwärts- und Rückwärtsbewegung erhalten als Parameter einen int-Parameter zeitS für die Angabe der Fahrzeit in Sekunden. Die Drehmethoden bekommen beim Aufruf einen int-Parameter mit einem Winkel übergeben. Zuletzt zählt noch die Methode pruefeHindernisVorne zu den Fahrbefehlen. Diese überprüft, ob sich vor dem Rasenmähroboter ein Hindernis befindet und gibt einen Wahrheitswert zurück. Eine weitere Methode zufallswinkel gibt nach Aufruf einen int-Wert zwischen 0 und 180 Grad zurück. Die zwei Klassen rekursiverAlgorithmus und iterativerAlgorithmus erben von der Klasse Algorithmus. Für rekursive Algorithmen wird in einem Attribut die Rekursionstiefe gespeichert. Für iterative Algorithmen wird in einem Attribut die Anzahl der Schritte gespeichert.

Material 1: Schaubild Funktion Rasenmähroboter

Material 2: UML-Klassendiagramm

1.4 Implementieren Sie die Klassen Simulation, Rasenmähroboter und Rasenfläche gemäß dem UML-Klassendiagramm in Material 2 so, dass zum Anlegen von Rasenmährobotern und Rasenflächen die Methoden rasenmähroboterAnlegen(...) und rasenflächeAnlegen(...) verwendet werden und mindestens je eine Instanz der Klassen Rasenmähroboter und Rasenfläche erzeugt wird. [13 BE]

Hinweise: In der Klasse Simulation sind die Attribute, der Konstruktor und die von Ihnen benötigten Methoden zu implementieren. Die beiden Instanzen sind selbst zu erstellen. Get- und set-Methoden sind generell nicht zu erstellen.

Aufgabenstellung: Aufgabe Vorschlag B - 1 - Klassen und Methoden implementi… · Abitur Hessen Technische Informatik LK 2022

Lösung

Nach den offiziellen Korrekturhinweisen

1.4 Implementierung der Klasse Simulation

Lösung: ```java import java.util.ArrayList; public class Simulation { private String name; private String ersteller; private String datum; private ArrayList<Rasenmähroboter> mäherListe; private ArrayList<Rasenfläche> flächenListe; public Simulation(String n, String e, String d) { this.name = n; this.ersteller = e; this.datum = d; // Erzeugen der ArrayLists mäherListe = new ArrayList<Rasenmähroboter>(); flächenListe = new ArrayList<Rasenfläche>(); // Umsetzung der Komposition rasenmähroboterAnlegen("Freelexo", 600, 100, 3); rasenflächeAnlegen("Rasenfläche1", 10, 55, true); } private void rasenmähroboterAnlegen(String n, int t, int a, int m) { Rasenmähroboter rmr = new Rasenmähroboter(n, t, a, m); mäherListe.add(rmr); } private void rasenflächeAnlegen(String n, int l, int b, boolean e) { Rasenfläche rf = new Rasenfläche(n, l, b, e); flächenListe.add(rf); } } ```

1.4 Implementierung der Klasse Rasenmähroboter

Lösung: ```java public class Rasenmähroboter { private String name; private int typennummer; private int akkustand; private int messeranzahl; public Rasenmähroboter(String n, int t, int a, int m) { this.name = n; this.typennummer = t; this.akkustand = a; this.messeranzahl = m; } } ```

1.4 Implementierung der Klasse Rasenfläche

Lösung: ```java public class Rasenfläche { private String name; private int laenge; private int breite; private boolean eingefasst; public Rasenfläche(String n, int l, int b, boolean e) { this.name = n; this.laenge = l; this.breite = b; this.eingefasst = e; } } ```

Die ausführliche Erklärung Schritt für Schritt (mit KI) gibt es mit Premium. Premium

Löse sie direkt hier: automatische Korrektur, Hinweise und Lösung Schritt für Schritt.

‹ Aufgabe Vorschlag A - 1 - Klassen und Methoden implementi… · LK 2022 · Aufgabe Vorschlag C - 1 - Klassen und Methoden implementi… · LK 2022 ›

Mehr Aufgaben zu Klassen und Methoden implementieren