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 abkapseln. 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:

'''Funktionsdeklaration:'''

 function <Funktionsname>(<Parametername 1>, <Parametername 2>, ...){
     var <Variablenname> = ''Berechnungsvorschrift zur Verarbeitung der Parameter'';
     '''return''' <Variablenname>;
 }

'''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 Werten aufgerufen werden. Die Berechnungsvorschrift muss nicht jedes Mal neu definiert werden.
* Nach außen ist nur der Funktionsname sichtbar, während die Berechnungsvorschrift in der Funktion versteckt bleibt. Die Berechnungsvorschrift kann also nachträglich erweitert oder verbessert werden, ohne dass dies bei der Verwendung, d.h. beim Aufruf der Funktion bemerkt wird.


Beispiel:

<code id="58bc4ea0215ad">
function addiere(a, b){

 var ergebnis = a + b;

 return ergebnis;
}
</code>
<run id="58bc4ea02172c">addiere(5,7);</run>


Der Aufbau der Funktion weist einige Ähnlichkeiten zu unserer Vorgehensweise im Arbeitsblatt "Variablen" auf:
# Bei der Berechnung werden keine konkreten Zahlen, sondern Variablen eingesetzt. Im Gegensatz zum letzten Arbeitsblatt haben wir diese Variablen nicht selbst mit Werten belegt, sondern die Werte wurden als Parameter an der Eingabeschnittstelle der Funktion übergeben.
# Es gibt eine Ergebnisvariable, die den berechneten Wert entgegennimmt.

Mit der Anweisung '''return''' wird das berechnete Ergebnis an den Aufrufer der Funktion zurückgegeben. Eine Funktion gehorcht also dem Prinzip ''Eingabe, Verarbeitung und Ausgabe'', welches bei allen Programmen anzutreffen ist.

Die Namen der Funktion, der Parameter und der Ergebnisvariable können von uns beliebig gewählt werden.


'''Aufgabe 1'''

Entwickeln Sie eine Funktion zur Berechnung des Body-Mass-Index in der ersten Code-Box. Wandeln Sie die Variablen für Körpergewicht und Körpergröße in Eingabeparameter um. Rufen Sie die Funktion in der zweiten Code-Box mit beispielhaften Eingabedaten auf.

 Körpergewicht in Kilogramm geteilt durch Körpergröße in Metern zum Quadrat

<code id="58bc4ea021638"></code>
<run id="58bc4ea02179c"></run>


Entwickeln Sie Funktionen für die restlichen Berechnungen aus dem Arbeitsblatt "Variablen". Wandeln Sie die verwendeten Variablen in Eingabeparameter um. Rufen Sie die Funktionen jeweils in der zweiten Code-Box mit beispielhaften Eingabedaten auf.

Beispiel:

$7^5$ (7)
<code id="58bc4ea0216a6">
function calc1(v){

var result = Math.pow(v,5);
return result;
}
</code>
<run id="58bc4ea021805">
calc1(7);
</run>


$3+4$ (3)
<code id="58bc6d00b609c"></code>
<run id="58bc6d00b641f"></run>


$3+4$ (3, 4)
<code id="58bc6d00b6127"></code>
<run id="58bc6d00b64b1"></run>


$8-(5+7)^5$ (5, 7)
<code id="58bc6d00b61a7"></code>
<run id="58bc6d00b6530"></run>


$8-\sqrt{5+7}^5$ (8,5,7)
<code id="58bc6d00b6230"></code>
<run id="58bc6d00b65ae"></run>


$tan(10)$ (10)
<code id="58bc6d00b62a4"></code>
<run id="58bc6d00b6655"></run>


Das Maximum zwischen 50 und 100 (50, 100)
<code id="58bc6d00b6317"></code>
<run id="58bc6d00b66d1"></run>


Entwickeln Sie eine Funktion zur Berechnung des Kreisumfangs. Verwenden Sie den Radius $r$ als Parameter. 
<code id="58bc6d00b6389"></code>
<run id="58bc6d00b6744"></run>