Лучше всех справились: Осинцев Николай, Колтаков Михаил! 5+++
См. решения.
1. var x,y,xf,yf,i,j:integer;
a:array[1..8,1..8] of integer;
begin
readln(xf,yf);
x:=xf; y:=yf;
for i:=1 to 8 do
for j:=1 to 8 do
a[i,j]:=0;
for i:=1 to 8 do begin
for j:=1 to 8 do
write(a[i,j]);
writeln;
end;
a[xf,yf]:=2;
for j:=1 to 8 do
a[xf,j]:=1;
for i:=1 to 8 do
a[i,yf]:=1;
while (x>1) and (y>1) do begin
x:=x-1; y:=y-1;
a[x,y]:=1;
end;
x:=xf; y:=yf;
while (x<8) and (y>1) do begin
x:=x+1; y:=y-1;
a[x,y]:=1;
end;
x:=xf; y:=yf;
while (x<8) and (y<8) do begin
x:=x+1; y:=y+1;
a[x,y]:=1;
end;
x:=xf; y:=yf;
while (x>1) and (y<8) do begin
x:=x-1; y:=y+1;
a[x,y]:=1;
end;
writeln;
for i:=1 to 8 do begin
for j:=1 to 8 do
write(a[i,j]);
writeln;
end;
end.
2.program ChessQueen;
const n=8;
var
a:array[1..n,1..n]of string;
i,j,x1,x2:integer;
r1,r2:integer;
begin
writeln('vvedite koordinati ferzya');
readln(x1,x2);
writeln;
writeln('"0" - DOESNt walk');
writeln('"1" - WALKs');
writeln('"F" - ferz');
writeln;
r1:=x1;
r2:=x2;
for i:=n downto 1 do
for j:=1 to n do
a[i,j]:='0';
for i:=n downto 1 do
a[i,x2]:='1';
for j:=1 to n do
a[x1,j]:='1';
for i:=n downto 1 do
for j:=1 to n do
while ((r1<=n)and(r1>=1))and((r2<=n)and(r2>=1)) do
begin
a[r1,r2]:='1';
inc(r1);
inc(r2);
end;
r1:=x1;
r2:=x2;
for i:=n downto 1 do
for j:=1 to n do
while ((r1<=n)and(r1>=1))and((r2<=n)and(r2>=1)) do
begin
a[r1,r2]:='1';
r1:=r1-1;
r2:=r2-1;
end;
r1:=x1;
r2:=x2;
for i:=n downto 1 do
for j:=1 to n do
while ((r1<=n)and(r1>=1))and((r2<=n)and(r2>=1)) do
begin
a[r1,r2]:='1';
r1:=r1-1;
inc(r2);
end;
r1:=x1;
r2:=x2;
for i:=n downto 1 do
for j:=1 to n do
while ((r1<=n)and(r1>=1))and((r2<=n)and(r2>=1)) do
begin
a[r1,r2]:='1';
inc(r1);
r2:=r2-1;
end;
a[x1,x2]:='F';
for i:=n downto 1 do
begin
for j:=1 to n do
write(a[i,j],' ');
writeln;
end;
end.
program pp;
var a:array [1..8, 1..8] of integer;
i, j, x, y, x1, y1:integer;
begin
writeln ('Введите координаты ферзя.');
readln (x, y);
for i:=1 to 8 do
for j:=1 to 8 do
a[i, j]:=0;
for i:=x to x do
for j:=1 to 8 do
a[i, j]:=1;
for i:=1 to 8 do
for j:=x to x do
a[i, j]:=1;
while (x<9) and (y<9) do
begin
a[x, y]:=1;
x:=x+1;
y:=y+1;
end;
x1:=x;
y1:=y;
x:=1;
y:=1;
while (x<x1) and (y<y1) do
begin
a[x, y]:=1;
x:=x+1;
y:=y+1;
end;
x:=1;
y:=8;
while (x<9) and (y<9) do
begin
a[x, y]:=1;
x:=x+1;
y:=y-1;
end;
x1:=x;
y1:=y;
x:=1;
y:=1;
while (x<x1) and (y<y1) do
begin
a[x, y]:=1;
x:=x-1;
y:=y-1;
end;
for i:=1 to 8 do
begin
for j:=1 to 8 do
write (a[i, j]);
writeln;
end;
end.