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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2009, 12:34   #1
aiktz
Форумчанин
 
Регистрация: 10.03.2009
Сообщений: 104
Сообщение Задача про шахматную доску

Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит восьми. Например, запись (2,4) соответствует клетке "B4", а (5,2) - клетке "E2". Даны натуральные числа k, l, m, n, каждое из которых не превосходит восьми. Требуется:

На поле (k,l) расположен конь. Угрожает ли он полю (m,n)?
aiktz вне форума Ответить с цитированием
Старый 12.03.2009, 12:43   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну еси кобылка твоя не арабская то проверяй так:
Код:
if (abs(k-m)=1)and(abs(l-n)=2) then  угрожает
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.03.2009, 12:57   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Ну а лучше как-то так:
Код:
if (abs(k-m)=1)and(abs(l-n)=2) or (abs(k-m)=2)and(abs(l-n)=1) then  угрожает
Или так:
Код:
if (abs(k-m))*(abs(l-n)) =2 then  угрожает
EducatedFool вне форума Ответить с цитированием
Старый 12.03.2009, 17:09   #4
aiktz
Форумчанин
 
Регистрация: 10.03.2009
Сообщений: 104
По умолчанию

а как сама программма будет выглядеть?
aiktz вне форума Ответить с цитированием
Старый 12.03.2009, 21:30   #5
Gonzo
Форумчанин
 
Аватар для Gonzo
 
Регистрация: 07.03.2009
Сообщений: 123
По умолчанию

На Ваше счастье сегодня писал подобную программу: елементы под угрозой коня помечаются *.

Код:
uses crt;
var stroka,stolbec:integer;
procedure horse(n,m:byte);
var doska:array[1..8,1..8] of char;
i,j:byte;
f:text;name:string;
begin
for i:=1 to 8 do
for j:=1 to 8 do
 begin
  if ((abs(i-n)=2) and (abs(j-m)=1))
  or ((abs(j-m)=2) and (abs(i-n)=1))
  then doska[i,j]:='*'
  else doska[i,j]:='0';
 end;
doska[n,m]:='K';
write('Zadaite imia i put dlia rezultiruiuschego faila: ');
readln(name);
writeln;
if length(name)=0 then name:='c:/f_result.txt';
assign(f,name);
rewrite(f);
for i:=1 to 8 do
 begin
  j:=0;
  repeat
   j:=j+1;
   write(f,doska[i,j],' ');
   write(doska[i,j],' ');
  until j=8;
  writeln(f);
  writeln;
 end;
writeln;
writeln('Resultaty zapisanny v fail ',name);
readln;
end;
begin
repeat
clrscr;
write('Nomer stroki: ');
readln(Stroka);
write('Nomer stolbca: ');
readln(Stolbec);
until (stroka>0) and (stroka<=8) and (stolbec>0) and (stolbec<=8);
horse(stroka,stolbec);
end.
Не говорите что мне делать, и я не скажу куда Вам идти.
Пишу программы на заказ на Delphi и Pascal
Форум разработчиков Pascal и Delphi

Последний раз редактировалось Gonzo; 12.03.2009 в 21:34.
Gonzo вне форума Ответить с цитированием
Старый 13.03.2009, 04:28   #6
aiktz
Форумчанин
 
Регистрация: 10.03.2009
Сообщений: 104
По умолчанию Gonzo

СПАСИБО ОГРОМНОЕ
aiktz вне форума Ответить с цитированием
Старый 13.03.2009, 11:53   #7
Gonzo
Форумчанин
 
Аватар для Gonzo
 
Регистрация: 07.03.2009
Сообщений: 123
По умолчанию

Ну, можете и отзыв добавить. - Я не растроюсь.
Не говорите что мне делать, и я не скажу куда Вам идти.
Пишу программы на заказ на Delphi и Pascal
Форум разработчиков Pascal и Delphi
Gonzo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача про 3 прямые meds Паскаль, Turbo Pascal, PascalABC.NET 5 17.11.2008 12:24
Две программы, на шахматную тему! Mandy Общие вопросы C/C++ 2 28.12.2007 10:23
Оцените мою самодельную шахматную программу Enko Софт 7 05.12.2007 23:37
Задача про переключатели Night Помощь студентам 5 21.01.2007 18:15