Hallo,
Ich habe in letzter Zeit öfter gehört, JS ist keine Programmiersprache bzw. wer html lernen kann, kann auch JS problemlos lernen. Das würde ich doch recht gern mal zur Diskussion stellen.
Ist JS nun eine Programmiersprache oder nicht?
Wenn ja - warum? Wenn nein - warum nicht?
Als Ansatz gebe ich dazu mal diese Datei:
<html><head><title>Fakultät</title></head>
<body bgcolor="#F1F1FA">
<script language="JavaScript">
<!--
function fak(Zahl)
{return fak1(Zahl,1);}
function fak1(zahl,x)
{if (zahl==0) return x;
else return fak1((zahl-1),(zahl*x));}
function fak2(zahl)
{if (zahl==0) return 1;
else return zahl*fak2(zahl-1);}
//-->
</script>
<script language="JavaScript">
<!--
document.write("Berechnung von 5 Fakultät (5!)<br><br>");
document.writeln("Ergebnis von fak: ",fak(5),"<br>");
document.writeln("Ergebnis von fak2: ",fak2(5),"<br>");
//-->
</script>
</body></html>
Für alle Nichtmathetiker:
5! berechnet sich wie folgt: 5!=5*4!, 4!=4*3!, 3!=3*2!, 2!=2*1!, 1!=1*0! und 0!=1
das heißt: 5!=5*4*3*2*1*1=120
Um die Unterschiede im Verhalten der Funktionen deutlich zu machen, kann auch diese Datei verwendet werden:
<html><head><title>Fakultät2</title></head>
<body bgcolor="#F1F1FA">
<script language="JavaScript">
<!--
function fak(Zahl)
{return fak1(Zahl,1);}
function fak1(zahl,x)
{if (zahl==0) {document.writeln(zahl," ",x,"<br><br>");
return x;}
else {document.writeln(zahl," ",x,"<br>");
return fak1((zahl-1),(zahl*x));}}
function fak2(zahl)
{if (zahl==0) {document.writeln(zahl," ",1,"<br>");
return 1;}
else {x=zahl*fak2(zahl-1);
document.writeln(zahl," ",x,"<br>");return x}}
//-->
</script>
<script language="JavaScript">
<!--
document.write("Berechnung von 5!<br><br>");
document.write("z x<br><br>");
document.writeln("Ergebnis von fak: ",fak(5),"<br><br>");
document.write("z x<br><br>");
document.writeln("Ergebnis von fak2: ",fak2(5),"<br>");
//-->
</script>
</body>
</html>
Viele Grüße
Antje