Klasse 11 · 1. Halbjahr

Q1

Objektorientierte Programmierung in Java und die klassischen Such- und Sortierverfahren.

OOP in Java

OOP 1 Die Klasse Auto Unsere erste eigene Klasse: fünf Attribute, ein Konstruktor und zwei Methoden, die erstmal noch leer bleiben. OOP 2 Einstiegstext-Analyse Klasse, Objekt, Attribut, Methode, Konstruktor – die fünf Begriffe, die in der Klausur als Erstes drankommen. OOP 3 Das Autohaus Die Klasse Auto endlich benutzen: ein Objekt erzeugen, betanken, fahren lassen - und verstehen, warum der Kilometerstand trotzdem auf 0 bleibt. OOP 4 Die Ausgabemethode Das Auto soll sich selbst beschreiben können – und dabei das EVA-Prinzip einhalten: erst alles einsammeln, dann einmal ausgeben. OOP 5 Methoden: tanken und fahren Vier Teilaufgaben: beide Methoden implementieren, den Konstruktor gegen unsinnige Werte absichern und im Autohaus richtig durchtesten. OOP 6 Geometrische Figuren Quadrat, Rechteck, Kreis und ein rechtwinkliges Dreieck objektorientiert modellieren – plus die Fachsprache, mit der man den Code beschreibt. OOP 7 Konstruktoren überladen Mehrere Konstruktoren in einer Klasse: wann sich das lohnt, warum der Rückgabetyp nicht zählt und wieso der Default-Konstruktor plötzlich weg ist. OOP 8 Arrays Vier Teilaufgaben: Würfelsimulation, Schleifen im Kopf durchgehen, Schiffe versenken mit zweidimensionalem Array und das Sieb des Eratosthenes. OOP 9 ArrayList: Lieblingsfächer Die erste Liste statt eines Arrays – und warum es plötzlich egal ist, dass es doch drei Fächer sein sollten statt zwei. OOP 10 ArrayList: Lottozahlen contains, size und die Fangfrage: remove(1) löscht nicht die Zahl 1, sondern das Element an Position 1. OOP 11 ArrayList: Listen ausgeben Eine Liste von 10 bis 1000 füllen und auf zwei Arten durchlaufen – mit foreach und mit dem ListIterator. OOP 12 Die main-Parameter Was public static void main(String[] args) wirklich bedeutet – und wie man dem Programm beim Start Werte mitgibt. OOP 13 Methoden überladen, Strings parsen Drei Methoden namens summe, unterschieden nur an der Parameterliste – und warum der Rückgabetyp dabei keine Rolle spielt. OOP 14 Assoziationen und Multiplizitäten Die kleinen Zahlen am Ende der UML-Striche: 1, 0..1, * und 1..* – und auf welcher Seite sie stehen müssen. OOP 15 Das Telefonbuch: Abstraktion Aus einem App-Screenshot herauslesen, welche Klassen man braucht – und was man bewusst weglässt. OOP 16 Die Klasse Termin Attribute und Methoden für einen Termin festlegen – und warum die Terminart ein enum wird und kein String. OOP 17 UML-Diagramm erzeugen Die Klasse Termin im UML-Klasseneditor bauen statt sie zu tippen – inklusive der beiden imports, die der Editor nicht erraten kann. OOP 18 Das Telefonbuch: Klassen erstellen Kontakt, Adresse, Telefon, Email und Gruppe – und der Fehler, den bei dieser Aufgabe jeder einmal macht: die Listen im Konstruktor vergessen. OOP 19 UML-Diagramm im Java-Editor Assoziation oder Aggregation? Die Antwort steht im Code: einzelnes Attribut oder Liste. Plus der Unterschied zwischen Editor- und ABI-Notation. OOP 20 Telefonbuch-Spielwiese Alle sechs Klassen zusammensetzen und ausgeben – mit einem einzigen println, weil toString() sich durch die ganze Kette durchreicht.

Suchen und Sortieren

Algorithmus 1 Suchen mit System: Struktogramm und Zahlenraten Ein Struktogramm für das Zählen von Sechsern – und beim Zahlenraten zu zweit die Formel herleiten, wie viele Versuche man höchstens braucht. Algorithmus 2 Binäre Suche: Die Startaufstellung Die binäre Suche von Hand durchführen und danach als Methode istAufgestellt implementieren – inklusive der drei Stellen, an denen sie kippt. Algorithmus 3 Hashing, Kollisionen und Effizienz Das Geburtstagsparadoxon, zwei Hashfunktionen von Hand durchgerechnet und der Vergleich aller drei Suchverfahren. Algorithmus 4 Arbeitsblatt Suchalgorithmen I Unsortiertes Array: warum hier nur die lineare Suche geht und warum der Nicht-gefunden-Fall immer der schlimmste ist. Algorithmus 5 Arbeitsblatt Suchalgorithmen II Dasselbe Array, nur sortiert – und plötzlich reichen 2 statt 8 Vergleiche. Beide Arbeitsblätter zusammen sind eine einzige Argumentation. Algorithmus 6 Die unsortierte Top-10 Zehn Albumcover sortieren, aber nur zwei pro Schritt vergleichen – und dabei merken, warum eine Handlungsvorschrift eindeutig sein muss. Algorithmus 7 Einfaches Sortieren Selection, Insertion und Bubble Sort von Hand durchgespielt, als Struktogramm entworfen und in Java implementiert. Algorithmus 8 Rekursive Algorithmen Fibonacci, Fakultät, ein Würfelspiel und zwei Methoden, die sich gegenseitig aufrufen – überall geht es um Rekursionsanker und Rekursionsschritt. Algorithmus 9 Suchen: iterativ und rekursiv Suche in linearen Listen mit toFirst/hasAccess/next, eine Methodendokumentation umsetzen und die binäre Suche aus durcheinandergeratenen Zeilen zusammenbauen. Algorithmus 10 Sortieren: iterativ und rekursiv Sortieren durch Auswählen auf Listen und Quicksort – inklusive der Pointe, dass eine bereits sortierte Liste für Quicksort der schlechteste Fall ist. Algorithmus 11 Arbeitsblatt Sortieralgorithmen Andersherum: aus den Zwischenschritten erkennen, welcher Sortieralgorithmus gelaufen ist – und dann selbst eine Folge damit sortieren.

Aufgabe suchen

Tippe los. Strg+K öffnet die Suche von überall.

Zuletzt angesehen

Werbung