![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 14.01.2012
Сообщений: 2
|
![]()
Можно платно.
Дано: Лист металла покрывает весь стол резчика. В металле вырезаны две клетки, не граничащие с краем стола. Резак над левым верхним углом стола и поднят. Получить: Вырезанные клетки соединены проходом шириной в клетку и кратчайшей длины. //Инструкции резчика: Begin(); //Начать работу RezakUp(); //Поднять резак RezakDn(); //Опустить резак ToRight(); //Шаг вправо ToLeft(); //Шаг влево ToUp(); //Шаг вверх ToDn(); //Шаг вниз Stop(); //Кончить работу //в том числе условия: OverMet(); //Над металлом AtTopSide(); //У верхнего края стола AtBotSide(); //У нижнего края стола AtRtSide(); //У правого края стола AtLfSide(); //У левого края стола |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
алгоритм (неоптимальный) примерно такой - перемещая резак на каждой клетке проверять OverMet - если обнаружилась дырка - запомнить её местоположение. Таким же образом найти вторую вырезанную клетку. Если у клеток совпадает одна из координат (т.е. отверстия расположены либо строго по горизонтали, либо строго по вертикали) - соединить их линией. Иначе - минимальный путь даст линия когда мы от одного отверстия вырезаем проход до горизонтали (или вертикали - без разницы) второго отверстия, потом (когда оказались на одной линии резак и второе отверстие) - соединяем.
всё. p.s. В задаче ничего не сказано, куда нужно поместить резак после того, как отверстия соединены проходом... я бы как минимум поднял его. Как максимум - вернул в левый верхний угол стола. p.p.s. а на каком ЯП это нужно наваять?.. |
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 14.01.2012
Сообщений: 2
|
![]()
даже не знаю что за язык прогаммирования,преподаватель только сказал что по учебнике Борисенко :основы программирования http://www.twirpx.com/file/406666/ и по учебнику программирования для математиков ,вот туд все про резчика и говорится : http://reslib.com/book/Programmirova...matematikov#12
Благодарю за помощь. на будущее. Не надо плодить подряд несколько коротких сообщений! Это нарушение правил... для того, чтобы через минуту/другую дописать сообщение, не надо создавать ещё один новый пост. нажимайте на предыдущем кнопку "Редактировать" ("Правка") и дописывайте в своё сообщение, что Вы хотели добавить! Модератор. Последний раз редактировалось Serge_Bliznykov; 14.01.2012 в 10:23. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача про доску | Katrina* | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 20.12.2011 21:01 |
Задача про города | Katrina* | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 20.12.2011 01:25 |
Задача про рекурсию | NIKI18 | Общие вопросы C/C++ | 1 | 19.12.2011 20:35 |
Задача на Си про текст | Chargos | Помощь студентам | 5 | 17.01.2011 01:07 |
Задача про массив | xakkkkker | Помощь студентам | 2 | 02.11.2008 10:49 |