program shkisvf;
uses
crt;
procedure minh(sx, sy, dx, dy: integer);
var
h: integer;
begin
h := 0;
while ((sx <> dx) and (sy <> dy)) do
begin
if (sx < dx) and (sy < dy) then
begin
sx := sx + 1;
sy := sy + 1;
h := h + 1;
end ;
if (sx > dx) and (sy < dy) then
begin
sx := sx - 1;
sy := sy + 1;
h := h + 1;
end ;
if (sx < dx) and (sy > dy) then
begin
sx := sx + 1;
sy := sy - 1;
h := h + 1;
end ;
if (sx > dx) and (sy > dy) then
begin
sx := sx - 1;
sy := sy - 1;
h := h + 1;
end ;
end;
while ((sx <> dx) or (sy <> dy)) do
begin
if sx < dx then
begin
sx := sx + 1;
h := h + 1;
end ;
if sx > dx then
begin
sx := sx - 1;
h := h + 1;
end ;
if sy < dy then
begin
sy := sy + 1;
h := h + 1;
end ;
if sy > dy then
begin
sy := sy - 1;
h := h + 1;
end ;
end;
writeln('Минимальное количество ходов: ', h);
end;
procedure cheb(sx, sy, dx, dy: integer);
var
max, rx, ry: integer;
begin
rx := abs(sx - dx);
ry := abs(sy - dy);
writeln('Минимальное кол-во ходов по Чебышёву:');
if rx > ry then
writeln(rx)
else
writeln(ry);
end;
var
a, b, c, d: integer;
begin
writeln('Введите координаты точки s:');
readln(a, b);
writeln('Введите координаты точки f:');
readln(c, d);
if ((a < 1) or (a > 8) or (b < 1) or (b > 8) or (c < 1) or (c > 8) or (d < 1) or (d > 8)) then
writeln('Ошибка! Проверьте правильность введённых данных! Закрытие программы... ')
else
minh(a, b, c, d);
cheb(a, b, c, d);
readln;
end.