Brückenkurs Websites und Webapps/Funktionen

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Javascript</language>
Wir wollen die Trennung von Daten und Programmen noch ein wenig weiter vorantreiben. Dazu müssen wir die Verarbeitungsvorschrift, also das eigentliche Programm, noch mehr von den Daten trennen. Wir packen sie einfach in eine ''Funktion''. Eine Funktion ist eine in sich geschlossene Menge von Programmanweisungen. Im Folgenden wollen wir uns an dieses Muster halten:

'''Schema für eine Funktionsdeklaration:'''

 function <Funktionsname>(<Parameter 1>, <Parameter 2>, ...){
     var ergebnis = ''mathematischer Ausdruck'';
     '''return''' ergebnis;
 }

'''Schema für einen Funktionsaufruf:'''

 <Funktionsname>(<Wert für Parameter 1>, <Wert für Parameter 2>, ...);


'''Vorteile von Funktionen:'''
* Einmal programmiert, können Funktionen an beliebigen Stellen ''beliebig oft'' mit ''verschiedenen Eingabedaten'' aufgerufen werden. Die Berechnungsvorschrift muss nicht jedes Mal neu definiert werden.

* Nach außen ist nur der Funktionsname sichtbar, während die Verarbeitungsvorschrift in der Funktion versteckt bleibt. Die Verarbeitungsvorschrift kann also nachträglich erweitert oder verbessert werden, ohne dass dies bei der Verwendung, d.h. beim Aufruf der Funktion bemerkt wird.


'''Beispiel'''

Es soll eine Funktion nach folgender Vorschrift entwickelt werden:

$summe(a,b)=a+b$

<code id="5a905de05f6cc">
function summe(a, b){

 var ergebnis = a + b;

 return ergebnis;
}
</code>
<run id="5a905de05f8a9">summe(5,7);</run>

'''Erklärung'''

# Eine Funktion kann beliebig viele ''Parameter'' besitzen. Die Funktion ''summe'' besitzt z.B. die Parameter ''a'' und ''b''. Sie repräsentieren die ''Eingabedaten''. 
# Bei der Verwendung, d.h. beim ''Aufruf'' der Funktion müssen für die Parameter konkrete Werte eingesetzt werden. Im oberen Beispiel wird für Parameter ''a'' der Wert ''5'' und für Parameter ''b'' der Wert ''7'' eingesetzt. 
# In der Funktion wird mit den Werten eine Berechnung durchgeführt (z.B. 5+7). Das Ergebnis wird mit ''return'' an den Aufrufer der Funktion zurückgegeben.

Der Name der Funktion, die Namen der Parameter und die Namen der Variablen innerhalb der Funktion können frei gewählt werden.

Ändern Sie die Werte für ''a'' und ''b'' und rufen Sie die Funktion erneut auf!


'''Aufgaben'''

Entwickeln Sie eine Funktion ''bmi'' zur Berechnung des Body-Mass-Index. Die Funktion soll die Parameter ''gewicht'' und ''groesse'' besitzen. Rufen Sie die Funktion mit beispielhaften Parameterwerten zweimal auf.

$bmi(gewicht,groesse)=\frac{gewicht}{groesse^2}$

<code id="58bc4ea021638">
function bmi(gewicht, groesse){
    var ergebnis = gewicht / (groesse*groesse);
    return ergebnis;
}
</code>
<run id="58bc4ea02179c">
bmi(60,1.69)
</run>


Entwickeln Sie die folgenden Funktionen. Rufen Sie jede Funktion einmal auf.

$f(x)=x^5$
<code id="5a905de05f74d">
function f(x){

   var ergebnis = Math.pow(x,5);
   return ergebnis;
}
</code>
<run id="5a905de05f979">
f(7)
f(3)
</run>


$f2(a,b,c)=a-(b+c)^5$ 
<code id="5a905de05f7c0"></code>
<run id="5a905de05f9db"></run>


$f3(x,y)=\Bigl|\sqrt{x^3+y^3}\Bigl|$
<code id="5a905de05f826"></code>
<run id="5a905de05fa3b"></run>


$f4(a,b)=max(a,b)$
<code id="58bc6d00b6317"></code>
<run id="58bc6d00b66d1"></run>


Entwickeln Sie eine Funktion zur Berechnung des Kreisumfangs:

$kreisumfang(r)=2*\Pi*r$
<code id="58bc6d00b6389"></code>
<run id="58bc6d00b6744"></run>


'''Zusatzaufgabe'''

Mit der ''Formel von Heron'' kann der Flächeninhalt $A$ eines Dreiecks berechnet werden, wenn die Seitenlängen $a$, $b$ und $c$ bekannt sind. Die Formel lautet $A=\sqrt{s*(s-a)*(s-b)*(s-c)}$, wobei gilt: $s=\frac{a+b+c}{2}$. Entwickeln Sie eine Funktion zur Berechnung des Flächeninhaltes nach dieser Formel. Die Funktion soll die drei Seitenlängen als Parameter entgegennehmen. 

Innerhalb einer Funktion dürfen beliebig viele Hilfsvariablen verwendet werden. Berechnen Sie in der Funktion zunächst den Wert der Variable $s$!

<code id="58bc73cbe4913"></code>
<run id="58bc73cbe49d2"></run>


'''Zusatzaufgabe'''

Entwickeln Sie eine Funktion, die Euro (EUR) in Zloty (PLN) umrechnet.

Entwickeln Sie eine weitere Funktion, die Zloty in Euro umrechnet. 

Wechselkurs: 1 EUR = 4,3066 PLN
<code id="58bc746c8fd1b"></code>
<code id="58bc746c8fdae"></code>
<run id="58bc746c8fe54"></run>