1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
А тебе что, сообразительности не хватает, сказать человеку, что это ему не надо? Что ж ты сам-то ждешь КОРРЕКТНЫХ ответов, а даешь какие???
+ я все-таки настоятельно рекомендую топикстартеру просмотреть в FAQ-е алгоритмы Варнсдорфа (и тот, что перед ним) еще раз, он содержит бОльшую часть решения... Разберись с ними, если что непонятно - задавай вопросы, а не "просто чтобы спросить..."
♣♣♣ "Себя великим не считай, гордясь величьем предков, Величья не добудешь ты и золота ценою! Хоть светит на небе луна, но отраженным светом - Чужою славой не живи, не будь второй луною!!!" ♣♣♣
Эм а зачем тебе число в букву преобразовывать,я тебе сказал 2 схемы по котрым может двигаться конь,ты просто проверяеш,есть ли элемент в твем массиве,если есть то тру,если нету то фолс,и потом все тру печатаеш.
volvo, ему даже ссылку скинул на них,но человек ответил,что слишком сложно для него.
Насчет того что нужно это или нет
Цитата
тебе что, сообразительности не хватает, сказать человеку, что это ему не надо?
Ну для начала,используя его способ тоже можно решить,просто это менее рационально,но уж лучше сделать задачу,хоть как нибудь(ну чтоб правильно работала),а уж потом пытаться оптимизировать.Я думаю через ООП,эту задачу можно решить более красиво,и коротко,но человек врятли пока что в этом разбереться,плюс твой совет предполагает,что у нас массив будет хранить булеву переменную чтоли?Мож для человека это сложно7 ты не задумывался?
for x2:=x1-2 to x1+2 do for y2:=y1-2 to y1+2 do if ((abs(x1-x2)=1) and (abs(y1-y2)=2) or (abs(x1-x2)=2) and (abs(y1-y2)=1)) and (x1 in [1..8]) and (y1 in [1..8]) then writeln(x2,y2)
X1,Y1-первоначальная клетка, X2,Y2-возможный переход (как в системе координат).
Хм как бы то ни было странно но задача решается с данным алгоритмом! Но я всё таки попытаюсь её доделать своим способом. Так как в данном случае программа выводт только но мера ячеек, а не букву и цифру.
Сообщение отредактировано: Сергей Меркурьев -
--------------------
♣♣♣ "Себя великим не считай, гордясь величьем предков, Величья не добудешь ты и золота ценою! Хоть светит на небе луна, но отраженным светом - Чужою славой не живи, не будь второй луною!!!" ♣♣♣
Вот тебе человек щас предложил именно то,что я говорил,только вариантом банального перебора.тебе надо лиш немного изменть его процедуру,просто он делает с числами,то каждая буква в аски код переводится числом и вроде функция возвращения числа называется ord(x);,поправьте,если ошибаюсь.
В общем либо сегодня либо послезавтра, я это попытаюсь решить до конца)
--------------------
♣♣♣ "Себя великим не считай, гордясь величьем предков, Величья не добудешь ты и золота ценою! Хоть светит на небе луна, но отраженным светом - Чужою славой не живи, не будь второй луною!!!" ♣♣♣
Ха! Всё сделал)) Проверил все 64 теста))) олностью работает)))
program N_5; var i,j,q,w,ibr,cod:integer; s:string; a:array[1..8,1..8] of integer; Begin Read (S); case s[1] of 'a':s[1]:='1'; 'b':s[1]:='2'; 'c':s[1]:='3'; 'd':s[1]:='4'; 'e':s[1]:='5'; 'f':s[1]:='6'; 'g':s[1]:='7'; 'h':s[1]:='8'; End; Val(s,ibr,cod); q:=ibr div 10; w:=ibr mod 10; For i:=q-2 to q+2 do For j:=w-2 to w+2 do If ((abs(q-i)=1) and (abs(w-j)=2)) or ((abs(q-i)=2) and (abs(w-j)=1)) and ((q>=1) and (q<=8)) and ((w>=1) and (w<=8)) then If ((i>0) and (j>0)) and ((i<=8) and (j<=8)) then Begin case i of 1:Write('a'); 2:Write('b'); 3:Write('c'); 4:Write('d'); 5:Write('e'); 6:Write('f'); 7:Write('g'); 8:Write('h'); End; Writeln (j); End; End.
Правда мне тут пришлось переводить цифры в буквы, буквы в цифры)) Но зато я её сделал))
Сообщение отредактировано: Сергей Меркурьев -
--------------------
♣♣♣ "Себя великим не считай, гордясь величьем предков, Величья не добудешь ты и золота ценою! Хоть светит на небе луна, но отраженным светом - Чужою славой не живи, не будь второй луною!!!" ♣♣♣
Тебер дебагер вводиш свои переменные и смотриш посторочно что в них записывается на каждой строке,и когда увидеш что число в переменной вышло за рамки дозволенного смотриш почему так произошло.короче с дебагером учись работать.Скорее всего у тебя проблемы с проверкой на принадлежность массиву.
♣♣♣ "Себя великим не считай, гордясь величьем предков, Величья не добудешь ты и золота ценою! Хоть светит на небе луна, но отраженным светом - Чужою славой не живи, не будь второй луною!!!" ♣♣♣