以下のコードは、3x4の行列を作成し、各行の合計数を出力するものとします。しかし、それをコンパイルすると、私は次のエラーを得続ける:パスカルエラー:不正な修飾子
jdoodle.pas(26,25) Error: Illegal qualifier
jdoodle.pas(33,32) Error: Illegal qualifier
jdoodle.pas(41,32) Error: Illegal qualifier
jdoodle.pas(48,24) Error: Illegal qualifier
jdoodle.pas(56,4) Fatal: There were 4 errors compiling module, stopping
Fatal: Compilation aborted.
問題の行は、次のとおりです。
line 26: readln (A[i, j]);
line 33: B[i] := B[i] + A[i, j]
line 41: C[J] := C [J] + A[i,j]
line 48: write (A[i, j]:5);
は、誰も私のためにこれをしてください明確にもらえますか?主な問題は、エラーコードの意味がわからないことです。私は、エラーで言及されているすべての行に 'A [i、j]'が含まれていることに気付きましたが、何が間違っているのかを知ることはできません。
const
ZEILENMAX = 3;
type
tZeile = 1..ZEILENMAX;
tMatrix = array[tZeile] of integer;
var
A : tMatrix;
それに等しいです:
Program Matrix (input, output);
const
ZEILENMAX = 3;
SPALTENMAX = 4;
type
tZeile = 1..ZEILENMAX;
tSpalte = 1..SPALTENMAX;
tMatrix = array[tZeile] of integer;
tZeilensumme = array [tZeile] of integer;
tSpaltensumme = array [tSpalte] of integer;
var
A : tMatrix;
B : tZeilensumme;
C : tSpaltensumme;
i : tZeile;
j : tSpalte;
begin
for i := 1 to ZEILENMAX do
for j := 1 to SPALTENMAX do
readln (A[i, j]);
for i := 1 to ZEILENMAX do
begin
B[i] := 0;
for j := 1 to SPALTENMAX do
B[i] := B[i] + A[i, j]
end;
for j := 1 to SPALTENMAX do
begin
C[j] := 0;
for i := 1 to Zeilenmax do
C[J] := C [J] + A[i,j]
end;
writeln;
for i := 1 to ZEILENMAX do
begin
for j := 1 to SPALTENMAX do
write (A[i, j]:5);
writeln (B[i]:10)
end;
writeln;
for j:= 1 to SPALTENMAX do
write (C[j]:5);
writeln
end.
'A'は宣言の多次元配列のようには見えません。 – pvg
@pvgあなたは明確にすることができますか?行列は多次元配列として数えられませんか? (申し訳ありません、初心者はこちら) – Lucky
'行列'はあなたがその型を与えた名前です。他の配列と同様に、1次元配列として宣言しました。 BとCが1次元で、Aと同じ宣言をしているのに、なぜAは多次元であると思いますか?宣言の構文が不明な場合は、Googleの '多次元配列をパスカル'に追加してください。 – pvg