1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| 1qsd |
Сообщение
#1
|
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Kost Репутация: 0 |
Помогите решить вот эту несложную задачу. Преподаватель говорит, что решать её нужно как то через матрицы.
Удав расположен в виде нескольких линий, из которых каждая следущая перпендикулярна предыдущей. Направление каждой линии и её протяженность задаются буквами "L" , "R" и числом. Например 25L15R5 ("25" - длина линии = 25, "L" - поворачивает на 90 градусов влево, "15" - длина линии = 15 , "R" - поворачивает на 90 градусов вправо , "5" - длина линии = 5). Определить, пересечет ли он себя. Сообщение отредактировано: 1qsd - |
![]() ![]() |
| Lapp |
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Идея такая: разбиваем удавчика на отрезки, которые записываются в массив (или список). Отдельно горизонтальные, отдельно вертикальные. Потом сопоставляем каждую вертикальную с каждой горизонтальной и смотрим, пересекаются ли они. ... 1) мне кажется, тут подойдет запись с тремя полями: координата конца, координата начала и уровень. то есть для вертикальных линий координата х - константа, она будет уровнем. координата у начала и конца отличается, их и запишем. аналогично для горизонтальных. 2) если уровень вертикальной находится между началом и концом горизонтальной, а уровень горизонтальной - между началом и концом вертикальной, то их можно считать пересекшимися. мисс_граффити, по сути я релизовал твою идею (как заметил позже Интересно было бы сделать и матрицу и сравнить размер кода. Так или иначе, парсер строки делать надо.. А сам алгоритм совсем небольшой. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
1qsd Удав 26.03.2007 18:59
мисс_граффити С матрицами...
Единственная идея: берем матрицу из… 26.03.2007 21:04
1qsd 1) можно и не через матрицы
2) можно пользоваться … 26.03.2007 22:03
мисс_граффити Идея такая: разбиваем удавчика на отрезки, которые… 26.03.2007 23:15
1qsd давайте по порядку
1) как записывать в массив: сам… 26.03.2007 23:51
мисс_граффити 1) мне кажется, тут подойдет запись с тремя полями… 27.03.2007 0:09
1qsd А вы можете код с клеточками (во втором сообщении … 27.03.2007 0:37
мисс_граффити а сам не хочешь попробовать хотя бы? 27.03.2007 1:24
Michael_Rybak И уточни еще, что если он не пересекает себя, но к… 27.03.2007 2:15
Lapp Я тоже не придумал, как тут использовать матрицы, … 27.03.2007 11:43
Michael_Rybak
В таком случае горизонтальные нельзя проверять т… 27.03.2007 17:43
Malice
В таком случае горизонтальные нельзя проверять то… 27.03.2007 18:54
Michael_Rybak 10L10L10R10R10R30 27.03.2007 21:02
Гость О чем я и говорил. Пересекает еще и смежные отрезк… 27.03.2007 22:23
Malice Эт я был.. Я же имел ввиду случай типа:
27.03.2007 22:29
Michael_Rybak Он не пересекает смежные отрезки. Я ведь специальн… 28.03.2007 1:06
Malice Гы :) В таком случает надо определьтся - включает … 28.03.2007 1:35
Michael_Rybak У меня не получался нигде квадрат 11х11. Получало… 28.03.2007 2:53
Lapp Критику принял.
Думаю.. 28.03.2007 4:06
Lapp Коллеги, я не вполне все же вас понял..
Michael_Ry… 28.03.2007 5:30
Lapp 2 Malice:
Случай с подходом к хвосту сзади лечится… 28.03.2007 6:23
Lapp
Неужели Michael_Rybak все же прав (сам того не зн… 28.03.2007 9:27
Lapp 2 Lapp:
(а с кем еще и поговорить-то ночью.. :))
В… 28.03.2007 10:26
1qsd Если удав выглядит как спираль, например так 1R2R3… 28.03.2007 12:33
Lapp
например так 1R2R3R4R5R6 ... программма не работа… 28.03.2007 14:19
Lapp По ходу дела, посмотрев на все сложности, возникши… 28.03.2007 16:29
Malice Теперь я думаю, как говорится, тема раскрыта :) Я … 28.03.2007 22:18
Michael_Rybak Я считаю, что нужно строго определить самопересече… 28.03.2007 22:23
Lapp Мужики, не драматизируйте ситуацию. Не забывайте … 29.03.2007 5:02![]() ![]() |
|
Текстовая версия | 6.11.2025 2:02 |