Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2013, 17:18   #1
forged
Пользователь
 
Регистрация: 25.02.2013
Сообщений: 57
По умолчанию Задача конь и ферзь.

Подскажите пожалуйста как сделать такую задачу.
-----------------------------------------------------------------------------
Заданы координаты двух полей шахматной доски x1,y1-Ферзь и x2,y2-Конь.определить бьет ли конь ферзя.
-----------------------------------------------------------------------------
Я не как не могу придумать код.
forged вне форума Ответить с цитированием
Старый 30.09.2013, 17:41   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
if abs(x1 - x2) * abs(y1 - y2) = 2 then
  write('YES')
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 01.10.2013, 14:31   #3
forged
Пользователь
 
Регистрация: 25.02.2013
Сообщений: 57
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Код:
if abs(x1 - x2) * abs(y1 - y2) = 2 then
  write('YES')
Можете пояснить код? Не до конца понял.
forged вне форума Ответить с цитированием
Старый 01.10.2013, 14:34   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Конь ходит буквой "Г". Тогда абсолютная разность по координатами равна 2 и 1 или 1 и 2. Для упрощения берем их произведение.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 01.10.2013, 15:01   #5
forged
Пользователь
 
Регистрация: 25.02.2013
Сообщений: 57
По умолчанию

А что делает оператор abs-(Абсолютное значение) Как понять?
forged вне форума Ответить с цитированием
Старый 01.10.2013, 15:18   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

abs() возвращает абсолютное значение. Это делается чтоб проверять простым условием все ходы коня вверх-вправо - это значения координат с положительным результатом, вниз-влево - с отрицательным. Вот чтоб вычленить только траекторию без направления, результат вычислений стоит приводить к положительным значениям.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Троянский конь из книги Фленова demiancz Работа с сетью в Delphi 14 06.04.2013 12:56
задача Конь и Ферзь Leopold8220 Паскаль, Turbo Pascal, PascalABC.NET 0 13.02.2013 20:05
ферзь. символьная матрица. некорректная работа prettynetty Помощь студентам 2 07.07.2012 08:17
Конь анна2709 Помощь студентам 1 12.04.2011 21:07