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

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Графическая задача
сообщение
Сообщение #1


Бывалый
***

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

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


Задача такова:
Дан файл вещественных чисел,которые являются координатами точек.
Нужно найти такие 3 точки, что треугольник, построенный на этих точках
будет содержать максимальное количество точек множества.
Координаты этих трёх точек сохранить в файле, как результат
+нужна графическая иллюстрация к этой задаче.

Предложите,пожалуйста,варианты решения этой задачи или какие-нибудь идеи.
У меня они пока не могут оформиться...

Буду благодарна за помощь.

Сообщение отредактировано: Tribunal -


--------------------
irreparabilium felix olivio rerum
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Бывалый
***

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

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


с удалением и изменением я разобралась.
только вот точки треугольника находятся явно неправильно.

что-то не то либо в процедуре поиска точек нужного координат:
var
popal,max,xp,x1,x2,x3,x1_max,x2_max,x3_max,i:byte;
begin
max:=0;
x1_max:=1;
x2_max:=2;
x3_max:=3;
for x1:=1 to kol-2 do {точка 1}
for x2:=x1+1 to kol-1 do {точка 2}
for x3:=x2+1 to kol do {точка 3}
begin
popal:=0;
for xp:=1 to kol do {перебор всех точек}
if posession(xp,x1,x2,x3)=true then inc(popal);
if popal>max then
begin
max:=popal;
x1_max:=x1;
x2_max:=x2;
x3_max:=x3;
end;
end;
i:=1;
while i<>kol do
begin
if i=x1_max then begin
x1_res:=point[i].x;
y1_res:=point[i].y;
end;
if i=x2_max then begin
x2_res:=point[i].x;
y2_res:=point[i].y;
end;
if i=x3_max then begin
x3_res:=point[i].x;
y3_res:=point[i].y;
end;
inc(i);
end;
end;


либо в проверке условия принадлежности точки треугольнику:

//принадлежность точки треугольнику
function posession(x,t1,t2,t3:byte):boolean;
begin
if square(line(t1,t2),line(t2,t3),line(t3,t1))=square(line(x,t1),line(t1,t2),line(t
2,x))+square(line(x,t2),line(t2,t3),line(t3,x))+square(line(x,t1),line(t1,t3),li
ne(t3,x))
then posession:=true
else posession:=false;
end;


помогите,пожалуйста...


--------------------
irreparabilium felix olivio rerum
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Tribunal   Графическая задача   13.05.2006 23:00
мисс_граффити   как узнать, принадлежит ли точка треугольнику - ес…   14.05.2006 0:58
Tribunal   а для того,чтобы координаты можно было редактирова…   15.05.2006 13:28
Malice   Где-то вот так: max:=0; t1_max:=1; t2_max:=2; t3_…   15.05.2006 13:53
Tribunal   а что обозначает сие выражение? if Принадлежит (x…   17.05.2006 11:54
Malice   а что обозначает сие выражение? if Принадлежит (x,…   17.05.2006 12:00
Tribunal   я решила считывать координаты из файла в список. в…   15.05.2006 15:17
мисс_граффити   может, я не права, но... не логичнее ли работать с…   15.05.2006 20:57
Бродяжник   Если они записаны именно таким образом, то заменит…   15.05.2006 16:13
Tribunal   нет.я не написала в условии, но сказано работать с…   16.05.2006 12:16
Tribunal   значит у меня получается вот какая штука: есть фай…   16.05.2006 14:05
volvo   Tribunal, все правильно... Только файл не "оч…   16.05.2006 14:41
Tribunal   а как тогда мне изменить файл?   16.05.2006 16:24
volvo   Что-то типа: writeln('Введите x');read(xe)…   16.05.2006 16:36
Tribunal   ...эээ...проблема в том,что когда я записываю из ф…   16.05.2006 17:56
volvo   Нет... Для того, чтобы отредактировать текстовый ф…   16.05.2006 18:22
Tribunal   а тогда можно ли в моем случае это сделать как-то …   16.05.2006 19:04
мисс_граффити   а если все несколько упростить - предположить, что…   16.05.2006 21:46
Tribunal   просто я решила работать со списками по той причин…   17.05.2006 11:39
Tribunal   а,ну тогда ясно...   17.05.2006 13:10
Tribunal   выкладываю то,что у меня получилось. делала на Del…   17.05.2006 16:04
volvo   Чтобы программа компилировалась, нужно добавить од…   17.05.2006 16:34
Tribunal   я тут кое-что еще исправила... у меня возник вопро…   17.05.2006 18:18
Tribunal   и еще у меня что-то не то с процедурой удаления (р…   17.05.2006 18:43
Tribunal   я понимаю,что я вас уже достала...( но я очень над…   17.05.2006 19:02
Tribunal   вот текущий вариант моей программы   17.05.2006 20:33
Tribunal   с удалением и изменением я разобралась. только вот…   18.05.2006 9:32
Malice   помогите,пожалуйста... У меня, к сожалению, делф…   18.05.2006 14:51
Tribunal   спасибо большое,...я действительно упустила из вид…   19.05.2006 17:25
Tribunal   ура)всё получилось...всем большое спасибо за помощ…   19.05.2006 19:17
Tribunal   в общем,вот оно...   19.05.2006 20:10


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

 





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