IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Найти непересекающиеся окружности
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Женский
Реальное имя: Марина

Репутация: -  0  +


Я вообще не понимаю в програмировании.Никогда не было информатики а тут надо одну задачу решить и зачет.Рещите пожалуйста кто умеет .Нужно в турбо паскале.Буду оч благодарна(шоколадку обеспечу))


Окружность на плоскости задана координатами X,Y,R-радиус(все значения формируются случайным образом).Из 20-ти окружностей показать те,которые не пересекают другие.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(IUnknown @ 17.10.2011 23:41) *
Андрей, одна окружность лежащая внутри другой, но не касающаяся и не пересекающая её, наверное, тоже должна считаться непересекающейся ни с чем?
Да, я тоже так думаю. Спасибо, Володь, я опять выпустил этот случай из виду, +1 тебе.
Конечно, нужно проверять вложенные окружности.. Как-то вот так, если не ошибся в спешке:
const
n= 20;

var
c: array[1..n] of record
x,y,r: double
end;
i,j: integer;

begin
for i:=1 to n do with c[i] do begin
x:= random*100-50;
y:= random*100-50;
r:= random*12
end;
for i:=1 to n do with c[i] do begin
write(i:3,': x=',x:7:3,' y=',y:7:3,' r=',r:6:3);
j:= 1;
while
(j<=n) and (
(i=j) or
(Sqrt(Sqr(c[j].x-x)+Sqr(c[j].y-y)) > c[j].r+r) or { лежит снаружи }
(Sqrt(Sqr(c[j].x-x)+Sqr(c[j].y-y)) < abs(c[j].r-r)) { лежит внутри }
)
do inc(j);
if j>n then writeln(' - не пересекается с другими') else writeln
end;
readln
end.

Цитата(Carrera @ 17.10.2011 23:24) *

Спасибо огромное!!как тебе шоколадку передать? d3.gif
Спасибо! smile.gif
Боюсь, передача выйдет тебе недешево: полшоколадки на один континент, пол - на другой.. )) Мы с IUnknown дарим ее тебе (верно, Володь?), съешь сама. Только честно! smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 3
Пол: Женский
Реальное имя: Марина

Репутация: -  0  +


Ребята,спасибо вам огромное.я как сдам.вам отпишу)жаль что с шоколадкой так плохо получилось(
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 18.05.2024 14:25
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name