2017-10-11 18 views
0

以下のコードは、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. 
+2

'A'は宣言の多次元配列のようには見えません。 – pvg

+0

@pvgあなたは明確にすることができますか?行列は多次元配列として数えられませんか? (申し訳ありません、初心者はこちら) – Lucky

+0

'行列'はあなたがその型を与えた名前です。他の配列と同様に、1次元配列として宣言しました。 BとCが1次元で、Aと同じ宣言をしているのに、なぜAは多次元であると思いますか?宣言の構文が不明な場合は、Googleの '多次元配列をパスカル'に追加してください。 – pvg

答えて

0

は、私たちは次のコードを転写産物みましょう:

そして、ここでは私の完全なコードです

type 
    tZeile = 1..3; 
    tMatrix = array[tZeile] of integer; 
var 
    A : tMatrix; 

、これは似ています〜へ:

A[1] := 0;なく A[1,1] := 1又は同様:配列 Aの人の

メンバーは単一インデックスによってアクセスすることができます。

+1

@lurker piece of peace :-)修正済みです。親切にも、私の投稿を修正してください)) –