1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| program exercice;
uses wincrt;
type
matrice = array[1..8,1..8] of integer;
var
mat:matrice;
n:integer;
{-----------------------------------------------------}
procedure saisie(var n:integer);
begin
repeat
write('n = ');readln(n);
until (n>=2)and(n<=10);
end;
{-----------------------------------------------------}
function pascal_rec(l,c:integer):integer;
begin
if (c=1)or(l=c) then pascal_rec:=1
else
pascal_rec:=pascal_rec(l-1,c)+pascal_rec(l-1,c-1);
end;
{-----------------------------------------------------}
procedure remplir(var mat:matrice;n:integer);
var
i,j:integer;
begin
for i:=1 to n do
for j:=1 to i do
mat[i,j]:=pascal_rec(i,j);
end;
{-----------------------------------------------------}
procedure affiche(mat:matrice;n:integer);
var
i,j:integer;
begin
for i:=1 to n do
begin
writeln;
for i:=1 to i do
write(mat[i,j]:4);
end;
end;
{---------------Programe principale------------------}
begin
saisie(n);
remplir(mat,n);
affiche(mat,n);
end. |