Benutzer:PascalHänle/Grundvorstellungen zum Ableitungsbegriff/Die Ableitung als lokale lineare Approximation und Java/Einstieg in die OOP: Unterschied zwischen den Seiten

Aus ZUM-Unterrichten
Markierung: 2017-Quelltext-Bearbeitung
 
K (Größe der Bilder geändert)
Markierung: 2017-Quelltext-Bearbeitung
 
Zeile 1: Zeile 1:
{{Navigation verstecken|{{Vorlage:Lernpfad-Navigation| [[Grundvorstellungen zum Ableitungsbegriff]]<br />[[Die Ableitung als lokale Änderungsrate]]}}|Navigation anzeigen|Navigation verbergen}}Für diese Grundvorstellung werden Sie verschiedene Funktionen unter die Lupe nehmen und feststellen wie sich diese in kleinen Umgebungen um einen Punkt verhalten.
{{Fortsetzung|
vorher=Erste Schritte|vorherlink=Java/Erste Schritte|
weiter=Einstieg in die OOP<br>(Online-Bank)|weiterlink=Java/Online-Bank|
übersicht=Einstieg in Java<br>(Übersicht)|übersichtlink=Java#Übersicht|}}


Bild einfügen
==Beispielprojekt "Shapes"==  
<br />{{Box|Aufgabe 1|a) Zoomen Sie vermehrt an den Punkt A. Was stellen Sie fest? Beschreiben sie Ihre Beobachtung?
{{Lösung versteckt|[[/Aufgabe 1 a)/|zum Applet]]<ggb_applet height="500" width="1000" showmenubar="true" showreseticon="true" id="e9jhefpy" />
|Applet anzeigen|Applet verbergen}}<br />
b) Was erwarten Sie, wenn Sie an den Punkt B zoomen? Überprüfen Sie Ihre Vermutung mit dem Applet. Beschreiben Sie Ihre Vermutung und was Sie festgestellt haben.
{{Lösung versteckt|[[/Aufgabe 1 b)/|zum Applet]]<ggb_applet id="dyeqwu9b" width="50%" height="450" border="8888"></ggb_applet>
|Applet anzeigen|Applet verbergen}} <br /> c) An welchen Stellen des Funktionsgraphen würde es beim Hineinzoomen ebenfalls so aussehen wie um den Punkt B?|Arbeitsmethode
}}{{Vorlage:Lernpfad-Navigation|Wenn wir beim Hineinzoomen in einen Funktionsgraphen bemerken, dass dieser aussieht wie eine Gerade, nennen wir diese Funktion ,,lokal linear" an diesem Punkt.}}


{{Box|Aufgabe 2|In dieser Aufgabe werden Sie Funktionen untersuchen in denen die lokale Linearität nicht auf Anhieb ersichtlich ist. Geben Sie im Applet die kritischen Punkte ein die Sie untersuchen möchten und überprüfen Sie die lokale Linearität durch Hineinzoomen. <br />
Herzlichen Dank an Ulrich Helmich, dessen Materialien verwendet werden durften.
a) <math>f(x)= \sqrt{x^2}</math>         [[/Aufgabe 2a)|zum Applet]] <br />
 
b) <math>g(x)=100x^2</math> [[/Aufgabe 2b)|zum Applet]] <br />
Zudem lohnt sich ein Blick auf seine Seite, da er dort das Beispiel noch ausführlicher behandelt.
c) <math>h(x)=|x^2-4|</math> [[/Aufgabe 2c)|zum Applet]] <br />|Arbeitsmethode
 
*u-helmich.de: [https://www.u-helmich.de/inf/BlueJ/kurs11/Folge02/index02.html Folge 2: Wir programmieren]
 
{{Übung|
[[Datei:BlueJ shapes0.png|alternativtext=Benutzerschnittstelle (GUI Graphical User Interface)|mini|Benutzerschnittstelle (GUI Graphical User Interface)]]
Starten Sie BlueJ und laden Sie das Beispielprojekt "Shapes". Sie finden es im Installationsordner von BlueJ unter <code>c:\bluej\examples\shapes</code> (Windows) bzw. <code>/usr/share/doc/BlueJ/shapes</code> (Linux). In dem weißen Hauptbereich kann man vier '''[[#Klassen|Klassen]]''' erkennen: Leinwand (Canvas), Kreis (Circle), Quadrat (Square) und Dreieck (Triangle).
* Die Spracheinstellung der Benutzeroberfläche können Sie im Menü unter Werkzeuge (Tools) > Einstellungen (Preferences) > Benutzeroberfläche (Interface) verändern.
* In der linken Spalte wählen Sie den Befehl '''Übersetzen''' ('''Compile'''): Dadurch wird der Quelltext (Sourcecode) in Maschinensprache übersetzt, welches sich am Verschwinden der Schraffierung zeigt.[[Datei:BlueJ shapes1.png|alternativtext=Leinwand mit drei bunten Figuren|mini|Leinwand mit drei bunten Figuren]]
# Klicken Sie nun mit der rechten Maustaste auf jede Figuren-'''Klasse''' und rufen Sie den Befehl <code>newCircle()</code>, <code>newSquare()</code>, <code>newTriangle()</code> auf. Mit diesem Befehl erzeugen Sie eine '''Instanz''' der Klasse, der sie dann einen Namen (z.B. circle1) geben müssen. Solche Klassen-Instanzen bezeichnet man als '''[[#Objekte|Objekte]]'''.
# Klicken Sie mit der rechten Maustaste auf jedes dieser Objekte: Es erscheint ein Kontextmenü mit vielen Befehlen. Bei den meisten dieser Befehle handelt es sich um '''Methoden'''.
# Wählen Sie die '''Methode''' <code>sichtbarMachen()</code> für jedes Objekt. Es erscheint eine Leinwand mit den drei Objekten wie in Abbildung 1.
}}
}}


{{Vorlage:Lernpfad-Navigation|Wenn man beim Hineinzoomen in einem Punkt feststellt, dass die Funktion an dieser Stelle lokal linear ist, nennen wir die Funktion an dieser Stelle differenzierbar.}}
{{Aufgabe|[[Datei:BlueJ shapes2.png|alternativtext=Buntes Haus mit Sonne|mini|Buntes Haus mit Sonne]]Versuchen Sie durch geschickten Aufruf
* der '''Methode''' <code>farbeAendern(String neueFarbe)</code> und
* der '''Methode''' <code>groesseAendern(int neuerDurchmesser)</code>
die Abbildung 2 zu erzeugen. Notieren Sie sich die finalen Eigenschaften (Kontextmenü > Inspizieren) der Objekte, dann werden Sie schneller mit der nächsten Aufgabe fertig.}}
 
==Grundbegriffe der OOP==
{{:Java/Glossar}}
 
==Übungen zu den Begrifflichkeiten der OOP==
 
{{Aufgabe|#Erstellen Sie durch das Bewegen der Figuren und das Verändern ihrer Farben folgende Zeichnung:
# Untersuchen Sie die im Projekt „Figuren“ enthaltenden Klassen auf die Methoden und Eigenschaften. Sammeln Sie von jeder Klasse mindestens vier Methoden und vierEigenschaften.}}
 
{{3Spalten|
'''Dreieck'''


{{Box|Aufgabe 3|Nun werden Sie mit Hilfe des Funktionenmikroskop die Steigung einer Funktion in einem bestimmten Punkt bestimmen. <br />
Eigenschaften (Attribute):
a) Zoomen Sie  in [[/Aufgabe 3a)/|diesem Applet]] vermehrt in den Punkt A hinein und schieben Sie B durch Verkleinerung von h näher an A heran. Berechnen Sie mit Hilfe des Differenzenquotienten die Steigung, die der Graph ,,im" Punkt A hat so genau wie möglich. <br /> Tipp: Mit den Pfeiltasten lässt sich der Schieberegler feiner ändern.<br />
 
{{Lösung versteckt|Hier die Lösung der Rechnung{{Box|Differentialquotient|Der Differenzenquotient  <math>  \frac{f(x_0+h)-f(x_0)}{h}</math> kommt der Steigung im Punkt <math>P (x_0,f(x_0))</math> beliebig nahe, je näher <math>h</math> der Null kommt.<br/>
<code>xPosition : int</code>
Dieser Grenzwert des Differenzenquotienten ist der Differentialquotient <math> f'(x_0) = \lim_{h\to 0} \frac{f(x_0+h)-f(x_0)}{h}</math>. <br/> Der Differentialquotient <math> f'(x_0) </math> wird auch als Ableitung der Funktion <math>f</math> an der Stelle <math>x_0</math> bezeichnet. |Merksatz
 
}}
____
| Lösung anzeigen|Lösung verbergen}}
 
b) Welches Problem kann bei der Verschiebung von B gegen A auftreten? Was muss für die Bestimmung der Steigung gewährleistet sein?<br />
____
c) Betrachten Sie in [[/Aufgabe 3c)/|diesem Applet]] die Sekante durch die Punkte A und B und verschieben erneut den Punkt B gegen A. Beschreiben Sie die Gerade die entsteht.{{Lösung versteckt|Hier die Lösung {{Box|Tangente|Die Geraden, die durch den Punkt <math>P(x_0|f(x_0))</math> verläuft und die gleiche Steigung wie der Graph von f an dieser Stelle hat, nennt man Tangente.|Merksatz
 
}}
____
| Lösung anzeigen|Lösung verbergen}}|Arbeitsmethode
 
}}
Methoden (Operationen):
 
<code>farbeAendern(String neueFarbe)</code>
 
___
 
___
 
___
|
'''Quadrat'''
 
Eigenschaften:
 
___
 
___
 
___
 
___
 
Methoden:
|
'''Kreis'''


Eigenschaften:


==Die Tangente als lokale lineare Approximation==
___
Wie du in den Aufgaben zuvor schon gesehen hast, lässt sich der Graph der Funktion in einer kleinen Umgebung sehr gut durch die Tangente nähern.


Aufgabe 4 (lies sich nicht in eine Aufgabe einbetten. Keine Ahnung warum.)
___


Wir betrachten die Funktion f(x)=0,25x², die Tangente der Funktion am Punkt P (x0|f(x0)) mit x0 = 1,5und die Abweichung h von x0. <br />
___
a) Für welche Werte von h lassen sich die Werte der Funktion durch die der Tangente gut annähern? Entscheiden Sie mit Hilfe [[/Aufgabe 4 c)/|des Applets]] und interpretieren Sie die rote Strecke.<br />
b) Bestimmen Sie die Gleichung der Tangente mit Hilfe des Differentialquotienten. <br />
c) Bestimmen Sie durch Berechnung des Approximationsfehlers einen h-Wert für eine ,,gute" und ein h-Wert für eine ,,schlechte" Näherung durch die Tangente. {{Box|Aufgabe 4|Wie du in den Aufgaben zuvor schon gesehen hast, lässt sich der Graph der Funktion in einer kleinen Umgebung sehr gut durch die Tangente nähern.


Aufgabe 4 (lies sich nicht in eine Aufgabe einbetten. Keine Ahnung warum.)
___


Wir betrachten die Funktion f(x)=0,25x², die Tangente der Funktion am Punkt P (x0|f(x0)) mit x0 = 1,5und die Abweichung h von x0.
Methoden:
a) Für welche Werte von h lassen sich die Werte der Funktion durch die der Tangente gut annähern? Entscheiden Sie mit Hilfe des Applets und interpretieren Sie die rote Strecke.
b) Bestimmen Sie die Gleichung der Tangente mit Hilfe des Differentialquotienten.
c) Bestimmen Sie durch Berechnung des Approximationsfehlers einen h-Wert für eine ,,gute" und ein h-Wert für eine ,,schlechte" Näherung durch die Tangente.|Arbeitsmethode
}}<br />
{{Box|Aufgabe 5|Bestimmen Sie durch Addition der farbigen Strecken die allgemeine Gleichung zur Berechnung der Werte für <math>f(x_0+h)</math>. Nutzen Sie als Hilfe das folgende Applet. <br/>{{Lösung versteckt|[[Datei:Approximation_farbliche_Strecken.png|rand|571x571px]]
|Graphik anzeigen|Graphik verbergen}}|Arbeitsmethode
}}
}}
{{Box|Aufgabe 6|Lassen Sie nun den Approximationsfehler für kleine h außer Acht und betrachten die Näherungsfunktion <math> f(x_0+h) =f(x_0)+f'(x_0)*h</math>  Stellen Sie die Gleichung nach <math>f'(x)</math> um. Was fällt Ihnen auf?|Arbeitsmethode
 
}}
{{Box|Übergabeparameter und Rückgabewert| Stellen Sie bei den folgenden Methoden den Datentyp des Parameters und den Ergebnistyp dar.|Aufgabe}}
<br />
 
{| class="wikitable"
!Methodenkopf!!Datentyp des Übergabeparameters!!Ergebnistyp
|-
|public void horizontalBewegen (int entfernung)|| ||
|-
|public void horizontalBewegen (int entfernung)|| ||
|-
|public int gibGroesse()Public void loeschen()|| ||
|-
|public void groesseAendern(int Hoehe, int Breite)|| ||
|}
 
{{Aufgabe|Beschreiben Sie am Beispiel eines Kartenspiels die Begriffe Klasse, Objekt, Methode und Eigenschaft.    Entwerfen Sie dazu die Klasse Karte.}}
 
[[Kategorie:Java]]

Version vom 13. November 2019, 14:43 Uhr

Beispielprojekt "Shapes"

Herzlichen Dank an Ulrich Helmich, dessen Materialien verwendet werden durften.

Zudem lohnt sich ein Blick auf seine Seite, da er dort das Beispiel noch ausführlicher behandelt.


Übung
Benutzerschnittstelle (GUI Graphical User Interface)
Benutzerschnittstelle (GUI Graphical User Interface)

Starten Sie BlueJ und laden Sie das Beispielprojekt "Shapes". Sie finden es im Installationsordner von BlueJ unter c:\bluej\examples\shapes (Windows) bzw. /usr/share/doc/BlueJ/shapes (Linux). In dem weißen Hauptbereich kann man vier Klassen erkennen: Leinwand (Canvas), Kreis (Circle), Quadrat (Square) und Dreieck (Triangle).

  • Die Spracheinstellung der Benutzeroberfläche können Sie im Menü unter Werkzeuge (Tools) > Einstellungen (Preferences) > Benutzeroberfläche (Interface) verändern.
  • In der linken Spalte wählen Sie den Befehl Übersetzen (Compile): Dadurch wird der Quelltext (Sourcecode) in Maschinensprache übersetzt, welches sich am Verschwinden der Schraffierung zeigt.
    Leinwand mit drei bunten Figuren
    Leinwand mit drei bunten Figuren
  1. Klicken Sie nun mit der rechten Maustaste auf jede Figuren-Klasse und rufen Sie den Befehl newCircle(), newSquare(), newTriangle() auf. Mit diesem Befehl erzeugen Sie eine Instanz der Klasse, der sie dann einen Namen (z.B. circle1) geben müssen. Solche Klassen-Instanzen bezeichnet man als Objekte.
  2. Klicken Sie mit der rechten Maustaste auf jedes dieser Objekte: Es erscheint ein Kontextmenü mit vielen Befehlen. Bei den meisten dieser Befehle handelt es sich um Methoden.
  3. Wählen Sie die Methode sichtbarMachen() für jedes Objekt. Es erscheint eine Leinwand mit den drei Objekten wie in Abbildung 1.



Aufgabe
Buntes Haus mit Sonne
Buntes Haus mit Sonne
Versuchen Sie durch geschickten Aufruf
  • der Methode farbeAendern(String neueFarbe) und
  • der Methode groesseAendern(int neuerDurchmesser)
die Abbildung 2 zu erzeugen. Notieren Sie sich die finalen Eigenschaften (Kontextmenü > Inspizieren) der Objekte, dann werden Sie schneller mit der nächsten Aufgabe fertig.

Grundbegriffe der OOP

Klasse

Eine Klasse ist eine Vorschrift zur Konstruktion von Objekten. Eine Klasse ist immer etwas Abstraktes. Eine Klasse kann zum Beispiel nicht angezeigt werden. Dazu müssen erst Objekte der Klasse erzeugt werden.

Beispiel

Die Klasse „Kreis“ im Beispiel enthält einen Bauplan eines Kreises. Nach diesem können konkrete Kreise angelegt werden.

Konvention Klassennamen sind Substantive. Sie werden groß geschrieben z.B. Canvas, Circle, Square, Triangle.

Objekt

Ein Objekt ist eine konkrete, aus der Klasse abgeleitete oder erzeugte Instanz, die sich durch einen bestimmten Zustand auszeichnet. Aus einer Klasse können mehrere Objekte gebildet werden, die sich voneinander unterscheiden können.

Beispiel

BlueJ benennt Objekte selbst. Es wird der Klassenname verwendet und eine Zahl angehängt: circle1, circle2, circle3

Konvention Objektnamen werden klein geschrieben z.B. circle1, circle2, circle3.

Methoden

Methoden sind Operationen, die entweder den Zustand eines Objektes ändern (verändernde Methoden) oder Informationen über den Zustand eines Objektes zurückliefern (sondierende Methoden).

Beispiel

Durch die Methode farbeAendern() verändert man die Eigenschaft Farbe eines Objektes.

Konvention Methoden sind Verben. Sie werden klein geschrieben z.B. farbeAendern().

Vertiefung

Konventionen bei der Namensgebung

Für die Wahl der Namen von Klassen, Methoden und Variablen gelten in Java Konventionen:

  • Es wird die sogenannte CamelCase-Schreibweise verwendet: Mehrere Wörter werden zusammen geschrieben. Dabei beginnt jedes Wort in der Mitte mit einem Großbuchstaben:
    vgl. sichtbarMachen(), einGrünerKreis
  • Verwenden Sie Sprechende Namen, damit Ihnen (oder anderen, die Ihren Code später lesen) das Verständnis erleichtert wird. So soll aus dem Namen möglichst hervorgehen, welche Funktion die Klasse, Methode oder Variable hat.


Übungen zu den Begrifflichkeiten der OOP

Aufgabe
  1. Erstellen Sie durch das Bewegen der Figuren und das Verändern ihrer Farben folgende Zeichnung:
  2. Untersuchen Sie die im Projekt „Figuren“ enthaltenden Klassen auf die Methoden und Eigenschaften. Sammeln Sie von jeder Klasse mindestens vier Methoden und vierEigenschaften.

Dreieck

Eigenschaften (Attribute):

xPosition : int

____

____

____

Methoden (Operationen):

farbeAendern(String neueFarbe)

___

___

___

Quadrat

Eigenschaften:

___

___

___

___

Methoden:

Kreis

Eigenschaften:

___

___

___

___

Methoden:


Übergabeparameter und Rückgabewert
Stellen Sie bei den folgenden Methoden den Datentyp des Parameters und den Ergebnistyp dar.
Methodenkopf Datentyp des Übergabeparameters Ergebnistyp
public void horizontalBewegen (int entfernung)
public void horizontalBewegen (int entfernung)
public int gibGroesse()Public void loeschen()
public void groesseAendern(int Hoehe, int Breite)


Aufgabe
Beschreiben Sie am Beispiel eines Kartenspiels die Begriffe Klasse, Objekt, Methode und Eigenschaft. Entwerfen Sie dazu die Klasse Karte.