Lazarus/Prozeduren, Funktionen und Bibliotheken und Benutzer:PascalHänle/Grundvorstellungen zum Ableitungsbegriff/Infos für Lehrkräfte: Unterschied zwischen den Seiten

Aus ZUM-Unterrichten
< Lazarus(Unterschied zwischen Seiten)
main>Peterdauscher
Keine Bearbeitungszusammenfassung
 
KKeine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
{{Lazarus-Buch}}
==Handreichung für Lehrkräfte==


== Prozeduren ==


=== Einfache Prozeduren ===
In diesem Lernpfad werden Grundvorstellungen zum Ableitungsbegriff behandelt. Der Lernpfad ist so aufgebaut, dass sich Schülerinnen und Schüler die


Wenn man Programme schreibt und immer mehr erweitert, so besteht die Gefahr, dass sie nicht nur immer größer sondern auch immer unübersichtlicher werden. Deshalb ist es sinnvoll, bestimmte, immer wiederkehrende Folgen von Befehlen mit einer bestimmten Bedeutung in einer Art selbst gebautem Befehl zusammenzufassen. Solche Befehle heißen auch '''Prozedur''' (engl.: '''procedure'''). Manche Leser werden den Sketch "Dinner for one" [https://de.wikipedia.org/wiki/Dinner_for_One] kennen, bei dem Butler James immer wieder fragt: "Same procedure as last year, Miss Sophie" und Miss Sophie jedes Mal antwortet "Same procedure as ''every'' year, James" . James und Miss Sophie meinen genau dasselbe wie wir: einen fest geregelten Ablauf von Dingen.
*Ableitung als momentane Änderungsrate
*Ableitung als Steigung der Tangente
*Ableitung als lokale lineare Approximation
*Ableitung als Änderungsdetektor


==== Beispiel einer einfachen Prozedur ====
selbst erarbeiten können.


Ein sehr sehr einfaches Beispiel für eine Prozedur könnte ein Hinweis sein, der angezeigt werden soll, begleitet von einem hörbaren Signal. Das Programm benötigt lediglich einen Button mit dem Namen <tt>Button1</tt>.
Der Lernpfad ist nach den Prinzipien des entdeckenden Lernens gestaltet und bietet den Vorteil, dass der Fortschritt beim Lernen von Mathematik im Zuge von entdeckerischen Unternehmungen umso effektiver ist, je mehr es auf der eigenen Erfahrung, also dem eigenen Wissen und Können beruht.  


{{kasten_blau|<source  line highlight="30-34,38" lang="pascal">
In dieser Handreichung werden nun Möglichkeiten aufgezeigt wie der Lernpfad in den Unterricht eingebunden werden kann und was bei den einzelnen Grundvorstellungen und Aufgaben zu beachten ist.
unit hinweis_geben;


{$mode objfpc}{$H+}
Im Lernpfad sind zu allen gestellten Aufgaben die benötigten Voraussetzungen, Lösungen und passenden Hilfestellungen vorhanden.   
interface
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  ExtCtrls;


type
==Grundvorstellungen==
  { TForm1 }
[[Datei:Modellierungsprozess.png|mini|500x500px|Modellierungsprozess]]
Grundvorstellungen sind Instrumente der Vermittlung zwischen Mathematik und Realität. Sie weisen mathematischen Begriffen eine inhaltliche Deutung und Sinnhaftigkeit zu, was eine wesentliche Voraussetzungen für einen verständnisvollen Umgang mit Begriffen darstellt. Mit diesen Eigenschaften spielen sie eine zentrale Rolle bei der mathematischen Modellierung und greifen im Modellierungskreislauf beim Prozess der Mathematisierung und der Interpretation.


  TForm1 = class(TForm)
<br />
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;


var
  Form1: TForm1;


implementation
===Hinweise zu den Grundvorstellungen===
Wird der Lernpfad in den Unterricht eingebunden so ist bei Gruppenreflexionen oder Sicherungen der Aufgaben auf folgenden Punkte zu achten.


{$R *.lfm}
=====Ableitung als Steigung der Tangente=====


{ TForm1 }
*Erweiterung des Tangentenbegriffs als lokale Schmiegegerade.


procedure Hinweis;
*Vermeidung der Sichtweise die Tangente schneide den Graph nur in einem Punkt.
begin
  Beep;
  ShowMessage('Sie haben den Knopf gedrückt');
end;


procedure TForm1.Button1Click(Sender: TObject);
*Die Tangente hat die gleiche Steigung wie der Graph an dem Punkt den sie berührt.
begin
Hinweis;
end;


end.
=====Ableitung als momentane Änderungsrate=====
Speziell bei dieser, aber auch bei den anderen Grundvorstellungen ist immer auf das Verständnis aller Beschreibungsebenen zu achten.  
{| class="wikitable"
|'''Beschreibungsebene'''
|Schritt 1
|Schritt 2
|Schritt 3
|Schritt 4
|-
|Algebraisch
|<math>f(x_0)</math>
|<math>f(x_1)-f(x_0)</math>
|<math>\frac{f(x_1)-f(x_0)}{x_1-x_0} </math>
|<math>f'(x_0) = \lim_{x_1\to x_0} \frac{f(x_1)-f(x_0)}{x_1-x_0} </math>
|-
|Inhaltlich
|Bestand zum Zeitpunkt x<sub>0</sub>
|Absoluter Zuwachs in der Zeit von  x<sub>0</sub> bis x
|Relativer Zuwachs im Zeitintervall  [x<sub>0</sub>,x] mittlere Änderungsrate
|Momentane (lokale) Änderungsrate  zum Zeitpunkt x<sub>0</sub>
|-
|Terminologisch
|Funktionswert
|Differenz der Funktionswerte
|Differenzenquotient
|Differentialquotient


</source>}}
(Ableitung)
|}
Auch wenn der Übergang zum analytischen erst von Schritt 3 auf Schritt 4 vollzogen wird, sind die Schritte 1 und 2 nicht zu vernachlässigen. <br />


=====Ableitung als lineare Approximation=====


Man sieht, dass nach der Definition des eigenen Befehls (der Prozedur) "Hinweis" vollkommen genügt, diesen Befehl aufzurufen.
*In einer stark Vergrößerten Umgebung eines Punktes des Graphen einer differenzierbaren Funktion ist dieses Teilstück des Graphen geradlinig.


=== Prozeduren mit Wertparametern ===
*Da eine differenzierbare Funktion in hinreichend kleinen Umgebungen linear ist, kann sie in dieser Umgebung durch die Tangente genähert werden.


Die oben gezeigte Prozedur tut immer genau das gleiche: Sie gibt das akustische Signal und den Hinweis "Sie haben den Knopf gedrückt". Häufig jedoch kommt es vor, das eine Prozedur zwar immer ähnliche, aber eben doch leicht verschiedene Dinge tun soll. So wäre es z.B. praktisch, wenn man den Hinweistext selbst immer wieder neu bestimmen könnte. Das funktioniert auch, wenn man der Prozedur einen so genannten Paramter mit auf den Weg gibt. Wir betrachten wiederum ein Beispiel:
==Möglichkeiten der Einbindung==


*Da es sich hier um einen Wiki - Lernpfad handelt, können verschiedene Aufgaben aus dem Lernpfad herauskopiert werden und an die Anforderungen der eigenen Lerngruppe angepasst werden. So können auch einzelne Aufgaben des Lernpfads im Unterricht bearbeitet werden.


{{kasten_blau|<source line start="30" highlight="1,11" lang="pascal">
*Es kann jede Grundvorstellung allein stehend von den Schülern selbst erarbeitet werden und kann somit als Hausaufgabe oder Wochenaufgabe aufgegeben werden.
procedure Hinweis(nachricht: string);
begin
  Beep;
  ShowMessage(nachricht);
end;


procedure TForm1.Button1Click(Sender: TObject);
*Die Aufgaben des Lernpfads sind auch auf folgenden Arbeitsblättern festgehalten und können den Schülern somit ausgedruckt werden. So benötigt lediglich die Bedienung der Applets ein PC oder Tablet. Dies kann bei mangelnder Ausstattung von Vorteil sein.
var alter : integer;


begin
<br />
Hinweis('Eine frei gewählte Nachricht');
end;
</source>}}


Unterscheiden tun sich die gelb markierten Zeilen: Bei der Definition der Prozedur "Hinweis" in Zeile 30 ist hinter dem Namen der Prozedur noch in Klammern eine Variable angegeben, die in diesem Fall den Namen <tt>nachricht </tt> trägt und vom Typ <tt>string</tt> ist.
==Hinweise zu den Aufgaben==
Wird nun in Zeile 40 der neue Befehl <tt>Hinweis</tt> aufgerufen, und zwar mit der Zeichenkette <tt>'Eine frei gewählte Nachricht'</tt> in Klammern, so wird die Variable <tt>nachricht</tt> mit diesem Wert belegt.
Das Ziel jeder Aufgabe des Lernpfads ist es, durch angeleitetes Selbsterkunden in den Applets oder mithilfe von Tabellen und Graphiken Erkenntnisse zu gewinnen. Trotz eingebauter Hilfestellungen und Lösungskontrollen ist es gerade bei der Vermittlung von Grundvorstellung wichtig die selbstgewonnen Erkenntnisse mit denen von Anderen zu vergleichen und somit auf ihre mathematische Korrektheit zu überprüfen. Es wird daher empfohlen an geeigneten Stellen gemeinsame Sicherungs- oder Reflexionsphasen einzubauen.
Wird nun innerhalb der Prozedur wiederum der Befehl ShowMessage mit <tt>nachricht</tt> als Parameter aufgerufen, so erscheint tatsächlich die Meldung mit dem richtigen Text auf dem Bildschirm.
 
'''Wichtige Anmerkung:'''
Die Variable <tt>nachricht</tt> ist eine neue, eigenständige Variable. Beim Aufruf der Prozedur Hinweis wird ihr ein entsprechender Zeichenkettenwert zugewiesen. Wird dieser im Lauf der Prozedur verändert, so wirkt sich das auf das aufrufende Programm nicht aus.
 
 
=== Prozeduren mit Referenzparametern ===
 
Nun kann es sein, dass es der Zweck einer Prozedur sein soll, den Wert einer Variable im aufrufenden Programm aber tatsächlich zu ändern. Als Beispiel betrachten wir den (sehr sehr einfachen) Fall, bei dem der Wert einer Integer-Variable verdoppelt werden soll. Das Programm benötigt den Button <tt>Button1</tt> und das Edit-Feld <tt>Edit1</tt>. Der Vorspann mit Variablen usw. ist hier einfach einmal weggelassen.
 
 
{{kasten_blau|<source line start="30" highlight="1,10" lang="pascal">
procedure verdopple (zahl : integer);
begin
zahl:=zahl*2;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var zahlenwert : integer;
begin
zahlenwert:=StrToInt(Edit1.Text);
verdopple(zahlenwert);
Edit1.Text:=IntToStr(zahlenwert);
end;
</source>}}
 
Beim Ausprobieren merkt man: Das Beispiel funktioniert offensichtlich nicht. Der Inhalt des Edit-Feldes bleibt beim Drücken des Knopfes genau gleich.
 
Wir müssen das Programm leicht abändern, damit es funktioniert. Wir fügen in Zeile 30 vor der Variable <tt>zahl</tt>  das Schlüsselwort <tt>var</tt> ein. Das ist eigentlich ein wenig missverständlich, denn es soll bedeuten:
<tt>zahl</tt> ist '''keine''' eigenständige Variable sondern nur noch eine Art Spitzname für die Variable im Funktionsaufruf (man sagt auch: '''Referenz auf die Variable'''), in diesem Fall <tt>zahlenwert</tt>. Mit
<tt>zahl:=zahl*2</tt> wird jetzt in Wirklichkeit die Variable <tt>zahlenwert</tt> verdoppelt.
 
{{kasten_blau|<source line start="30" highlight="1,10" lang="pascal">
procedure verdopple (var zahl : integer);
begin
zahl:=zahl*2;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var zahlenwert : integer;
begin
zahlenwert:=StrToInt(Edit1.Text);
verdopple(zahlenwert);
Edit1.Text:=IntToStr(zahlenwert);
end;
</source>}}
 
Durch diese kleine Änderung funktioniert jetzt das Programm tadellos.
 
 
== Funktionen ==
 
Im Grunde würden Prozeduren mit Wert- und Referenzparametern vollkommen ausreichern, um immer wiederkehrende Abläufe in selbstdefinierte Befehle zu verpacken (Informatiker sprechen gerne auch von "'''verkapseln'''").
 
So könnte man zum Beispiel eine Prozedur zum Berechnen des Quadrats von integer-Zahlen schreiben. Das Beispielprogramm benötigt die Komponenten <tt>Button1, Edit1, Edit2</tt>:
 
 
{{kasten_blau|<source line start="30" highlight="1,11" lang="pascal">
procedure quadrat(zahl : integer; var ergebnis: integer);
begin
ergebnis:=zahl*zahl;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var zahlenwert : integer;
    zahlenwertquadriert : integer;
begin
zahlenwert:=StrToInt(Edit1.Text);
quadrat(zahlenwert,zahlenwertquadriert);
Edit2.Text:=IntToStr(zahlenwertquadriert);
end;                           
</source>}}
 
Aber gerade im mathematischen Bereich ist das eher unüblich: außerdem muss man immer überlegen, welcher der beiden Parameter nun die eigentliche Zahl und welche das spätere Quadrat werden soll. Eleganter ist daher die folgende Schreibweise:
 
{{kasten_blau|<source line start="30" highlight="1,11" lang="pascal">
function quadrat(zahl : integer) : integer;
begin
quadrat:=zahl*zahl;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var zahlenwert : integer;
    zahlenwertquadriert : integer;
begin
zahlenwert:=StrToInt(Edit1.Text);
zahlenwertquadriert:=quadrat(zahlenwert);
Edit2.Text:=IntToStr(zahlenwertquadriert);
end;                           
</source>}}
 
 
== Bibliotheken ==
Das Ausgliedern von immer gleichen Routinen in Prozeduren und Funktionen als eigene Befehle macht auch größere Programme übersichtlicher. Allerdings hilft bei sehr großen Programmen (mit mehreren Tausenden Zeilen) das auch nicht mehr so sonderlich viel. Deshalb kann man in diesem Fall Teile der Prozeduren und Funktionen in eigene Dateien ausladen, so genannte Bibliotheken, die in der Sprache Pascal auch als <tt>Units</tt> bezeichnet werden. 
 
Ein weiterer Vorteil von Bibliotheken ist, dass mehrere andere Programme die darin definierten Befehle benutzten Befehle verwenden können, ohne dass man die entsprechenden Funktionen und Prozeduren in das eigene Programm hineinkopieren muss. Vielmehr genügt es, in der Zeile <tt>uses ...</tt> den Namen der benutzten Unit anzugeben.
Eine solche Bibliothek haben wir im Kapitel [[../Computer-Mathematik/]] bereits kennen gelernt: die <tt>Unit Math</tt>, in der viele praktische mathematische Befehle definiert sind.
 
Eine weitere Unit soll uns das Leben in den nächsten Kapiteln erleichtern: <tt>LazIOStuff</tt> Diese ist allerdings nicht Bestandteil der derzeitigen Lazarus-Entwicklungsumgebung, sondern kann kostenlos aus dem Internet heruntergeladen werden:
 
[http://sourceforge.net/projects/laziostuff/files/laziostuff.pas/download laziostuff.pas].
 
 
Im Gegensatz zur Unit <tt>Math</tt> muss man die Datei <tt>laziostuff.pas</tt> in den Ordner kopieren, in dem sich auch das eigene Projekt befindet. Ansonsten funktionieren die Programme, die sie benutzen, einfach nicht. Der Compiler beschwert sich, dass die aufgerufenen Befehle nicht existieren.
 
 
{{Lazarus-Buch}}

Version vom 13. August 2019, 09:06 Uhr

Handreichung für Lehrkräfte

In diesem Lernpfad werden Grundvorstellungen zum Ableitungsbegriff behandelt. Der Lernpfad ist so aufgebaut, dass sich Schülerinnen und Schüler die

  • Ableitung als momentane Änderungsrate
  • Ableitung als Steigung der Tangente
  • Ableitung als lokale lineare Approximation
  • Ableitung als Änderungsdetektor

selbst erarbeiten können.

Der Lernpfad ist nach den Prinzipien des entdeckenden Lernens gestaltet und bietet den Vorteil, dass der Fortschritt beim Lernen von Mathematik im Zuge von entdeckerischen Unternehmungen umso effektiver ist, je mehr es auf der eigenen Erfahrung, also dem eigenen Wissen und Können beruht.

In dieser Handreichung werden nun Möglichkeiten aufgezeigt wie der Lernpfad in den Unterricht eingebunden werden kann und was bei den einzelnen Grundvorstellungen und Aufgaben zu beachten ist.

Im Lernpfad sind zu allen gestellten Aufgaben die benötigten Voraussetzungen, Lösungen und passenden Hilfestellungen vorhanden.   

Grundvorstellungen

Modellierungsprozess

Grundvorstellungen sind Instrumente der Vermittlung zwischen Mathematik und Realität. Sie weisen mathematischen Begriffen eine inhaltliche Deutung und Sinnhaftigkeit zu, was eine wesentliche Voraussetzungen für einen verständnisvollen Umgang mit Begriffen darstellt. Mit diesen Eigenschaften spielen sie eine zentrale Rolle bei der mathematischen Modellierung und greifen im Modellierungskreislauf beim Prozess der Mathematisierung und der Interpretation.



Hinweise zu den Grundvorstellungen

Wird der Lernpfad in den Unterricht eingebunden so ist bei Gruppenreflexionen oder Sicherungen der Aufgaben auf folgenden Punkte zu achten.

Ableitung als Steigung der Tangente
  • Erweiterung des Tangentenbegriffs als lokale Schmiegegerade.
  • Vermeidung der Sichtweise die Tangente schneide den Graph nur in einem Punkt.
  • Die Tangente hat die gleiche Steigung wie der Graph an dem Punkt den sie berührt.
Ableitung als momentane Änderungsrate

Speziell bei dieser, aber auch bei den anderen Grundvorstellungen ist immer auf das Verständnis aller Beschreibungsebenen zu achten.

Beschreibungsebene Schritt 1 Schritt 2 Schritt 3 Schritt 4
Algebraisch
Inhaltlich Bestand zum Zeitpunkt x0 Absoluter Zuwachs in der Zeit von x0 bis x Relativer Zuwachs im Zeitintervall [x0,x] mittlere Änderungsrate Momentane (lokale) Änderungsrate zum Zeitpunkt x0
Terminologisch Funktionswert Differenz der Funktionswerte Differenzenquotient Differentialquotient

(Ableitung)

Auch wenn der Übergang zum analytischen erst von Schritt 3 auf Schritt 4 vollzogen wird, sind die Schritte 1 und 2 nicht zu vernachlässigen.

Ableitung als lineare Approximation
  • In einer stark Vergrößerten Umgebung eines Punktes des Graphen einer differenzierbaren Funktion ist dieses Teilstück des Graphen geradlinig.
  • Da eine differenzierbare Funktion in hinreichend kleinen Umgebungen linear ist, kann sie in dieser Umgebung durch die Tangente genähert werden.

Möglichkeiten der Einbindung

  • Da es sich hier um einen Wiki - Lernpfad handelt, können verschiedene Aufgaben aus dem Lernpfad herauskopiert werden und an die Anforderungen der eigenen Lerngruppe angepasst werden. So können auch einzelne Aufgaben des Lernpfads im Unterricht bearbeitet werden.
  • Es kann jede Grundvorstellung allein stehend von den Schülern selbst erarbeitet werden und kann somit als Hausaufgabe oder Wochenaufgabe aufgegeben werden.
  • Die Aufgaben des Lernpfads sind auch auf folgenden Arbeitsblättern festgehalten und können den Schülern somit ausgedruckt werden. So benötigt lediglich die Bedienung der Applets ein PC oder Tablet. Dies kann bei mangelnder Ausstattung von Vorteil sein.


Hinweise zu den Aufgaben

Das Ziel jeder Aufgabe des Lernpfads ist es, durch angeleitetes Selbsterkunden in den Applets oder mithilfe von Tabellen und Graphiken Erkenntnisse zu gewinnen. Trotz eingebauter Hilfestellungen und Lösungskontrollen ist es gerade bei der Vermittlung von Grundvorstellung wichtig die selbstgewonnen Erkenntnisse mit denen von Anderen zu vergleichen und somit auf ihre mathematische Korrektheit zu überprüfen. Es wird daher empfohlen an geeigneten Stellen gemeinsame Sicherungs- oder Reflexionsphasen einzubauen.