/ / Створення випадкових двовимірних масивів (4x4) FreePascal - масиви, багатовимірний масив, паскаль, вільний паскаль

Створення випадкового 2-мірного масиву (4x4) FreePascal - масиви, багатовимірний масив, паскаль, freepascal

Я маю зробити випадковий двовимірний масив (4x4) у FreePascal. Кожен елемент повинен бути від 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

Можеш мені допомогти?

Відповіді:

3 для відповіді № 1

Твій 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.