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

Zur Navigation springen Zur Suche springen
Markierungen: Manuelle Zurücksetzung Mobile Bearbeitung Mobile Web-Bearbeitung
 
(15 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Projektseite
|Projekt=Fingerübungen
|Kurs=Informatik GK
|Schuljahr=2021/22
}}
== Fingerübungen zur Objektorientierten Programmierung ==
== 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.
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 [https://youtube.com/playlist?list=PLeKALosMKQIddK62MmKelLjGw7v8BRSWS 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).
<center>
{{#ev:youtubeplaylist|PLeKALosMKQIddK62MmKelLjGw7v8BRSWS}}
</center>
{{Aufgabe:Start}}
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
{{Aufgabe:End}}
Diese Mindmaps zur OOP zeigt dir die wichtigsten Begriffe im Zusammenhang:
<coggle width="100%">https://embed.coggle.it/diagram/XOznaVTTBkqNLBAK</coggle>


=== Implementierungsdiagramme in Quelltext übersetzen ===
=== Implementierungsdiagramme in Quelltext übersetzen ===
Zeile 29: Zeile 59:
     +setNenner(pNenner: int): void
     +setNenner(pNenner: int): void
     +kuerzen(): void
     +kuerzen(): void
     +asDecimal(): float
     +asDecimal(): double
}
}
}}
}}
Zeile 101: Zeile 131:
Bibliothek--> "1..n" Medium : -medien[]
Bibliothek--> "1..n" Medium : -medien[]
}}
}}
{{Lösung:Start|Lösung Bruch}}
<syntaxhighlight lang="java" line="1">
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;
}
}
</syntaxhighlight>
{{Lösung:End}}


=== Mit Objektreferenzen arbeiten ===
=== Mit Objektreferenzen arbeiten ===
Zeile 108: Zeile 178:
{{#ev:youtube|uxCjtxdSu24}}
{{#ev:youtube|uxCjtxdSu24}}
</center>
</center>
{{Aufgabe:Start}}
Übernimm die gezeigten Klassen in ein neues BlueJ-Projekt und löse die Aufgaben dazu.
{{Aufgabe:End}}
==== Brüche ====
Übernimm die Klasse <code>Bruch</code> von oben und die Klasse <code>Rechner</code> unten.
{{Hinweis|Für das Kürzen eines Bruches benötigst Du den größten gemeinsamen Teiler. Den ggT hatten wir [[Lernpfad:Einführung in Git/8|früher schonmal berechnet]].}}
<syntaxhighlight lang="java" line="1">
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;
    }
}
</syntaxhighlight>


=== Arrays ===
=== Arrays ===


<center>
{{#ev:youtube|F9Fg_YsZmz4}}
{{#ev:youtube|F9Fg_YsZmz4}}
</center>


[[Kategorie:Projekte:2021/22]]
[[Kategorie:Projekte:2021/22]]

Navigationsmenü