Форумы-->Форум для внеигровых тем--> 1|2|3|4
Автор | Паскаль |
Таки это снова я, и таки снова нужна ваша помощь.
1.Дана шахматная доска размером 8*8 клеток. N клеток на этой доске занято фигурами. В клетке A1 находится фишка. Каждый ход фишка может ходить на одну клетку по вертикали или горизонтали. Фишка может ходить только по свободным клеткам. Найти кратчайший путь фишки из А1 в Н8. А1 и Н8 не заняты фигурами.
Ввод: Кол-во фигур, коор-ты фигур.
Вывод:кол-во посещённых клеток(включая А1 и Н8), сами посещённые клетки.
{Кэп подозревает, что делается это с помошью очередей.}
2. По кругу выложено N конфет. Петя идёт по кругу вдоль конфет, начиная с первой, и хавает каждую вторую до полного окончания конфет. Сорта конфет обозначаются номерами от 1 до 1000.
Вывести номера конфет в порядке поедания.
Ввод: N - кол-во конфет. N чисел - номера сортов.
Вывод: Номера сортов.
{Тута от меня вообще смысл ускользает.}
Короче говоря, очень рассчитываю на вашу помощь. Особенно рассчитываю на внятный код на Паскале, а не на пространные рекомендации. Задачи решаются с использованием очередей, стеков, списков. Для работы со структурой данных хорошо бы юзать отдельные процедуры. Таки заранее спасибо. | 1. Условие некорректно. 8-ю фишками можно перекрыть проход, выстроив их на одной линии, и 9-я фишка из А1 в Н8 не попадет никогда.
2. В конечном итоге Петя сожрет все конфеты. Сначала он выбирает каждую вторую, потом из тех, что остались каждую вторую, в конечном итоге их останется 2, потом 1.. | для Von_Shtilitz:
1. Видимо, этот вариант нужно перекрыть.
2. А сорта-то тут причём? | Ню же. | В конечном итоге Петя сожрет все конфеты.
1000 штук? | для Arcowar:
А я чо? А я ничо. | За код постараюсь вознаградить. Морально, разумеется. | В первой задаче очень много путей перекрытия поля H8 - минимум 3 фигуры - и уже проход закрыт. Задачка не простая. Алгоритм я думаю тут следующий:
Начинаем с клетки А1. Определяем, заняты ли соседние (4) с текущей клеткой поля. Но чтобы не входила в состав тех клеток, что мы уже посещали.
1) если да - возвращаемся на предыдущую клетку (маршрут держим в массиве элементов так на 50(с запасом, ну или посчитайте, если не лень - максимальный путь))
2) если нет - смотрим сколько свободных клеток в наличии. и двигаемся в сторону увеличения порядкового номера - клетки с первой горизонтали - во вторую, из А в В и т.д. Как только доходим до клетки с которой нет свободных клеток, тогда возвращаемся к предудущей клетке, рядом с которой было больше чем 1 свободная клетка, и пробуем перейти в клетку со следующим порядковым номером.
И так до тех пора мы не придем к клетке H8. Путь мы запомнили - он в нашем массиве. Если же мы вернулись к Клетке А1, использовав все свободные с ней клтки, то тогда задача не имеет решения.
к примеру:
допустим фигуры стоят на полях А2,В2,С3,D2, ну и пусть F1. А также на полях G7,G8,H7.
И так: сначала мы определяем что свободная клетка с А1 это В1 - записываем ее в массив. Смотрим далее - свободная только С1 - переходим. Далее свободны D1 и С2 - допустим приоритет - перемещения по вертикали - перемещаемся на С2 - определяем, что свободных клеток, которые мы не посещали уже нет -удаляем С2 из массива (массив состоит из А1,В1,С1). переходим на клетку D1, затем на Е1, Е2 и т.д.
И так доходим то клетки F8 - видим что справа занято поле, спускаемся таким образом до F6 - G6 -H6. Так как поля заняты, то дальше тут по идее надо возвращаться к точке А1 чтобы посчитать данную задачу невыполнимой. Так как тут будет слишком много операций со стороны обработчика, хотя и понятно, что задача не выполнима, то тут можно поставить ограничение. - Изначально нужно узнать - составляют ли клетки с фигурами замкнутую фигуру. и входит ли внутрь данной фигуры поле H8.
В общем если нужно будет еще че помочь - пиши в личку, алгоритм подработать надо еще.
Во второй задаче требуется вывести номера конфет в порядке поедания, это зависит от кол-ва введенного N, все делается одним циклом, тут все понятно. А вот с сортами я так понимаю, что тут будет типо матрицы размером [N][1] - где каждой конфете будет присвоен ее сорт, и это все будет вводиться (бред какой-то в общем). В общем необходима корректировка задания. | для 87Gektor87:
Спасибо, надо будет ковырять. ( На Паскале же ты не напишешь?)
Ап на всякий случай. | я могу на си написать) не знаю надо ли оно тебе? | для 87Gektor87:
Не, переводить совсем закопаюсь, спасибо. ) | а что именно на паскале? где им сейчас пользуются? | для 87Gektor87:
В Беларуси. ) В методичке на примеры на Бейсике вообще наткнулся. ) | ЛОЛ, такие языки только в школе проходят, зачем в ВУЗАХ - то их преподавать, если преподавать, так уж языки более высокого уровня, ну и ООП естественно.
какой курс? | для GINdog:
это не тебе я тогда писал программки со строками и аскии-кодами? | для 87Gektor87:
такие языки только в школе проходят, зачем в ВУЗАХ - то их преподавать, если преподавать, так уж языки более высокого уровня, ну и ООП естественно.
я вижу что ты делитант, но заострять на этом внимания не буду, скажу только что в 2003-2004 я изучал в университете Фортран. И знаешь, я понял что старый не значит плохой. Постарайся выйти за рамки глупых понятий малообразованых сисадминов)) | ЛОЛ, такие языки только в школе проходят
ЛОЛ, зачим "проходить" языки? Алгоритмы - наше всё! | для AlabamaMen:
я не говорю, что старый - значит плохой, просто если необходимо научить человека программированию, то почему бы не сделать это на языке более высокого уровня? опять же пригодится в дальнейшем. У нас в ВУЗе скажем фортран или паскаль не преподавали, только С, С++. Возможно я что-то и потерял, но я лично не думаю что знание паскаля мне в дальнейшем пригодится, а вот С, С++ пригождается до сих пор.
И вот скажи мне, где тебе пригодился фортран? | 15+, ща глянул почти, не тебе вроде.
только после последнего раза, когда даже паршивенький перстенек не подарили, а сказали пасиба - я не буду никому помогать. обидно(((
для Alkor:
ну почему же, я вот учил делфю по хелпу еще на далеком втором курсе и посему досих пор узнаю а некоторых возможностях среды о которых мне бы мог рассказать препод, вместо долбаных дескрипоров и си-компилятора))
Алгоритмическое мышление- наше всё! | И вот скажи мне, где тебе пригодился фортран? пригодились лабы, написаные на нем, считал курсач аж на 4 курсе, а фортран был на втором. Но это лирика, меня научил многому фортран.
почему бы не сделать это на языке более высокого уровня?
А что в принципе под этим понимаешь? я вот знаю про уровни программирования, об уровнях языка... Скажем по моим понятиям паскаль, фортран, бейсик, си - стоят на одном уровне, а тот же асм - более низкий уровень.
опять же пригодится в дальнейшем
мне изучение паскалая очень пригодилось когда начал изучать делфи, а теперь это неплохой хлеб. |
1|2|3|4К списку тем
|