Einzelnen Beitrag anzeigen

Benutzerbild von everdream
everdream

Registriert seit: 22. Feb 2007
Ort: Hiddenhausen
192 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Sieb des Eratosthenes: Von Pascal nach R-Pascal

  Alt 3. Mai 2008, 16:36
Zitat von problemstoffe:
Delphi-Quellcode:
  i := 2;
 m1: if i>100 then goto m2
 zahl[i] := i;            
  //p := 2; Das gehört nicht in die Schleife, p soll ja nicht 99 mal auf 2 gesetzt werden, oder? xD
 goto m1;
 m2: If not p <= 100 Then Goto M3; //wenn p >100 ist, dann ist deine Prozedur ganz vorbei, du musst also nicht nach m3 sondern ganz ans Ende springen...

     v := 2;
     Goto M2; // Das passt hier nicht hin, das muss ans Ende der While-Schleife
   M3: If not v*p <= 100 Then Goto M4;
         
            zahl[v*p] := 0;
            Goto M3;
      M4: v := v+1;
       
     i := p+1;
      M5: If not (i<=100) and (zahl[i] = 0) Then Goto M6;
       i := i + 1;
          Goto M5;
      M6: p := i;
Der Rest sieht gut aus...

edit: in der for-to-Schleife hast du das Hochzählen von i vergessen...
Max
"Das Ziel ist im Weg!"
  Mit Zitat antworten Zitat