Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
1 / 1 / 0
Регистрация: 28.06.2010
Сообщений: 24
1

Пары пересекающихся окружностей

07.07.2010, 18:29. Показов 1929. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Заданы тройки чисел(координаты центра и радиус). Найти наибольшее количество пар пересекающихся окружностей.
Очень нужна помощь не знаю как она решается. Жду любых советов.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.07.2010, 18:29
Ответы с готовыми решениями:

Вычислить длины двух окружностей и площадь кольца, образованного из этих окружностей
Очень нужна ваша помощь. Вычислите длины двух окружностей с радиусами R и r, а также площадь...

По координатам центров окружностей и их радиусам найти пару пересекающихся окружностей.
Окружности Входной файл input.txt, Выводной файл output.txt. Ограничение по времени, сек...

Построить орнамент из пересекающихся окружностей
как следующую программу написать без использования процедуры krug program ornament; uses...

Определите число пересекающихся окружностей
Пусть даны координаты центров n окружностей и их радиусы. Определите число пересекающихся...

10
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
07.07.2010, 18:40 2
Цитата Сообщение от NoxMage Посмотреть сообщение
Найти наибольшее количество пар пересекающихся окружностей.
Где найти?
0
267 / 258 / 47
Регистрация: 08.10.2009
Сообщений: 554
07.07.2010, 18:41 3
Перебираешь всевозможные пары окружностей и проверяешь, если расстояние между центрами окружностей равна сумме их радиусов, то они пересекающиеся
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
07.07.2010, 18:42 4
Вот функция определяет пересекаются ли 2 окружности.

Pascal
1
2
3
4
5
6
Function Peres(a,b:okr):boolean;
var s:real;
begin
s:=sqrt(sqr(a.x-b.x)+sqr(a.y-b.y));
Peres:=(s<a.r+b.r)and(s>abs(a.r-b.r));
end;
Добавлено через 45 секунд
если расстояние между центрами окружностей равна сумме их радиусов, то они пересекающиеся
Это касаются, а не пересекаются.
1
1 / 1 / 0
Регистрация: 28.06.2010
Сообщений: 24
07.07.2010, 18:43  [ТС] 5
Puporev, Это все условие которое у меня есть. Чего то не хватает?
Хотя скорее всего тут входной файл должен быть.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
07.07.2010, 18:45 6
Цитата Сообщение от NoxMage Посмотреть сообщение
Чего то не хватает?
Самих окружностей не хватает и что искать...
0
1 / 1 / 0
Регистрация: 28.06.2010
Сообщений: 24
07.07.2010, 18:52  [ТС] 7
Я вот тоже чувствую что что-то не так ладно.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
07.07.2010, 19:13 8
Может задан массив окружностей, может и в файле, и нужно найти окружность, имеющую больше всего пересечений?
0
1 / 1 / 0
Регистрация: 28.06.2010
Сообщений: 24
07.07.2010, 19:42  [ТС] 9
Найти просто количество пар пересекающихся окружностей.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
07.07.2010, 19:49 10
Цитата Сообщение от NoxMage Посмотреть сообщение
Найти наибольшее количество пар
Вот это как понимать?
0
1 / 1 / 0
Регистрация: 28.06.2010
Сообщений: 24
07.07.2010, 20:16  [ТС] 11
Сам не знаю. Я написал сюда условие которое мне дано. Думаю нужно просто опустить слово наибольшее и искать количество пар.

Добавлено через 23 минуты
Все всем спасибо, вот конечное решение.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
program a2;
//uses crt;
var x,y,r:array[1..100]of real;
i,j,n,z:integer;
 
function okr(x1,y1,x2,y2:real):real;
begin
 okr:=sqrt(sqr(x2-x1)+sqr(y2-y1));
end;
 
 begin
 write('N -> ');
 readln(n);
 for i:=1 to N do
 begin
  write(i,'-я точка -> ');
  readln(x[i],y[i],r[i]);
 end;
 
 writeln('Всевозможные пары пересекающихся окружностей');
 for i:=1 to N do
 for j:=i+1 to N do if okr(x[i],y[i],x[j],y[j])<r[i]+r[j] then 
 begin
 inc(z);
 writeln(i,' - ',j);
 end;
 writeln(z);
 readln;
 end.
0
07.07.2010, 20:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.07.2010, 20:16
Помогаю со студенческими работами здесь

Изобразить орнамент, состоящий из последовательности пересекающихся окружностей
Изобразить орнамент, состоящий из последовательности пересекающихся окружностей, расположенных...

Нарисовать сетку из пересекающихся окружностей разного цвета
Нарисовать сетку из пересекающихся окружностей разного цвета, размером nхn, для n введённого с...

Нарисуйте 10 окружностей разного цвета, пересекающихся в двух точках
Нарисуйте 10 окружностей разного цвета, пересекающихся в двух точках. Цвет областей пересечения...

Составьте программу рисования десяти пересекающихся окружностей, расположенных горизонтально
Составьте программу рисования десяти пересекающихся окружностей, расположенных горизонтально. ...

Нарисовать горизонтальную "линию", состоящую из 15 разноцветных пересекающихся окружностей
1.Нарисовать горизонтальную &quot;линию&quot;, состоящую из 15 разноцветных пересекающихся окружностей.

В массиве из N чисел - радиусов окружностей, выделить те, для которых площади окружностей S >= 100
В массиве из N чисел( N и числа вводятся с клавиатуры и представляют собой r окружностей)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru