В общем, такая проблемка

Случай не тот, который описан в faq... Пожалуйста, помогите... Я просто в растерянности

Ну и напоследок выложу свои потуги


const n=9;
type arr=array[1..n,1..n] of integer;
var x:integer;
var mas:arr;
procedure diag (sdv:integer);
var i:integer;
begin
i:=0;
while (i+(sdv*2) <= n) do begin
inc(i);
mas[i+(sdv*2),i+sdv]:=1;
end;
end;
procedure hor (sdv:integer);
var i:integer;
begin
i:=0;
while (i+(sdv*2) <= n) do begin
inc(i);
mas[1+sdv,1+i+(sdv*2)]:=2;
end;
end;
procedure vert (sdv:integer);
var i:integer;
begin
i:=0;
while (i+(sdv*2) <= n) do begin
inc(i);
mas[i+sdv,n-sdv]:=3;
end;
end;
procedure draw;
var dn,dm:integer;
begin
for dn:=1 to n do begin
for dm:=1 to n do begin
write (mas[dn,dm],'');
end;
writeln;
end;
end;
BEGIN
for x:=0 to 0 do begin
diag(x); hor(x); vert(x);
end;
draw;
readln;
END.