Stand: 04.12.2000
Aufgabe | Ausgabe und Zählen der Primahlen von 1 bis zu einzugebendem Endwert |
Verwendete Konstruktionen | Schleife, Alternative, Function, Math, Eingabe, Ausgabe |
Code
Primzahltest |
function Prim (Zahl) {
var wurzel = Math.sqrt(Zahl); var test = 1; for(i = 2; i <= wurzel; i++) if(Zahl % i == 0) test = 0; return test } |
Zahl % i == 0 testet, ob i ein Teiler von Zahl ist
test ist eine boolesche Variable: 0 bedeutet, daß ein Teiler gefunden wurde 1 bedeutet, daß Zahl prim ist |
Code
Ablauf und Ausdruck |
N = window.prompt("Primzahlen bis ?? ",55);
zaehler=0; document.write ("Die Primzahlen von 1 bis "+N+" sind : <br>"); for(z = 2; z <= N; z++) { if (Prim(z)) {document.write(z+" ");zaehler++} if (z%100==0) document.write("<br>") }; alert("Insgesamt "+zaehler+" Primzahlen"); alert("Primzahldichte bis "+ N +" ist "+zaehler/N); |
die Primzahlen werden ausgedruckt
jeweils bei vollen Hunderter (z%100==0) wird ein neue Zeile begonnen |
Aufgabe | Primahlen von 1 bis zu einzugebendem Endwert mit dem Sieb |
Verwendete Konstruktionen | Schleife, Alternative, Array, Math, Eingabe, Ausgabe |
Code
Sie des Erathostenes |
N = window.prompt("Primzahlen bis ?? ",55);
prim = new Array(N) for (i=1;i<=N;i++) document.write(Math.floor(i/10)%10); document.write("<br>"); for (i=1;i<=N;i++) document.write(i%10); document.write("<br>"); for (i=1;i<=N;i++) {prim[i]=1; document.write(1)}; document.write("<br>"); for (SZ = 2; SZ<=Math.sqrt(N);SZ++) { if(prim[SZ]) { for(n = 2*SZ; n<=N; n=n+SZ) prim[n]=0; for (i=1;i<=N;i++) document.write(prim[i]); document.write("<br>") alert("das waren die Vielfachen von "+SZ); } } document.write("Primzahlen: ") for (i=2;i<=N;i++) if (prim[i]) document.write(i+" "); |
prim ist ein Feld, das das Sieb darstellt
nacheinander werden alle Zahlen, die Vielfache von SZ sind, abgestrichen Übrig bleiben die Primzahlen. Es reicht, mit SZ so weit zu laufen,
|
Aufgabe | Rekursive Berechnung der Fibonacci-Zahlen |
Verwendete Konstruktionen | Rekursion, Alternative, Eingabe, Ausgabe |
Code
Funktion zur rekrusiven Berechnung der Fibonacci- Zahl |
function FIB (Zahl)
{
if ( Zahl >= 2) {Fibo = FIB(Zahl-1) + FIB (Zahl-2)} else Fibo = 1; alert("die "+Zahl+"-te Fibonacci-Zahl ist " + Fibo); document.write(">"+Zahl+" <"+Fibo+"<br>"); return Fibo } |
Rekursion:
F (n) = F (n-1) + F (n-2) Baum: F(4) = F(3) = F(2) = F(1) = 1
|
Code
Ablauf und Ausdruck |
N = window.prompt("Fibonacci: Basis ?? ",0);
Ergebnis = FIB(N) alert("Fertig: die "+N+"-te Fibonacci-Zahl ist "+ Ergebnis); |
FIB muß zunächst berechnet werden |
Aufgabe | Iterative Berechnung der Fibonacci-Zahlen |
Verwendete Konstruktionen | Iteration, Array (Feld), Eingabe, Ausgabe |
Code | N = window.prompt("Fibonacci: Basis ?? ",12);
FIB = new Array (N+1); FIB[0]=1;FIB[1]=1; for (i=2;i<=N;i++) { FIB[i] = FIB[i-1] + FIB [i-2]; document.write(i+" : "+FIB[i]+"<br>"); } |
Hier wird das Feld FIB[n]
sukzessive aufgebaut. Dadurch wird jede Berechnung nur einmal ausgeführt. |
zurück zum Seitenanfang | e-mail Holzbaur@t-online.de | zurück zur homepage Holzbaur | zurück zu JavaScript | zurück zu HTML |