![]() |
Sieb des Eratosthenes: Von Pascal nach R-Pascal
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:
Und das ganze in R-Pascalfor 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;
Delphi-Quellcode:
Danke euch im Voraus...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; |
Re: Sieb des Eratosthenes: Von Pascal nach R-Pascal
Kennt R-Pascal keine strukturierte Elemente oder warum die Gotos?
|
Re: Sieb des Eratosthenes: Von Pascal nach R-Pascal
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! |
Re: Sieb des Eratosthenes: Von Pascal nach R-Pascal
Eine Idee wie ich das mache? Oder kennst du eine Homepage wo eine Übersetzungsschablone gelistet ist?
Das der Rest nicht stimmt kann gut sein :pale: |
Re: Sieb des Eratosthenes: Von Pascal nach R-Pascal
Zitat:
|
Re: Sieb des Eratosthenes: Von Pascal nach R-Pascal
Eine for-to-Schleife in R-Pascal ist ganz einfach:
Delphi-Quellcode:
=
for i:=1 to 100 do
begin //Heititei... end;
Delphi-Quellcode:
zu mkinzler:
i:=1;
m1: if i>100 then goto m2; //Heititei... i:=i+1; goto m1; m2: //... weiter (Verlassen der Schleife) 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" |
Re: Sieb des Eratosthenes: Von Pascal nach R-Pascal
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; |
Re: Sieb des Eratosthenes: Von Pascal nach R-Pascal
Zitat:
edit: in der for-to-Schleife hast du das Hochzählen von i vergessen... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz