AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Sieb des Eratosthenes: Von Pascal nach R-Pascal
Thema durchsuchen
Ansicht
Themen-Optionen

Sieb des Eratosthenes: Von Pascal nach R-Pascal

Offene Frage von "problemstoffe"
Ein Thema von problemstoffe · begonnen am 3. Mai 2008 · letzter Beitrag vom 3. Mai 2008
Antwort Antwort
problemstoffe

Registriert seit: 6. Jun 2007
16 Beiträge
 
#1

Sieb des Eratosthenes: Von Pascal nach R-Pascal

  Alt 3. Mai 2008, 15:57
Muss in Delphi ein Quellcode für das Sieb des E. entwickeln und das ganze dann in ein R-Pascal umschreiben. Das habe ich jetzt mal auf die Beine gestellt. Stimmt das soweit?
Delphi-Quellcode:

 for i := 2 to 100 do zahl[i] := i;
  p := 2;
  while p <= 100 do
  begin
    v := 2;
    while v*p <= 100 do
    begin
      zahl[v*p] := 0;
      v := v+1;
    end;
    i := p+1;
    while (i<=100) and (zahl[i] = 0) do i := i + 1;
    p := i;
  end;
Und das ganze in R-Pascal
Delphi-Quellcode:

for i := 2 to 100 do zahl[i] := i;            
  p := 2;
 M1: If not p <= 100 Then Goto M2;
 begin
     v := 2;
     Goto M1;
   M2: If not v*p <= 100 Then Goto M3;
         begin
            zahl[v*p] := 0;
            Goto M2;
      M3: v := v+1;
       end;
     i := p+1;
      M4: If not (i<=100) and (zahl[i] = 0) Then Goto M5;
       i := i + 1;
          Goto M4;
      M5: p := i;
 end;
Danke euch im Voraus...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

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

  Alt 3. Mai 2008, 16:03
Kennt R-Pascal keine strukturierte Elemente oder warum die Gotos?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von everdream
everdream

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

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

  Alt 3. Mai 2008, 16:03
Die for-to-Schleife hast du noch nicht übersetzt.

edit: nein, R-Pascal (ich kenne es unter Re-Pascal [reduziertes Pascal]) ist sozusagen der halbe Weg zu Assembler, daher gibt es dort nur noch Sprünge und keine strukturierten Elemente mehr.

edit2: Der Rest des R-Pascal-Codes ist glaube ich auch nicht korrekt... brauche aber noch einen Moment um das sicher sagen oder widerrufen zu können.

edit3: Du müsst vor allem die "begin"s und "end"s raus lassen.

Und sorry für die ganze Rumeditiererei!
Max
"Das Ziel ist im Weg!"
  Mit Zitat antworten Zitat
problemstoffe

Registriert seit: 6. Jun 2007
16 Beiträge
 
#4

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

  Alt 3. Mai 2008, 16:13
Eine Idee wie ich das mache? Oder kennst du eine Homepage wo eine Übersetzungsschablone gelistet ist?

Das der Rest nicht stimmt kann gut sein
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

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

  Alt 3. Mai 2008, 16:15
Zitat:
ein, R-Pascal (ich kenne es unter Re-Pascal [reduziertes Pascal]) ist sozusagen der halbe Weg zu Assembler, daher gibt es dort nur noch Sprünge und keine strukturierten Elemente mehr.
Also Pascal ohne die Elemente, wegen denen es Wirth entwickelt hat.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von everdream
everdream

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

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

  Alt 3. Mai 2008, 16:21
Eine for-to-Schleife in R-Pascal ist ganz einfach:
Delphi-Quellcode:
for i:=1 to 100 do
begin
  //Heititei...
end;
=
Delphi-Quellcode:
i:=1;
m1: if i>100 then goto m2;
  //Heititei...
  i:=i+1;
  goto m1;
m2: //... weiter (Verlassen der Schleife)
zu mkinzler:
Ja, das haben wir in der Schule auch gemacht, um einfach nach ASM übersetzen zu können. Ist wirklich hilfreich, weil die Vereinfachung von Delphi nach ASM direkt am Anfang zum Teil nicht so leicht ist.
Also: "Pascal -> RePascal -> ASM"
Max
"Das Ziel ist im Weg!"
  Mit Zitat antworten Zitat
problemstoffe

Registriert seit: 6. Jun 2007
16 Beiträge
 
#7

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

  Alt 3. Mai 2008, 16:27
Kommt das so hin? Oder immernoch völlig falsch?
Delphi-Quellcode:
  i := 2;
 m1: if i>100 then goto m2
 zahl[i] := i;            
  p := 2;
 goto m1;
 M2: If not p <= 100 Then Goto M3;

     v := 2;
     Goto M2;
   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;
  Mit Zitat antworten Zitat
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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz