Veröffentlicht 11. Januar 201114 j Hallo, könnte mir bitte jemand diesen Quelltext erklären. Ich schreibe am Donnerstag eine Klausur und so eine Aufgabe wird sicherlich drannkommen. Vielen Dank function main() { var a,b,n,u,j,i,z; n = document.Formular.a.value; z = new Array(n+1); b="" for (i=1;i<=n;i++) { z[i]=1; } for (i=2;i<=n;i++) { if (z[i]==1) { b= b+ i+ "| "; } for(j=2*i;j<=n;j=j+i) { z[j]=0; } } document.Formular.b.value= b }
11. Januar 201114 j Am Besten findet man so etwas heraus, indem man es mit Papier und Bleistift durchspielt. Es handelt sich um das Sieb des Eratosthenes.
11. Januar 201114 j function main() { var a,b,n,u,j,i,z; n = document.Formular.a.value; z = new Array(n+1); b="" for (i=1;i<=n;i++) Warum wird hier ein Array verwendet? { z=1; Werden den Werten im Array die Zahl 1 zugeordnet? } for (i=2;i<=n;i++) { if (z==1) Könnten Sie mir bitte erklären, warum die Arrays verwendet werden und was sie hier bewirken? { b= b+ i+ "| "; } for(j=2*i;j<=n;j=j+i) { z[j]=0; Hier kapier ich auch nicht, warum nun eine neue Variable verwendet wird. } } document.Formular.b.value= b }
11. Januar 201114 j also wenn ich das richtig verstehe ist z ein int Array in dem für jede Zahl zw. 0 und dem max Wert (n bzw. a) eine 0 für keine Primzahl und eine 1 für eine Primzahl stehen. if (z[i]==1) wenn die Zahl eine Primzahl ist wird sie an b (String denke ich mal) angehängt und ein logisches Oder (|) als Trennzeichen for(j=2*i;j<=n;j=j+i) { z[j]=0; } hier werden die vielfachen der ersten, zweiten, dritten, usw. Primzahl jeweils als keine Primzahl markiert ich hoffe ich konnte dir etwas weiter helfen, wenn nicht les dir einfach mal den von Klotzkopp verlinkten Wikipedia Artikel durch bzw. schau dir das schöne GIF an. Bearbeitet 11. Januar 201114 j von Der_Lampe
11. Januar 201114 j Übrigens ein furchtbarer Quelltext ... %D Kein Wunder, dass man den erklären soll
12. Januar 201114 j Ich hätte noch eine kurze Frage. Wie würde ein Quelltext aussehen, wenn man die Zahl 100-1 runterzählen lassen würde? Es wird anscheinend mit 2 Arrays gemacht. Aber ich komme nur auf eine For-Schleife for(i=100; i>=0; i--) {Ich denke, dass man nun hir iwas mit nem Array machen müsste }
12. Januar 201114 j Ich denke, dass man nun hir iwas mit nem Array machen müssteElich brauchst du dafür gar kein Array. Es ist völlig areichend, wenn du hier die Svariable agibst.
12. Januar 201114 j Wie würde der Quellcode dann aussehen? Mich verwirrt das gerade ein bisschen Danke
12. Januar 201114 j Wie würde der Quellcode dann aussehen?Das hängt von der verwendeten Programmiersprache und vom Umfeld des Programms ab. Vermutlich in etwa so: function main() { var b,i; b="" for(i=100; i>=0; i--) { b= b+ i+ "| "; } document.Formular.b.value= b }[/code]
12. Januar 201114 j Danke =) Was bedeutet eig das hier: b=" " 'b' ist eine Variable und wird mit leerem Inhalt initialisiert.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.