私はクラスのためにパスカルの宿題に取り組んでいます。私は基本的には動作しますが、私たちの宿題提出サイトは私に完全な信用を与えていませんでした。私は教授に電子メールを送って、彼は{$ r +}指令に私を結びつけました。私がそれを含めると、ランタイムエラー201が表示されます。この問題はレンジチェックに関連していることはわかっていますが、どの変更が問題を解決するかはわかりません。どんな助けでも大変感謝しています。パスカルの配列範囲エラー
私はあなたの問題は、ライン上にあると思い{$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.
配列インデックスはパスカルに基づいていませんか? – Hintham
@Hintham:必ずしもそうではありませんが、この場合ははいです。 Opは 'for i:= Low(Perm)to High(Perm)... 'でよりうまくいくでしょう。 – MartynA
私はあなたの提案にループ条件を切り替えました。ありがとうございます。私の変数の1つが小さすぎるかもしれませんか?私は{$ mode Delphi}命令を含めて、そのようなものを世話すると思った... – Reccho