Найти непересекающиеся окружности |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Найти непересекающиеся окружности |
Carrera |
Сообщение
#1
|
Группа: Пользователи Сообщений: 3 Пол: Женский Реальное имя: Марина Репутация: 0 |
Я вообще не понимаю в програмировании.Никогда не было информатики а тут надо одну задачу решить и зачет.Рещите пожалуйста кто умеет .Нужно в турбо паскале.Буду оч благодарна(шоколадку обеспечу))
Окружность на плоскости задана координатами X,Y,R-радиус(все значения формируются случайным образом).Из 20-ти окружностей показать те,которые не пересекают другие. |
Lapp |
Сообщение
#2
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Примерно вот так:
const -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Carrera |
Сообщение
#3
|
Группа: Пользователи Сообщений: 3 Пол: Женский Реальное имя: Марина Репутация: 0 |
Спасибо огромное!!как тебе шоколадку передать?
|
IUnknown |
Сообщение
#4
|
Гуру Группа: Пользователи Сообщений: 1 013 Пол: Мужской Ада: Разработчик Embarcadero Delphi: Сторонник Free Pascal: Разработчик Репутация: 627 |
Андрей, одна окружность лежащая внутри другой, но не касающаяся и не пересекающая её, наверное, тоже должна считаться непересекающейся ни с чем?
Я про вот такой случай: const |
Lapp |
Сообщение
#5
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Андрей, одна окружность лежащая внутри другой, но не касающаяся и не пересекающая её, наверное, тоже должна считаться непересекающейся ни с чем? Да, я тоже так думаю. Спасибо, Володь, я опять выпустил этот случай из виду, +1 тебе.Конечно, нужно проверять вложенные окружности.. Как-то вот так, если не ошибся в спешке: const Спасибо огромное!!как тебе шоколадку передать? Боюсь, передача выйдет тебе недешево: полшоколадки на один континент, пол - на другой.. )) Мы с IUnknown дарим ее тебе (верно, Володь?), съешь сама. Только честно! -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Carrera |
Сообщение
#6
|
Группа: Пользователи Сообщений: 3 Пол: Женский Реальное имя: Марина Репутация: 0 |
Ребята,спасибо вам огромное.я как сдам.вам отпишу)жаль что с шоколадкой так плохо получилось(
|
TarasBer |
Сообщение
#7
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
> j:= 1;
> while (j<=n) and ((i=j) or (Sqrt(Sqr(c[j].x-x)+Sqr(c[j].y-y))>c[j].r+r)) do inc(j); Мне этот код почему-то напомнил вот это: http://govnokod.ru/4883 Там человек задался целью написать всю логику программы в одном булевом выражении в заголовке while. Я надеюсь, ты это написал не всерьёз, а чтобы оставить человеку "на дом" задачу переделать это в нормальный вид. Ну и чисто от себя добавлю, что в данной задаче можно избавиться от квадрата (перебор всех пар окружностей), если ввести сетку и хеширование. Я уж не говорю о том, что вместо sqrt(a)>b выгоднее проверять a>sqr(b). Сообщение отредактировано: TarasBer - -------------------- |
Lapp |
Сообщение
#8
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Я надеюсь, ты это написал не всерьёз, а чтобы оставить человеку "на дом" задачу переделать это в нормальный вид. Ну, ясно дело, тут есть, что оптимизировать.. ))Ну и чисто от себя добавлю, что в данной задаче можно избавиться от квадрата (перебор всех пар окружностей), если ввести сетку и хеширование. Цитата Я уж не говорю о том, что вместо sqrt(a)>b выгоднее проверять a>sqr(b). Может быть, но я не уверен..-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
TarasBer |
Сообщение
#9
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
> но я не уверен..
В чём? Что умножить число на себя быстрее, чем взять корень? Или что b не окажется отрицательным? Или что переполнения с типом double тут не случится? -------------------- |
Текстовая версия | 4.05.2024 19:45 |