[[funktionen:funktionen02|Lektion 3 - Einbinden externer php-Dateien]]
====== Übungen zu Funktionen ======
{{ :htmlcss:work_64.png|}}
* Bearbeitet zu zweit zunächst eure Aufgabe
* Bereitet euer Ergebnis präsentabel auf (Kommentare, zusätzliches Material)
* Stellt euren Mitschülern später in der Besprechungsrunde euer Ergebnis vor
* Wenn Ihr vor der Zeit fertig seid, könnt ihr entweder zu zweit oder in Einzelarbeit weitere Beispiele bearbeiten.
===== Notendurchschnittsfunktion =====
Erstelle eine Funktion, die als Argument ein array mit Noten entgegennimmt und als Ergebnis den Durschnitt der Leistungen zurückgibt.
$noten = array(1,4,2.5,6);
$schnitt = durchschnitt($noten); // liefert 3.375
===== Notendurchschnittsfunktion Erweiterung =====
Erstelle eine weitere Funktion, die als Argumente drei Arrays mit Noten (schriftlich, mündlich, praktisch) sowie einen weiteren Parameter entgegennimmt, der die Gewichtung der jeweiligen Notenarrays für die Gesamtnote angibt. Als Rückgabewert soll der Notenschnitt zurückgegeben werden.
Verwende zu Berechnung der einzelnen Schnitte deine Funktion ''durchschnitt'' von oben.
$schr = array(1,4);
$mndl = array(2,4);
$prakt = array(5,5);
$gesamt = gesamtschnitt($schr,$mndl,$prakt,"2:1:1"); // liefert 3.25
===== Mitternachtsformel =====
Schreibe eine Funktion, die als Argumente die Koeffizienten a,b,c einer quadratischen Gleichung entgegennimmt und als Ergebnis ein Array mit den Lösungen zurückgibt.
Unterscheide alle möglichen Fälle in der Funktion und der Ausgabe im Hauptprogramm.
$erg = mnf(1,1,0) // liefert array(0,-1)
===== Fibonacci Folgen =====
Erstelle eine Funktion die als Argument eine natürliche Zahl entgegennnimmt und als Ergebnis die ersten n-Folgenglieder der Fibinacci-Folge zurückgibt.
Modifiziere die Funkzion so, dass man durch Übergabe eines optionalen zweiten Arguments bestimmen kann, ob man die ersten n Folgenglieder zurückerhalten möchte oder lediglich den Wert des n-ten Folgenglieds.
Stelle sicher, dass die Funktion nur rechnet, wenn erlaubte Argumente übergeben werden.
$folgenglieder = fibonacci(6) // liefert ein array mit den Werten 1,1,2,3,5,8
$nummer_sechs = fibonacci(6,element) // liefert die Zahl 8
===== Skalarprodukt =====
Schreibe eine Funktion, die das Skalarprodukt zweier Vektoren in drei Dimensionen berechnet. Die Koordinaten der Vektoren sollen als Arrays übergeben werden.
Erweitere deine Funktion so, dass sie durch Übergabe eines weiteren optionalen Parameters den Winken zwischen den Vektoren zurückliefert.
===== Beispiel Skalarprodukt =====
$a = array(1,2,-3);
$b = array(-1,2,1);
$skal = sprodukt($a,$b); //liefert -2
$winkel = sprodukt($a,$b,"winkel"); // liefert den winkel zw. a und b
Gedächtnisstütze:
http://www.rither.de/a/mathematik/lineare-algebra-und-analytische-geometrie/winkel/winkel-zwischen-vektor-und-vektor/
===== Kreuzprodukt =====
Mit dem Kreuzprodukt zweier Vektoren kann man einen Vektor bestiommen, der auf beiden gegebenen Vektoren senkrecht steht. Die Länge dieses Vektors it der Flächeninhalt des durch die beiden Vektoren aufgespannten Parallelogramms:
http://www.frustfrei-lernen.de/mathematik/vektorprodukt-kreuzprodukt.html
Schreibe eine Funktion, welche die beiden Vektoren als Arrays entgegennnimmt und den Normalenvektor als Array zurückliefert.
Erweitere die Funktion durch einen optionalen Parameter so, dass wahlweise die Fläche berechnet und zurückgegeben wird.
===== Beispiel Kreuzprodukt =====
$a = array(1,-5,2);
$b = array(2,0,3);
$n = kreuzprodukt($a,$b); //liefert array(-15,1,10)
$flaeche = kreuzprodukt($a,$b,"flaeche"); // liefert 18.055