Primero creo el array asignandole éstos valores.
1 0 0 0 0 0 0
1 1 0 0 0 0 0
1 2 1 0 0 0 0
1 3 3 1 0 0 0
1 4 6 4 1 0 0
1 5 10 10 5 1 0
1 6 15 20 15 6 1Y despues creo un string con un formato para mostrarlo en pantalla y quede como el triangulo que propusiste.
Codigo en Delphi.
procedure TForm1.Button1Click(Sender: TObject);
var
A : array [1..7, 1..7] of integer;
i, j, z : integer;
s : string;
begin
//llenamos el array con los valores necesarios
for i := 1 to 7 do
for j := 1 to 7 do
begin
if j > i then
a[i,j] := 0
else
if(i > 1) or (j > 1) then
a[i,j] := a[i-1,j-1] + a[i-1,j]
else
a[i,j] := 1;
end;
//Lo mostramos formateado
for i := 1 to 7 do
begin
if 7 - i >= 1 then
for z := 1 to 7 - i do
s := s + '__ | ';
for j := 1 to i do
begin
s := s + FormatFloat('00',A[i,j]) + ' | __ | ';
end;
if 7 - i >= 1 then
for z := 1 to 7 - i do
s := s + '__ | ';
s := s + chr(13);
end;
Memo1.Lines.SetText(PAnsiChar(s));
end;
Finalmente, la salida es ésta:
__ | __ | __ | __ | __ | __ | 01 | __ | __ | __ | __ | __ | __ | __ |
__ | __ | __ | __ | __ | 01 | __ | 01 | __ | __ | __ | __ | __ | __ |
__ | __ | __ | __ | 01 | __ | 02 | __ | 01 | __ | __ | __ | __ | __ |
__ | __ | __ | 01 | __ | 03 | __ | 03 | __ | 01 | __ | __ | __ | __ |
__ | __ | 01 | __ | 04 | __ | 06 | __ | 04 | __ | 01 | __ | __ | __ |
__ | 01 | __ | 05 | __ | 10 | __ | 10 | __ | 05 | __ | 01 | __ | __ |
01 | __ | 06 | __ | 15 | __ | 20 | __ | 15 | __ | 06 | __ | 01 | __ |
A ver si alguno logra realizar los dos pasos simultaneamente.
Saludos!