Решаем задачи Абрамян на Паскале. Boolean37

Boolean37. Даны координаты двух различных полей шахматной доски $$x_1$$, $$y_1$$, $$x_2$$, $$y_2$$ (целые числа, лежащие в диапазоне 1–8). Проверить истинность высказывания: «Король за один ход может перейти с одного поля на другое».

Решение:

Другие задачи из раздела Boolean можно посмотреть здесь.

Комментарии:

Комментарии 12

  • Должно быть ‘and’ вместо ‘or’.

    • Почему?
      король ходит так:
      000
      010
      000
      1 король, 0 куда может пойти.
      Тоесть должно исполниться одно из условий:
      (abs(x1-x2)<=1) (клетка по х поменялась на 1) или (abs(y1-y2)<=1). (клетка по y поменялась на 1). если поставить and должны будут исполнится два условия, а это изменение клетки по диагонали. Что то типо того получиться: 0х0 х1х 0х0

      • Хорошо. Позиция короля — 4.2. Если ввести 8.2, например, то вывод будет true, хотя так король ходить не может

        • король ведь по диагонали ходит

        • а, ты имеешь в виду, что одновременно не может по диагонали и в стороны…

          • Угу. Что если просто поставить and то будут только диагонали…
            пришлось существенно усложнить строчку….
            было

            Стало:

      • Всё верно, король может ходить сразу по диагонали, поэтому and

        • да, но в ситуации
          Writeln((abs(x1-x2)<=1) and (abs(y1-y2)<=1)) когда года он будет идти в сторону то будет ложь... а это не правильно... например ход (1.1) ->(1.2)

          • почему?
            abs(1-1)<=1 — условие выполняется (т.к. будет 0, а он меньше 1)
            abs(1-2)<=1 — условие тоже выполняется

          • Да ты прав… ещё раз поправил… 🙂 на сегодня интеллектуальной деятельности хватит… спать… спать… спать… 🙂

      • у меня просто с and в задачнике прокатило, раз 40 понажимал проверку

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *