program PascalsTriangleProgram;
{ Define a type for a two-dimensional array }
type
TTriangle = array of array of integer;
{ Function to generate Pascal's Triangle }
procedure GeneratePascalsTriangle(n: integer; var triangle: TTriangle);
var
i, j: integer;
begin
SetLength(triangle, n); { Create an array with 'n' rows }
for i := 0 to n - 1 do
begin
SetLength(triangle[i], i + 1); { Initialize each row with 1s }
triangle[i][0] := 1; { First element is always 1 }
triangle[i][i] := 1; { Last element is always 1 }
for j := 1 to i - 1 do
triangle[i][j] := triangle[i - 1][j - 1] + triangle[i - 1][j]; { Compute values based on previous row }
end;
end;
{ Procedure to print Pascal's Triangle }
procedure PrintPascalsTriangle(triangle: TTriangle);
var
i, j: integer;
begin
for i := 0 to High(triangle) do
begin
for j := 0 to High(triangle[i]) do
Write(triangle[i][j], ' ');
Writeln;
end;
end;
{ Main program }
var
rows: integer;
pascalsTriangle: TTriangle;
begin
rows := 6; // Number of rows
GeneratePascalsTriangle(rows, pascalsTriangle); { Call procedure to populate Pascal's Triangle }
PrintPascalsTriangle(pascalsTriangle); { Print the generated triangle }
end.
(*
run:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
*)