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

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

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

> Геометрическая задача
Berline
сообщение 30.11.2004 15:13
Сообщение #1


Гость






Дано n точек на плоскости: найти окружность на заданных точках и содержащую наибольшее число заданных точек.

Буду очень признателен, если кто поможет написать программу!
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
ShadowWatcher
сообщение 30.11.2004 17:50
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

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


Перебор сделать легко:
Код

For i:= 0 To Count-3 Do
 For j:=i + 1 To Count-2 Do
   For k:=j + 1 To Count-1 Do
   Begin
     GetRoundCenterAndRadius(x[i],y[i],x[j],y[j],x[k],y[k],NewCenterX,NewCenterY,NewR);
     NewCount := 0;
     For l:=0 To Count Do
       If PointOnRound(NewCenterX,NewCenterY,NewR,x[l],y[l]) Then
         Inc(NewCount);
     If NewCount > CurrentCount Then
     Begin
       CurrentCenterX := NewCenterX;
       CurrentCenterY := NewCenterY;
       CurrentR := NewR
     End
   End;
 WriteLn('Center: (',CurrentCenterX,';',CurrentCenterY.')');
 WriteLn('Radius: ',CurrentR)


Предполагается, что процедура GetRoundCenterAndRadius по координатам трёх точек возвращает центр и радиус окружности, на которой они лежат, а функция PointOnRound проверяет лежит ли точка на окружности указанного радиуса и с центром в указанноё точке.

Написал бы и их, но геометрию уже забывать начал да и компилятора под рукой нет... А так думаю, что принцип можно понять, а дописать особого труда не составит даже для начинающего smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Berline   Геометрическая задача   30.11.2004 15:13
volvo   Berline Что это значит? То есть как можно больше...   30.11.2004 15:22
Berline   volvo как я мог понять, то окружность должна соде...   30.11.2004 15:27
volvo   Berline Для однозначного задания окружности доста...   30.11.2004 15:30
Berline   volvo в пространстве нуны действительно 3, но на ...   30.11.2004 15:34
Altair   Berline, ты ошибаешься, для построения окружности ...   30.11.2004 15:37
Altair   перебираешь тройки точек, находишь центр , и прове...   30.11.2004 15:38
Altair   Berline, а ты не из МИЭМ часом ? :rolleyes: :p2:   30.11.2004 15:39
Berline   Oleg_Z may be...   30.11.2004 15:39
ShadowWatcher   я бы воспользовался старым добрым брутфорсом. Прин...   30.11.2004 15:57
Berline   ShadowWatcher в теории эт понятно, но на практике...   30.11.2004 16:33
ShadowWatcher   Так ты поясни в каком именно моменте у тебя пробле...   30.11.2004 16:38
Berline   ShadowWatcher проблема в том, что я паскалем я на...   30.11.2004 16:40
ShadowWatcher   Перебор сделать легко: For i:= 0 To Count-3 D...   30.11.2004 17:50
Altair   ShadowWatcher? у тебя перебор неправильный, он не ...   1.12.2004 6:53
ShadowWatcher   Oleg_Z, не обижайся, но не тебе меня учить. Как пр...   1.12.2004 10:52
Altair   ShadowWatcher, не обижайся, но не тебе со мной спо...   1.12.2004 19:15
ShadowWatcher   Oleg_Z, ну и не тебе со мной. Поверь ты мне - у ме...   2.12.2004 10:22
volvo   ShadowWatcher   2.12.2004 10:27
Altair   Это абсолютно не важно. Вот видишь, говорю же ч...   2.12.2004 10:37
xds   Предлагаю следующее: 1) адресация у людей - вещь д...   2.12.2004 12:53
ShadowWatcher   xds, согласен. По пункту 2: сейчас пишу на Delphi/...   2.12.2004 13:01
Altair   ShadowWatcher, согласен, закатаем эту тему в асфал...   2.12.2004 14:20
Berline   а программу я так и не написал... :( :p2:   7.12.2004 11:19
Altair   постараюсь написать сегодня...   7.12.2004 12:16


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

 



- Текстовая версия 23.06.2025 18:28
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"