Шахматный ферзь за один ход может переместиться с одного заданного поля на другое (каждое поле задано двумя координатами — целыми числами от 1 до 8).

danyarasporkin danyarasporkin    1   16.04.2019 23:00    3

Ответы
Бодя7789 Бодя7789  16.04.2019 23:00
var
  x1, y1, x2, y2: byte;
  f, g: boolean;
 
begin
  writeln('Координаты первого поля:');
  write(' x1 = ');
  readln(x1);
  write(' y1 = ');
  readln(y1);
  writeln('Координаты второго поля:');
  write(' x2 = ');
  readln(x2);
  write(' y2 = ');
  readln(y2);
  writeln;
  { Поскольку Ферзь ходит и как ладья (горизонталь - вертикаль),
  и как слон (диагональ), нам надо объединить эти направления.
  Как было сказано в задаче boolean36, для успешного перехода
  ладьей необходимо совпадение или координат x, или координат
  y. Поэтому выражение f будет состоять в том, что или x1=x2,
  или y1=y2: }
  f := (x1 = x2)or(y1 = y2);
  { Но ферзь может ходить и как слон, поэтому выражение g будет
  состоять в том, что разницы соответствующих координат по
  модулю равны между собой (см. предыдущую задачу boolean38):}
  g := abs(x1 - x2) = abs(y1 - y2);
  { Таким образом, поскольку ферзь ходит или как ладья, или как
  слон, то выражения f и g объединим логическим оператором or
  ("или" - или ладья, или слон):}
  writeln(f or g);
  readln
end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Другие предметы