Een oplossing is:
function fac(n)
{
var y
if ((n==0) || (n==1)) return 1
else { y=( n*fac(n-1) ); return y }
}
function facAltn(n)
{
var y,j;
y=n;
for (j=n-1; j>1; j--) y=y*j;
return y
}
function faculteit(form)
{
var z
i=document.form8.p1.value;
document.form11.p.value = fac(i);
}
function facultAltn(form)
{
var z
i = document.form8.p1.value;
document.form11.q.value = facAltn(i);
}
function functie11(form)
{
document.form11.r.value = fac(document.form8.p1.value);
}
function functie12(form)
{
var z
i = document.form8.p1.value;
with (Math) document.form11.s.value = sin(i);
}
...
...
<FORM NAME="form11">
<INPUT TYPE="button" VALUE="faculteit" ONCLICK="faculteit(this.form)">
<INPUT TYPE="TEXT" NAME="p" VALUE="pppp" SIZE="30">
<INPUT TYPE="button" VALUE="facult Altn" ONCLICK="facultAltn(this.form)">
<INPUT TYPE="TEXT" NAME="q" VALUE="qqqq" SIZE="30">
<INPUT TYPE="button" VALUE="faculteit Altn 2" ONCLICK="functie11(this.form)">
<INPUT TYPE="TEXT" NAME="r" VALUE="rrrr" SIZE="30">
<INPUT TYPE="button" VALUE="sinus" ONCLICK="functie12(this.form)">
<INPUT TYPE="TEXT" NAME="s" VALUE="ssss" SIZE="30">
</FORM>
...
...
Typ hier je input-getal (p1):
Resultaat: het berekenen de faculteit van p1 met 'faculteit':
Als je hier op klikt zie je hoe geneste functies werken. Functies die elkaar nodig hebben en/of elkaar aanroepen.
Nota bene: Als je uitkomsten krijgt van het
type 1.1240007277776077e+21
dan weet je dat dat
als 1.124 x 10 21 moet lezen. We noemen dat
de e-notatie van een (real) getal.
Nota bene: We gaan er bij dit vak steeds van uit dat jullie het verschil kennen tussen een integer en een real.
Enschede, 9 januari 2001