Java/Online-Bank und Benutzer:PascalHänle/Grundvorstellungen zum Ableitungsbegriff/Vorwissen: Unterschied zwischen den Seiten

Aus ZUM-Unterrichten
< Java(Unterschied zwischen Seiten)
(Zwischenstand)
Markierung: 2017-Quelltext-Bearbeitung
 
KKeine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
{{Fortsetzung|
{{Navigation verstecken|Zu versteckender Text, ggf. in separatem Template}}<br />{{Box|Info|Auf dieser Seite werden alle Voraussetzung wiederholt, die Sie zur Bearbeitung des Lernpfades benötigen.
vorher=Einstieg in die OOP|vorherlink=Java/Einsteig in die OOP|
Das Vorwissen steht Ihnen auch als PDF zur Verfügung. |Kurzinfo
weiter=Beispiel Uhr|weiterlink=Java/Uhr|
übersicht=Einstieg in Java<br>(Übersicht)|übersichtlink=Java#Übersicht|}}
 
Auf dieser Seite sollen Sie anhand der Simulation eines Online-Kontos selbst Klassen definieren und die grundlegenden Elemente einer (objektorientierten) Programmiersprache
* [[Klasse (Informatik)]]
* [[Attribut (Informatik)]]
* Datentypen für Zahlen: double, für Zeichenketten: String
* [[Quelltext]]
* Instanz eines Objektes
* Der Objektinspektor von [[BlueJ]]
und deren Umsetzung in Java mit Hilfe von BlueJ kennen lernen.
 
==Die Klasse Konto==
Zur besseren Verwaltung gleichartiger Objekte bedient sich [[Java]] des Konzeptes der [[Klasse (Informatik)|Klasse]].
 
{{Merke|
* '''Klassen sind Vorlagen, aus denen Objekte zur Laufzeit erzeugt werden.
* Konvention: Klassennamen werden groß geschrieben. '''}}
 
Man kann sich die Erzeugung von Objekten aus einer Klasse vorstellen wie das Fertigen von Autos aus dem Konstruktionsplan eines bestimmten Fahrzeugtyps. Klassen sind quasi die Konstruktionspläne für Objekte.
 
'''Konkretes Beispiel:'''
Wie sieht ein "Bauplan" zu einem Konto aus (z.B. Girokonto an einer Online-Bank)? Dazu beantworte ich die Frage, was ein Konto auszeichnet.
 
Eine Online-Bank benötigt zumindest den Namen des Besitzers und den aktuell vorhandenen Geldbetrag, um ein Konto anzulegen.  
 
''besitzerName'' und ''kontostand'' sind '''Attribute''' (auch Eigenschaften genannt) von der '''Klasse Konto'''.  
 
{{Definition|
Ein '''Attribut''' ist ein '''strukturelles Merkmal einer Klasse'''.
* Es hat einen '''Namen''' und einen '''Typ'''.
* Konvention: Attributsnamen werden klein geschrieben.
}}
}}


Die Namen von zwei Attributen des Kontos haben wir bereits festgelegt: ''besitzerName'' und ''kontostand''. Nun wird auch ein Typ ([[Datentyp]]) für jedes Attribut gefordert.


Java kennt verschiedene Datentypen. Zwei für unseren Zweck geeignete sind [[String]] und [[Double|double]].
Bild mit Wiederholung einfügen


'''Zeichenketten''', also Aneinanderreihungen von Zeichen, werden in Java mit dem Datentypen '''String''' deklariert. Der Datentyp String eignet sich als Datentyp für ''besitzerName'', da dieser aus beliebigen Zeichen der Tastatur besteht und nicht etwa eine Zahl ist.
==='''Sekanten an Funktionsgraphen'''===
Eine Sekante ist eine Gerade, die den Graphen einer Funktion in zwei Punkten schneidet.
[[Datei:Beispielbild Sekante.png|mini|350x350px|Sekante des Funktionsgraphen <math>f(x)
</math> durch die Punkte <math>A</math> und <math>B</math>.|alternativtext=|ohne]]


Als Typ des Kontostands ''kontostand'' bevorzugen wir einen numerischen Datentypen. '''double''' kann Zahlen im Bereich von +/-1,7E+308 (also 17 mit 307 Nullen) abspeichern, was für unseren Zweck genügen sollte.  
==='''Lineare Funktionen'''===
Lineare Funktion sind Funktionen, die eine Funktionsgleichung der Form <math>f(x)=m\cdot x+y</math> oder  <math>y=m\cdot x+b</math> haben. Der Graph einer linearen Funktion ist eine Gerade. Die Zahl  <math>m</math> gibt den Wert der Steigung an und die Zahl <math>b</math>gibt den y-Wert des Schnittpunkts der Geraden mit der y-Achse an.
<br />
===='''Der Differenzenquotient'''====
Die Steigung des Graphen einer linearen Funktion kann mit Hilfe des Differenzenquotienten berechnet werden.


{{Übung|
Ist eine Funktion <math>f</math> auf einem Intervall <math>[a;b]</math> definiert, so gibt der Differenzenquotient
* Nennen Sie mögliche Attribute einer Klasse Auto, Uhr und Kaffeemaschine. Wählen Sie entsprechend Datentypen für die Attribute.
* Nennen Sie Fälle, bei denen der Zahlenbereich für double nicht ausreichend sein könnte.
}}


==Der erste Quelltext der Klasse Konto==
<math>\frac{\Delta{y}}{\Delta{x}}=\frac{f(b)-f(a)}{b-a}</math> die Steigung <math>m</math> der Geraden durch die Punkte <math>A=(a|f(a))</math> und <math>B=(b|f(b))</math> an.
Nach diesen Einführenden Überlegungen geht es nun daran, den [[Quelltext]] zu erarbeiten. Bei jedem Quelltext muss man sich an die Syntax der Programmiersprache richten. In Java beginnen wir damit, eine Klasse zu definieren. Dazu verwenden wir naheliegenderweise das Wort '''class'''.


public und private regeln die Zugriffsrechte (Fachbegriff: Zugriffsmodifizierer). Als erste Faustregel genügt es, sich zu merken, dass Attribute private und Klassen public sind.
Die Differenzen können auch als <math>\Delta{y} </math>und <math>\Delta{x}</math>geschrieben werden. Der griechische Großbuchstabe Delta steht hier als Symbol für die Differenz der x- und y-Werte.


public class Konto {
====='''Beispiele'''=====
private String besitzerName;
[[Datei:BeispielDQ1.png|verweis=https://unterrichten.zum.de/wiki/Datei:BeispielDQ1.png|rand|480x480px]]                [[Datei:Beispiel_2DQ.png|verweis=https://unterrichten.zum.de/wiki/Datei:Beispiel_2DQ.png|rand|450x450px]]
private double kontostand;
<br />
}


Nun kommt [[BlueJ]] ins Spiel. Mit "Projekt|neu" wird ein neues Projekt angelegt, das wir "Online-Bank" nennen wollen. Mit "Neue Klasse" legen wir eine Klasse mit dem Namen "Konto" an. Wenn alles richtig geklappt hat, sollte es etwa so aussehen:
===='''Die h - Schreibweise'''====
Anstatt die Änderung der y-Werte <math>\Delta{y}=f(x_1)-f(x_0)</math> in Relation zur Differenz <math>\Delta{x}=x_1-x_0</math> zu setzen, kann man den Differenzenquotienten auch wie folgt schreiben: <math>\frac{f(x_0+h)-f(x_0)}{h}</math>
[[Datei:H-Methode_Diff.png|verweis=https://unterrichten.zum.de/wiki/Datei:H-Methode_Diff.png|alternativtext=|rand|zentriert|450x450px]]


[[Bild:Onlinebank1.png]]
===='''Die mittlere Änderungsrate'''====
Die mittlere Änderungsrate ist die relative Änderung eines Bestandes in einem gegebenen Intervall. Sie entspricht der Steigung der Sekante durch die Punkte <math>A=(a|f(a))</math> und <math>B=(b|f(b))</math> der Bestandsfunktion <math>f</math> und lässt sich mit Hilfe des Differenzenquotienten berechnen.


Mit einem Doppelklick auf das beige Rechteck kommt zum [[Editor]], in dem man den Quelltext eintippen kann und anschließend mit dem Button "Übersetzen" abspeichert und ''"compiliert"''.
[[Datei:Bestandsfunktion.png|verweis=https://unterrichten.zum.de/wiki/Datei:Bestandsfunktion.png|rand|400x400px]]
{| class="wikitable"
|+Beispiele für Bestandsgrößen und deren  Änderungen
!Bestandsgröße
!Zuflüsse
!Abflüse
|-
|Anzahl der Schüler
|Einschulungen
|Schulabgänger
|-
|Treibstoffmenge im Tank
|Tanken an der Tankstelle
|Treibstoffverbrauch
|-
|Kontostand
|Zubuchung
|Abbuchung
|-
|Anzahl der Hotelgäste
|ankommende Gäste
|abreisende Gäste
|-
|Staatsverschuldung
|Staatseinnahmen
|Staatsausgaben
|}


====='''Beispiel'''=====
[[Datei:Differenzenquotient Temp.png|mini|450x450px|Bestandsfunktion <math>T(x)</math>]]
Bei einem Experiment wurde die Temperatur einer Flüssigkeit in 10 Minuten Abständen gemessen.  Die mittlere Änderungsrate der Temperatur im Intervall <math>[a;b]</math>lässt sich nun mit Hilfe des Differenzenquotient berechnen.


[[Bild:Onlinebank2.png]]
<math>\frac{\Delta{y}}{\Delta{x}}=\frac{T(b)-T(a)}{b-a}=\frac{9 C}{20 min}=0,45\frac{C}{min}</math>
 
Unten sollte nun zu sehen sein "Klasse übersetzt - keine Syntaxfehler". Wenn das nicht der Fall ist, beginnt die Suche nach Tippfehlern.
 
Nun sollten in dem Hauptfenster von BlueJ die Streifen von der Klassendarstellung verschwunden sein. Mit hilfe der rechten Maustaste kann ich eine "''Instanz des Objektes Konto''" anlegen, indem ich new Konto() wähle.
 
 
[[Bild:Onlinebank3.png]]
 
Ich wähle den vorgegebenen Instanznamen Konto1 und schon habe ich mein Objekt, welches BlueJ unten links als rotes Rechteck visualisiert.
 
[[Bild:Onlinebank4.png]]
 
Ein Rechtsklick auf das rote Rechteck und dann auf Inspizieren öffnet den '''Objektinspektor'''. Dieser gibt einen Überblick über den '''Zustand''' des Objektes: Unser Besitzer heißt '''null''', ein Wort, das Java verwendet, wenn String-Variablen noch keinen Wert haben. Der Kontostand ist 0, was der Anfangswert für alle numerischen Variablen ist.
 
[[Bild:Onlinebank5.png]]
 
Nun möchten wir natürlich andere Werte setzen, einzahlen, auszahlen usw.. Das wird das Konto auch noch können, allerdings bedarf es dazu eines weiteren Ausbaus.
Zunächst daher noch eine
 
{{Übung|
* Erweitern Sie die Klasse Konto um die Attribute kreditlimit und telefonnummer. Welche Datentypen würden Sie verwenden?
* Profis: Recherchieren Sie zum Thema "Genauigkeit von Fließkommazahlen", nach den Grenzen der Genauigkeit des Typs double. Welche weiteren numerischen Datentypen bietet Java?
}}
 
== Weblinks ==
* vgl. {{wpde|Objektorientierte Programmierung#Klassen|Klassen}}
* vgl. {{wpde|Attribut (UML2)|Attribut (UML2)}}
* http://www.informatik.ursulaschule.de/index.php?cid=368


[[Kategorie:Java]]
Von der zwanzigsten bis zur vierzigsten Minute nimmt die Temperatur also im durchschnitt 0,45 Grad Celsius pro Minute zu. Für die Steigung der Sekante durch die Punkte <math>A=(a|T(a))</math>und <math>B=(b|T(b))</math> gilt in dementsprechend <math>m=0,45</math>.
[[Kategorie:Informatik]]
[[Kategorie:Unterrichtsidee]]

Version vom 16. August 2019, 08:24 Uhr


Info

Auf dieser Seite werden alle Voraussetzung wiederholt, die Sie zur Bearbeitung des Lernpfades benötigen.

Das Vorwissen steht Ihnen auch als PDF zur Verfügung.


Bild mit Wiederholung einfügen

Sekanten an Funktionsgraphen

Eine Sekante ist eine Gerade, die den Graphen einer Funktion in zwei Punkten schneidet.

Sekante des Funktionsgraphen durch die Punkte und .

Lineare Funktionen

Lineare Funktion sind Funktionen, die eine Funktionsgleichung der Form oder haben. Der Graph einer linearen Funktion ist eine Gerade. Die Zahl gibt den Wert der Steigung an und die Zahl gibt den y-Wert des Schnittpunkts der Geraden mit der y-Achse an.

Der Differenzenquotient

Die Steigung des Graphen einer linearen Funktion kann mit Hilfe des Differenzenquotienten berechnet werden.

Ist eine Funktion auf einem Intervall definiert, so gibt der Differenzenquotient

die Steigung der Geraden durch die Punkte und an.

Die Differenzen können auch als und geschrieben werden. Der griechische Großbuchstabe Delta steht hier als Symbol für die Differenz der x- und y-Werte.

Beispiele

BeispielDQ1.png Beispiel 2DQ.png

Die h - Schreibweise

Anstatt die Änderung der y-Werte in Relation zur Differenz zu setzen, kann man den Differenzenquotienten auch wie folgt schreiben:

Die mittlere Änderungsrate

Die mittlere Änderungsrate ist die relative Änderung eines Bestandes in einem gegebenen Intervall. Sie entspricht der Steigung der Sekante durch die Punkte und der Bestandsfunktion und lässt sich mit Hilfe des Differenzenquotienten berechnen.

Bestandsfunktion.png

Beispiele für Bestandsgrößen und deren Änderungen
Bestandsgröße Zuflüsse Abflüse
Anzahl der Schüler Einschulungen Schulabgänger
Treibstoffmenge im Tank Tanken an der Tankstelle Treibstoffverbrauch
Kontostand Zubuchung Abbuchung
Anzahl der Hotelgäste ankommende Gäste abreisende Gäste
Staatsverschuldung Staatseinnahmen Staatsausgaben
Beispiel
Bestandsfunktion

Bei einem Experiment wurde die Temperatur einer Flüssigkeit in 10 Minuten Abständen gemessen. Die mittlere Änderungsrate der Temperatur im Intervall lässt sich nun mit Hilfe des Differenzenquotient berechnen.

Von der zwanzigsten bis zur vierzigsten Minute nimmt die Temperatur also im durchschnitt 0,45 Grad Celsius pro Minute zu. Für die Steigung der Sekante durch die Punkte und gilt in dementsprechend .