/ /ランダム2次元配列の作成(4×4)FreePascal - 配列、多次元配列、パスカル、フリーパスカル

ランダムな2次元配列(4x4)の作成FreePascal - 配列、多次元配列、パスカル、フリーパスカル

FreePascalでランダムな2次元配列(4 x 4)を作らなければなりません。 各要素は0から100の間でなければなりません。

例えば:

12 99 1 85
43 75 5 11
0  100 77 31
64 15 9 74

試しましたが、うまくいきません。

var
row:array[1..4] of string = (random(100));
column:array[1..4] of string = (random(100));
matrix:array[1..4,1..4] of string;

x:integer;
y:integer;

begin

for x := 1 to 4 do
for y := 1 to 4 do
matrix[x,y] := row[x] + column[y];

for x := 1 to 4 do
for y := 1 to 4 do
write(matrix[x,y], " ");

end.

それはエラーを出します:

Illegal expression
Expected another 3 array elements
Illegal expression
Expected another 3 array elements

手伝って頂けますか?

回答:

回答№1の場合は3

きみの row そして column 関数呼び出しで配列を初期化することはできないので、変数は間違っています。あなたが持っているので、これらの変数は必要でさえありません。 matrix すでに定義されています。私は「変更しました matrix 多次元配列の整数となる変数型。このコードは0から100の範囲の乱数を生成します。 0と100を含む。

program Project1;

uses
SysUtils;

var
X: Integer;
Y: Integer;
Matrix: array[1..4, 1..4] of Integer;
begin
Randomize;

for X := 1 to 4 do
for Y := 1 to 4 do
Matrix[X, Y] := Random(101);

for X := 1 to 4 do
begin
for Y := 1 to 4 do
Write(IntToStr(Matrix[X, Y]), " ");
WriteLn;
end;

ReadLn;
end.

回答№2については2

行、列、行列を文字列の配列として宣言しました。

それを整数の配列に変更します。

実行時に行と列の配列を定義する必要があります。

var
row : array[1..4] of Integer;
column : array[1..4] of Integer;
matrix : array[1..4,1..4] of Integer;

x:integer;
y:integer;

begin
Randomize; // Init random generator
for x := 1 to 4 do
begin
row[x] := Random(51);
column[x] := Random(51);
end;

for x := 1 to 4 do
for y := 1 to 4 do
matrix[x,y] := row[x] + column[y];

for x := 1 to 4 do
begin
for y := 1 to 4 do
begin
write(IntToStr(matrix[x,y]), " ");
end;
WriteLn;
end;
ReadLn;

end.