(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))