3

FreePascal でランダムな 2 次元配列 (4x4) を作成する必要があります。各要素は 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

手伝って頂けますか?

4

2 に答える 2

4

関数呼び出しで配列を初期化できないため、変数と変数が間違っています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.
于 2013-03-20T13:07:49.117 に答える
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.
于 2013-03-20T12:59:44.923 に答える