[an error occurred while processing this directive]
Listing PATRATE.PAS 
Program patrate; 
uses Crt; 
type tabl=array[1..50,1..50] of Word; 
var jum,dim,n,i,j,k:Integer; 
a:tabl; 
procedure afisare(a:tabl; dim:Integer); 
var i,j:Integer; 
begin 
for i:=1 to dim do 
begin 
for j:=1 to dim do Write(a[i,j]:5); 
Writeln 
end 
end; 
Begin 
Clrscr; 
Writeln('Introduceti numarul de patratele '); 
Readln(n); 
for i:=1 to 50 do 
for j:=1 to 50 do a[i,j]:=1; 
if n mod 2=0 
then 
begin 
dim:=n div 2; 
k:=1; 
for i:=1 to dim do 
begin 
Inc(k); 
a[i,dim]:=k 
end; 
k:=k-1; 
for i:=1 to dim do 
begin Inc(k); a[dim,i]:=k 
end; 
afisare(a,dim) 
end 
else 
begin 
dim:=n-3; 
jum:=dim div 2; 
for i:=1 to jum do 
for j:=jum+1 to dim do a[j,i]:=2; 
for i:=jum+1 to dim do 
for j:=1 to jum do a[j,i]:=3; 
for i:=jum+1 to dim-1 do 
for j:=jum+1 to dim-1 do a[i,j]:=4; 
k:=4; 
for i:=jum+1 to dim do 
begin 
Inc(k); 
a[i,dim]:=k 
end; 
for i:=jum+1 to dim-1 do 
begin 
Inc(k); 
a[dim,i]:=k 
end; 
afisare(a,dim) 
end; 
Readln 
End.