Шахматный ферзь за один ход может переместиться с одного данного поля

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

Задать свой вопрос
1 ответ
var
nbsp;nbsp;x1, y1, x2, y2: byte;
nbsp;nbsp;f, g: boolean;
nbsp;
begin
nbsp;nbsp;writeln(Координаты первого поля:);
nbsp;nbsp;write( x1 = );
nbsp;nbsp;readln(x1);
nbsp;nbsp;write( y1 = );
nbsp;nbsp;readln(y1);
nbsp;nbsp;writeln(Координаты второго поля:);
nbsp;nbsp;write( x2 = );
nbsp;nbsp;readln(x2);
nbsp;nbsp;write( y2 = );
nbsp;nbsp;readln(y2);
nbsp;nbsp;writeln;
nbsp;nbsp; Поскольку Ферзь прогуливается и как ладья (горизонталь - вертикаль),
nbsp;nbsp;и как слон (диагональ), нам надобно соединить эти направления.
nbsp;nbsp;Как было сказано в задаче boolean36, для удачного перехода
nbsp;nbsp;ладьей нужно совпадение либо координат x, или координат
nbsp;nbsp;y. Потому выражение f будет состоять в том, что либо x1=x2,
nbsp;nbsp;либо y1=y2:
nbsp;nbsp;f := (x1 = x2)or(y1 = y2);
nbsp;nbsp; Но ферзь может ходить и как слон, потому выражение g будет
nbsp;nbsp;состоять в том, что различия подходящих координат по
nbsp;nbsp;модулю одинаковы между собой (см. предыдущую задачу boolean38):
nbsp;nbsp;g := абс(x1 - x2) = abs(y1 - y2);
nbsp;nbsp; Таким образом, так как ферзь прогуливается либо как ладья, либо как
nbsp;nbsp;слон, то выражения f и g объединим логическим оператором or
nbsp;nbsp;(quot;либоquot; - либо ладья, либо слон):
nbsp;nbsp;writeln(f or g);
nbsp;nbsp;readln
end.
, оставишь ответ?
Имя:*
E-Mail:


Похожие вопросы

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт