Ich arbeite an einigen Hausaufgaben in Pascal für den Unterricht, und ich habe einen Haken gefunden. Meine Arbeit funktioniert im Grunde genommen, aber unsere Hausaufgaben-Einreichungsseite hat mir nicht volles Vertrauen geschenkt. Ich habe meinem Professor eine E-Mail geschickt und er hat mich in die Direktive {$ r +} eingewiesen. Wenn ich das einschließe, erhalte ich den Laufzeitfehler 201. Ich weiß, dass das Problem mit der Bereichsprüfung zusammenhängt, aber ich kann nicht herausfinden, welche Änderungen das Problem beheben. Jede Hilfe wird sehr geschätzt, danke.Array Range Fehler in Pascal
{$mode Delphi}
{$r+}
program InversePerm;
var
N: integer; // Size of set of numbers
i: integer; // counter
x: integer; // array-slot counter
perm: array of integer; // THE array
begin
read(N);
setlength(perm, N); // sets array size to user input
for i := 1 to N do
begin
read(x);
perm[x] := i;
end;
for i := 1 to N do
write(perm[i], ' ');
end.
Ist ein Array-Index Null in Pascal nicht basiert? – Hintham
@Hintham: Nicht unbedingt, aber in diesem Fall ja. Op würde es besser machen mit 'für i: = Niedrig (Perm) bis Hoch (Perm) ...' – MartynA
Ich schaltete die Loop-Bedingungen zu Ihrem Vorschlag, danke. Könnte es sein, dass eine meiner Variablen zu klein ist? Ich dachte, die Anweisung {$ mode Delphi} würde sich um so etwas kümmern ... – Reccho