uses GraphABC;
var
x, y: integer;
procedure kv(x, y: integer; color: system.Drawing.Color);
begin
Rectangle(x, y, x + 20, y - 50);
FloodFill(x + 10, y - 10, color);
end;
procedure DrawPyramid(arr: array of array [1..2] of integer);
begin
for var i := 1 to Length(arr) do
begin
kv(arr[i][1], arr[i][2], clRed);
end;
end;
var arr: array of array [1..2] of integer;
begin
SetPenColor(clBlack);
kv(40, 50, clGreen);
x := 80;
y := 100;
SetLength(arr, 4);
for var i := 1 to 3 do
begin
arr[i][1] := x - 20 * i;
arr[i][2] := y;
end;
x := 120;
y := 150;
SetLength(arr, 9);
for var i := 4 to 8 do
begin
arr[i][1] := x - 20 * (i-3);
arr[i][2] := y;
end;
for var i := 1 to 3 do
begin
kv(arr[i][1], arr[i][2], clOrange);
end;
for var i := 1 to 5 do
begin
arr[i][1] := x - 20 * (i+1);
arr[i][2] := y;
kv(arr[i][1], arr[i][2], clRed);
end;
end.
I don't understand how to correctly insert an array representing a pyramid into a procedure (not a "kv" procedure) with which I will perform operations in the future, for example, to copy a pyramid.
I looked at several options from the Internet, but still did not understand how to technically represent an array in my code in the procedure.
I think this is what you're looking for (although your question is somewhat unclear).
uses GraphABC;
type
TTwoDimArray = array of array[1..2] of integer;
var
x, y: integer;
procedure kv(x, y: integer; color: system.Drawing.Color);
begin
Rectangle(x, y, x + 20, y - 50);
FloodFill(x + 10, y - 10, color);
end;
procedure DrawPyramid(arr: TTwoDimArray);
begin
for var i := 1 to Length(arr) do
begin
kv(arr[i][1], arr[i][2], clRed);
end;
end;
var
arr: TTwoDimArray;
begin
SetPenColor(clBlack);
kv(40, 50, clGreen);
x := 80;
y := 100;
SetLength(arr, 4);
for var i := 1 to 3 do
begin
arr[i][1] := x - 20 * i;
arr[i][2] := y;
end;
x := 120;
y := 150;
SetLength(arr, 9);
for var i := 4 to 8 do
begin
arr[i][1] := x - 20 * (i-3);
arr[i][2] := y;
end;
for var i := 1 to 3 do
begin
kv(arr[i][1], arr[i][2], clOrange);
end;
for var i := 1 to 5 do
begin
arr[i][1] := x - 20 * (i+1);
arr[i][2] := y;
kv(arr[i][1], arr[i][2], clRed);
end;
end.