(phixonline)-->
function pascal_upper(integer n)
sequence res = repeat(repeat(0,n),n)
res[1] = repeat(1,n)
for i=2 to n do
for j=2 to i do
res[j,i] = res[j,i-1]+res[j-1,i-1]
end for
end for
return res
end function
function pascal_lower(integer n)
sequence res = repeat(repeat(0,n),n)
for i=1 to n do
res[i,1] = 1
end for
for i=2 to n do
for j=2 to i do
res[i,j] = res[i-1,j]+res[i-1,j-1]
end for
end for
return res
end function
function pascal_symmetric(integer n)
sequence res = repeat(repeat(0,n),n)
for i=1 to n do
res[i,1] = 1
res[1,i] = 1
end for
for i=2 to n do
for j = 2 to n do
res[i,j] = res[i-1,j]+res[i,j-1]
end for
end for
return res
end function
ppOpt({pp_Nest,1,pp_IntCh,false,pp_IntFmt,"%2d"})
puts(1,"=== Pascal upper matrix ===\n")
pp(pascal_upper(5))
puts(1,"=== Pascal lower matrix ===\n")
pp(pascal_lower(5))
puts(1,"=== Pascal symmetrical matrix ===\n")
pp(pascal_symmetric(5))