6_JavaScript - Funktionen
Eine Funktion (function) ist ein Stück eines Codes, der von einer anderen Stelle (HIER: Bei Update verschiedener Elemente, z.B. Verschieben der Punkte ◉ oder ◉) beliebig oft aufgerufen werden kann.
Durch die Definition von Funktionen im Globalen JavaScript sind die wesentlichen Programmierbausteine an einer Stelle gesammelt. Beim Finden eines Fehlers muss man also meist nur diesen Quellcode durchschauen und nicht an vielen verschiedenen anderen Stellen nach dem möglichen Fehler suchen.
Beispiel: Arbeitsauftrag:
Erforsche die Lage zweier Geraden in der Ebene - bewege dazu die roten Punkte ◉ und/oder die blauen Punkte ◉.
Vergleiche dabei immer auch die beiden Geradengleichungen und finde einen Zusammenhang zwischen Lagebeziehung und Geradengleichungen.
mögliche Vertiefung:
Je nach Lage tauchen plötzlich auch besondere Geradengleichungen auf - findest du diese Besonderheiten?
Auch x- oder y-Achse sind Geraden - findest du ihre jeweilige Gleichung?
Das Skripting - im Globalen JavaScript:
Im Globalen JavaScript wird die Funktion lage(); definiert - dazu werden verschiedene boolesche Variablen in die JavaScript-Umgebung überführt und dort ausgewertet:
- die boolesche Variable "eineGerade" (liegen alle Punkte auf einer Geraden?)
- die boolesche Variable "schnitt" (Ist der Schnittpunkt S definiert?)
- die boolesche Variable "ortho" (Liegen die Geraden sogar orthogonal zueinander?)
- der Schnittpunkt S
CODE zum Kopieren: function lage() { var eineGerade = ggbApplet.getValue("eineGerade"); var schnitt = ggbApplet.getValue("schnitt"); var ortho = ggbApplet.getValue("ortho"); var s = ggbApplet.getValueString("S"); if (eineGerade==true) { ggbApplet.setTextValue("Lage","Die beiden Geraden sind parallel und identisch."); } else if (schnitt==false) { ggbApplet.setTextValue("Lage","Die beiden Geraden sind parallel und verschieden."); } else if (schnitt == true && ortho==true) { ggbApplet.setTextValue("Lage","Die beiden Geraden schneiden sich orthogonal im Punkt " +s+ "."); } else { ggbApplet.setTextValue("Lage","Die beiden Geraden schneiden sich im Punkt " +s+ "."); } }Vergiss nicht auf JavaScript umzustellen! Anmerkungen: Der Befehl ggbApplet.setTextValue("Lage","Schnitt"); weist dem Textfeld mit der Bezeichnung "Lage" den Wert "Schnitt" zu.
Das Skripting - Bei Update:
Die Funktion lage(); aus dem globalen Skript wird an mehreren Stellen des Applets über "bei Update" aufgerufen, um immer die aktuellsten Zahlen und Werte in der Skripting-Umgebung untersuchen zu können:
- durch die zwei roten und zwei blauen Punkte (◉ oder ◉)
- durch die booleschen Variablen von oben
- durch den Schnittpunkt S