Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2008, 00:00   #1
Zoratul
Новичок
Джуниор
 
Регистрация: 10.01.2008
Сообщений: 1
Восклицание Определить радиус и центр окружности на которой лежит наибольшее число точек.

Определить радиус и центр окружности на которой лежит наибольшее число точек заданного на плоскости множества точек. Как нарисовать этот бред уже неделю мучаюсь
Zoratul вне форума Ответить с цитированием
Старый 11.01.2008, 15:37   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Окружность можно провести через любые три точки плоскости. Ее уравнение: (x-Xc)^2+(y-Yc)^2=R^2, т.е. три неизвестных коэффициента Xc,Yc,R определяем через координаты трех точек, через которые проводим окружность (решаем систему трех уравнений).
В вашем случае, нужно рассмотреть все возможные варианты, т.е. выбираем последовательно все тройки точек из заданного множества, определяем коэффициенты уравнения окружности, подставляем в это уравнение координаты оставшихся точек и считаем, для скольких оно выполняется.
_Dmitry вне форума Ответить с цитированием
Старый 11.01.2008, 16:00   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Что-то смотрю никаких сдвигов. Задача у вас на записи, множества и массивы. Для начала надо определить типы для точек и окружностей, примерно так:
type tck=record
x,y:integer;//координаты, лучше все делать в целых числах,
end; //больше вероятность совпадений
okrug=record
x,y,r,kol:integer;//координаты центра, радиус, кол-во совпадений
end;
var a:array[1..100] of tck;//массив точек
b:array[1..10] of okrug;//массив окружностей
i,n,m:integer;
Далее вводим значения n и m, В цикле рандомом присваиваем значения полей записей:
write('kol tocek=');readln(n);
write('kol okrugn=');readln(m);
for i:=1 to n do
begin
a[i].x:=random(50);
a[i].y:=random(50);
end;
for i:=1 to m do
begin
b[i].x:=random(25)+25;
b[i].y:=random(25)+25;
b[i].r:=randon(5)+20;
end;
Затем в тройном цикле определяем, сколько точек совпадают с каждой окружностью. Затем находим окружность с максимальным количеством совпадений и выводим данные ее полей на экран. Работа с записями часто рассматривается на форуме.
puporev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение координат точек касательной к окружности Stilet Помощь студентам 2 01.08.2008 15:12
программа считывающая пять целых чисел и определяющая, печатающая наибольшее и наименьшее число из них Syber Общие вопросы C/C++ 3 30.06.2008 22:39
Ввести число N и определить делится ли оно без остатка на число M (VBA) Ivanich Microsoft Office Excel 7 24.04.2008 19:43
Из двух натуральных чисел, составить наибольшее число, сохраняя первоначальную последовательность.Паскаль Omedus Помощь студентам 8 19.11.2007 22:02
Паскаль. Определить номер позиции,в которой символы отличаются Stelix Помощь студентам 6 06.11.2007 16:53