Projekt:2021/Fingerübungen: Unterschied zwischen den Versionen

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Markierungen: Zurückgesetzt Mobile Bearbeitung Mobile Web-Bearbeitung
Markierungen: Zurückgesetzt Mobile Bearbeitung Mobile Web-Bearbeitung
Zeile 66: Zeile 66:
{{#mermaid:classDiagram
{{#mermaid:classDiagram
class Bruch
class Bruch
Bruch : -zaehler: int
Bruch : -zaehler int
}}
}}



Version vom 7. August 2022, 10:25 Uhr

Seite zum Projekt Fingerübungen des Informatik GK im Schuljahr 2021/22.

Fingerübungen zur Objektorientierten Programmierung

Auf dieser Seite findest Du verschiedene Übungen zur Wiederholung und Festigung der Objektorientierten Programmierung (OOP). Die Übungen sind in verschiedene Kategorien einsortiert. Suche Dir Übungen heraus, bedienen Du noch Nachholbedarf hast.

Grundbegriffe

Der Kollege Herr Bolte hat eine YouTube-Playliste zusammengestellt, die am Beispiel der BlueJ-Variante Greenfoot alle Grundlagen der OOP aus der EF durchgeht und an Beispielen wiederholt. Diese kannst du gut selber nacharbeiten (am besten, indem du die Beispiele direkt mitmachst).

Icon Heft.png
Arbeitsauftrag

Beschreibe mit eigenen Worten so präzise wir möglich die folgenden Begriffe:

  • lokale Variable
  • Objektvariable
  • Parameter
  • Rückgabe
  • Datentyp
  • Objektreferenz
  • Methodenaufruf
  • Bedingte Anweisung
  • logische Verknüpfung
  • Array


Diese Mindmaps zur OOP zeigt dir die wichtigsten Begriffe im Zusammenhang:

Implementierungsdiagramme in Quelltext übersetzen

Icon Heft.png
Arbeitsauftrag

Erstelle zu den UML-Diagrammen unten jeweils ein Klassengerüst mit allen gezeigten Methoden. Die Methoden müssen keine Funktionalität enthalten, ergänze bei Methoden mit Rückgaben einfach nur einen return Befehl.

Zum Beispiel zu +wuerfeln(): int

public int wuerfeln() {
    return 6;
}

Halte Dich bei der Übersetzung immer genau an das UML-Diagramm. Manche der hinteren Diagramme halten sich nicht strikt an unsere Konventionen (z.B. "Alle Objektvariablen sind private"). Achte also auf die Sichtbarkeiten und Namen der Parameter.


Bruch


Bank

Bibliothek

Lösung Bruch
public class Bruch {

	private int nenner;
	private int zaehler;

	public Bruch(int pNenner, int pZaehler) {
		nenner = pNenner;
		zaehler = pZaehler;
	}

	public int getNenner() {
		return nenner;
	}
	
	public void setNenner(int pNenner) {
		nenner = pNenner;
	}
	
	public int getZaehler() {
		return zaehler;
	}
	
	public void setZaehler(int pZaehler) {
		zaehler = pZaehler;
	}
	
	public void kuerzen() {
	
	}
	
	public double asDecimal() {
		return (double)zaehler/(double)nenner;
	}

}


Mit Objektreferenzen arbeiten

In diesem Video zeigt der Kollege Herr Bolte die Grundlagen von Objektreferenzen und der Interaktion von Objekten (hier am Beispiel der BlueJ-Variante Greenfoot). Die Erklärung aus dem Unterricht (mit dem Vergleich zu einem Paketschein) kannst Du unter Lernpfad:Objektorientierte Programmierung mit Java/Referenzen finden.

Icon Heft.png
Arbeitsauftrag

Übernimm die gezeigten Klassen in ein neues BlueJ-Projekt und löse die Aufgaben dazu.


Brüche

Übernimm die Klasse Bruch von oben und die Klasse Rechner unten.

Icon Info.png
Für das Kürzen eines Bruches benötigst Du den größten gemeinsamen Teiler. Den ggT hatten wir früher schonmal berechnet.
public class Rechner {

    /**
     * Multipliziert die Brüche a und b und gibt das Produkt als neues
     * Bruch-Objekt zurück.
     */
    public Bruch multipliziere(Bruch a, Bruch b) {
        return null;
    }
  
    /**
     * Addiert die Brüche a und b und gibt die Summe als neues
     * Bruch-Objekt zurück.
     */
    public Bruch addiere(Bruch a, Bruch b) {
        return null;
    }

    /**
     * Kürzt den Bruch b vollständig (und speichert den gekürzten Bruch in b).
     */
    public void kuerze(Bruch b) {

    }

    /**
     * Bildet den Kehrwert des Bruches (und speichert ihn in b).
     */
    public void kehrwert(Bruch b) {

    }

    /**
     * Dividiert die Brüche a und b und speichert das Ergebnis im Bruch a.
     */
    public Bruch dividiere(Bruch a, Bruch b) {
        return null;
    }

}

Arrays