Xreative Geschrieben 11. Januar 2011 Geschrieben 11. Januar 2011 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 }
Klotzkopp Geschrieben 11. Januar 2011 Geschrieben 11. Januar 2011 Am Besten findet man so etwas heraus, indem man es mit Papier und Bleistift durchspielt. Es handelt sich um das Sieb des Eratosthenes.
Xreative Geschrieben 11. Januar 2011 Autor Geschrieben 11. Januar 2011 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 }
Der_Lampe Geschrieben 11. Januar 2011 Geschrieben 11. Januar 2011 (bearbeitet) 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 2011 von Der_Lampe
lilith2k3 Geschrieben 11. Januar 2011 Geschrieben 11. Januar 2011 Übrigens ein furchtbarer Quelltext ... %D Kein Wunder, dass man den erklären soll
Xreative Geschrieben 12. Januar 2011 Autor Geschrieben 12. Januar 2011 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 }
Klotzkopp Geschrieben 12. Januar 2011 Geschrieben 12. Januar 2011 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.
Xreative Geschrieben 12. Januar 2011 Autor Geschrieben 12. Januar 2011 Wie würde der Quellcode dann aussehen? Mich verwirrt das gerade ein bisschen Danke
Klotzkopp Geschrieben 12. Januar 2011 Geschrieben 12. Januar 2011 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]
Xreative Geschrieben 12. Januar 2011 Autor Geschrieben 12. Januar 2011 Danke =) Was bedeutet eig das hier: b=" "
Ulfmann Geschrieben 12. Januar 2011 Geschrieben 12. Januar 2011 Danke =) Was bedeutet eig das hier: b=" " 'b' ist eine Variable und wird mit leerem Inhalt initialisiert.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden