info_ref2011:musterloesungen
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
info_ref2011:musterloesungen [14.05.2011 16:05] – bauer | info_ref2011:musterloesungen [14.05.2011 16:29] (aktuell) – bauer | ||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
- Im Text unten seht ihr immer nur die eigentlichen Funktionen, den Rest des Programms könnt ihr jeweils herunterladen. | - Im Text unten seht ihr immer nur die eigentlichen Funktionen, den Rest des Programms könnt ihr jeweils herunterladen. | ||
- Der Code ist ausführlich kommentiert, | - Der Code ist ausführlich kommentiert, | ||
- | - Bis zum Wochenende sind alle Musterlösungen | + | - So, alle Musterlösungen |
Und nun viel Spass :-) | Und nun viel Spass :-) | ||
Zeile 37: | Zeile 37: | ||
</ | </ | ||
- | Das komplette Beispiel könnt ihr hier fertig anschauen und dann auch runterladen: | + | Das komplette Beispiel könnt ihr hier fertig anschauen und dann auch runterladen: |
Zeile 69: | Zeile 69: | ||
</ | </ | ||
- | Hier könnt ihr wieder das fertige Programm anschauen und runterladen: | + | Hier könnt ihr wieder das fertige Programm anschauen und runterladen: |
===== Notendurschnittsfunktion Erweiterung ===== | ===== Notendurschnittsfunktion Erweiterung ===== | ||
Zeile 93: | Zeile 93: | ||
Zur Berechnung der schriftlichen, | Zur Berechnung der schriftlichen, | ||
- | Hier könnt ihr wieder das fertige Programm anschauen und runterladen: | + | Hier könnt ihr wieder das fertige Programm anschauen und runterladen: |
===== Mitternachtsformel ===== | ===== Mitternachtsformel ===== | ||
Zeile 125: | Zeile 125: | ||
Die von PHP bereitgestellte Funktion **sqrt()** berechnet die Wurzel der ihr übergebenen Zahl. | Die von PHP bereitgestellte Funktion **sqrt()** berechnet die Wurzel der ihr übergebenen Zahl. | ||
Hier gibt's das komplette Beispiel: {{: | Hier gibt's das komplette Beispiel: {{: | ||
+ | |||
+ | ===== Skalarprodukt ===== | ||
+ | |||
+ | Nochmal die Gedächtnisstütze zum anguggen: | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | Der Kopf der Funktion sieht folgendermaßen aus: | ||
+ | <code php> | ||
+ | function sprodukt($a, | ||
+ | </ | ||
+ | Das zweite Argument wird hierbei **vorbelegt**, | ||
+ | Für die Fallunterscheidung verwenden wir wieder eine **if-Abfrage**. | ||
+ | Um den Winkel zwischen den Vektoren zu berechnen gehen wir folgendermaßen vor: | ||
+ | - Wir berechnen das Skalarprodukt der Vektoren. | ||
+ | - Dann jeweils deren Länge. **abs()** gibt den Betrag zurück, **sqrt()** berechnet die Wurzel. | ||
+ | - **acos()** ist der normale cos^(-1), wird allerdings im **Bogenmaß** ausgerechnet. | ||
+ | - Um den Winkel im Gradmaß zu erhalten benutzen wir die Funktion **rad2deg()**. | ||
+ | |||
+ | <code php> | ||
+ | function sprodukt($a, | ||
+ | if ($text == " | ||
+ | $skal = $a[0]*$b[0]+$a[1]*$b[1]+$a[2]*$b[2]; | ||
+ | $laenge_a = abs(sqrt($a[0]*$a[0]+$a[1]*$a[1]+$a[2]*$a[2])); | ||
+ | $laenge_b = abs(sqrt($b[0]*$b[0]+$b[1]*$b[1]+$b[2]*$b[2])); | ||
+ | $winkel = acos($skal / ($laenge_a * $laenge_b)); | ||
+ | $winkel = rad2deg($winkel); | ||
+ | return $winkel; | ||
+ | } | ||
+ | else { | ||
+ | $ergebnis = $a[0]*$b[0]+$a[1]*$b[1]+$a[2]*$b[2]; | ||
+ | return $ergebnis; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | Wie immer hier das fertige Programm: {{: | ||
+ | |||
+ | ===== Kreuzprodukt ===== | ||
+ | Das Kreuzprodukt ist in der analytischen Geometrie der Oberstufe seeehr hilfreich. Ein Grund mehr darüber mal ein Programm zu schreiben: | ||
+ | Wichtig: Beim Kreuzprodukt kommt wieder ein **Vektor** heraus: | ||
+ | <code php> | ||
+ | $ergebnis[0]=$a[1]*$b[2]-$a[2]*$b[1]; | ||
+ | </ | ||
+ | ^^So berechnet ihr den obersten Eintrag des Vektors und speichert in einem Array $ergebnis an der Stelle 0. Und das muss eben für die zwei anderen Stellen noch berechnet werden. | ||
+ | Beim einen Fall der if-Verzweigung wir eben noch die Fläche berechnet. | ||
+ | |||
+ | |||
+ | <code php> | ||
+ | function kreuzprodukt($a, | ||
+ | if ($text == " | ||
+ | $ergebnis[0] = $a[1]*$b[2]-$a[2]*$b[1]; | ||
+ | $ergebnis[1] = $a[2]*$b[0]-$a[0]*$b[2]; | ||
+ | $ergebnis[2] = $a[0]*$b[1]-$a[1]*$b[0]; | ||
+ | $flaeche = sqrt($ergebnis[0]*$ergebnis[0]+$ergebnis[1]*$ergebnis[1]+$ergebnis[2]*$ergebnis[2]); | ||
+ | return $flaeche; | ||
+ | } | ||
+ | else{ | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | Vollständiges Beispiel hier: {{: | ||
+ |
info_ref2011/musterloesungen.1305389104.txt.gz · Zuletzt geändert: 14.05.2011 16:05 von bauer