С Новым годом! Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 01.05.2012
Сообщений: 6
1

Построить треугольник с вершинами в трех из данных n точек, содержащий внутри как можно больше данных точек

24.12.2012, 16:57. Показов 2634. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
доброго времени суток, помогите пожалуйста с программой. Построить треугольник с вершинами в трех из данных n точек, содержащий внутри как можно больше данных точек. заранее большое спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.12.2012, 16:57
Ответы с готовыми решениями:

Построить два треугольника с вершинами в заданном множестве точек на плоскости так, чтобы первый треугольник лежал строго внутри второго
Здравствуйте, помогите пожалуйста решить задачу: Построить два треугольника с вершинами в...

Задать n точек. Найти m=3,4... точек и построить на них m-угольник такой что, количество точек , лежащих внутри и вне m-угольника , минимально различа
Задать n точек. Найти m=3,4... точек и построить на них m-угольник такой что, количество точек ,...

Даны два множества точек на плоскости. Выбрать три точки так, чтобы треугольник с вершинами в этих точках содержал равное количество точек
Даны два множества точек на плоскости. Из первого множества выбрать три различные точки так, чтобы...

Доказать, что из 9 точек на плоскости всегда можно выбрать 5 точек, являющихся вершинами выпуклого пятиугольника
Доказать, что из любых девяти точек на плоскости, никакие три из которых не лежат на одной прямой,...

4
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
24.12.2012, 18:23 2
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
uses crt,graph;
const nmax=50;
      t=0.001;{точность сравнения вещественных чисел}
{площадь треугольника по координаьам вершин}
function Plos(x1,y1,x2,y2,x3,y3:real):real;
begin
Plos:=abs((x1-x2)*(y3-y2)-(y1-y2)*(x3-x2))/2;
end;
{принадлежность точки треугольнику}
function Prin(x,y,x1,y1,x2,y2,x3,y3:real):boolean;
var s,s1,s2,s3:real;
begin
s:=Plos(x1,y1,x2,y2,x3,y3);
s1:=Plos(x,y,x1,y1,x2,y2);
s2:=Plos(x,y,x2,y2,x3,y3);
s3:=Plos(x,y,x1,y1,x3,y3);
Prin:=abs(s-s1-s2-s3)<=t;
end;
 
var a:array[1..nmax,1..2] of real;
    x,y,n,i,j,k,m,mx,imx,jmx,kmx,kv:integer;
    ms:real;
    s,s1,s2,s3:string;
begin
clrscr;
randomize;
repeat
write('Kolichestvo tochek ot 5 do ',nmax,' n=');
readln(n);
until n in [5..nmax];
initgraph(x,y,'');
for i:=1 to n do
 begin
  a[i,1]:=-10+20*random;{координаты}
  a[i,2]:=-10+20*random;
 end;
mx:=0; {макс кол-во точек внутри}
imx:=1;{номера вершин с минимальной разницей}
jmx:=2;
kmx:=3;
for i:=1 to n-2 do{выбираем треугольник}
for j:=i+1 to n-1 do
for k:=j+1 to n do
 begin
  kv:=0;{количество внутри}
  for m:=1 to n do
  if not(m in [i,j,k])and {проверякм точки, не вершины треугольника}
  Prin(a[m,1],a[m,2],a[i,1],a[i,2],a[j,1],a[j,2],a[k,1],a[k,2]) then inc(kv);
  if kv>mx then
   begin
    mx:=kv;
    kmx:=k;
    jmx:=j;
    imx:=i;
   end;
  end;
ms:=(getmaxY-50)/20;{масштаб для перевода координат в экранные}
x:=getmaxX div 2;{центр}
y:=getmaxY div 2;
{треугольник}
setcolor(12);
setfillstyle(1,12); {вершины}
circle(x+round(ms*a[imx,1]),y-round(ms*a[imx,2]),3);
floodfill(x+round(ms*a[imx,1]),y-round(ms*a[imx,2]),12);
circle(x+round(ms*a[jmx,1]),y-round(ms*a[jmx,2]),3);
floodfill(x+round(ms*a[jmx,1]),y-round(ms*a[jmx,2]),12);
circle(x+round(ms*a[kmx,1]),y-round(ms*a[kmx,2]),3);
floodfill(x+round(ms*a[kmx,1]),y-round(ms*a[kmx,2]),12);
setcolor(12); {стороны}
line(x+round(ms*a[imx,1]),y-round(ms*a[imx,2]),x+round(ms*a[jmx,1]),y-round(ms*a[jmx,2]));
line(x+round(ms*a[imx,1]),y-round(ms*a[imx,2]),x+round(ms*a[kmx,1]),y-round(ms*a[kmx,2]));
line(x+round(ms*a[kmx,1]),y-round(ms*a[kmx,2]),x+round(ms*a[jmx,1]),y-round(ms*a[jmx,2]));
for i:=1 to n do
if not(i in [imx,jmx,kmx]) then
if Prin(a[i,1],a[i,2],a[imx,1],a[imx,2],a[jmx,1],a[jmx,2],a[kmx,1],a[kmx,2])then
  begin
   setcolor(9);
   setfillstyle(1,9);
   circle(x+round(ms*a[i,1]),y-round(ms*a[i,2]),2);{точки внутри}
   floodfill(x+round(ms*a[i,1]),y-round(ms*a[i,2]),9);
  end
else
  begin
   setcolor(10);
   setfillstyle(1,10);
   circle(x+round(ms*a[i,1]),y-round(ms*a[i,2]),2);{точки снаружи}
   floodfill(x+round(ms*a[i,1]),y-round(ms*a[i,2]),10);
  end;
readln
end.
1
0 / 0 / 0
Регистрация: 01.05.2012
Сообщений: 6
24.12.2012, 19:40  [ТС] 3
а что у Вас означает function Plos ?
0
0 / 0 / 0
Регистрация: 01.05.2012
Сообщений: 6
28.12.2012, 13:09  [ТС] 4
Puporev, здравствуйте, скажите что означает function Prin(x,y,x1,y1,x2,y2,x3,y3:real):boolean; пожалуйста
0
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
28.12.2012, 13:25 5
Ну все же написано!!!
Цитата Сообщение от Puporev Посмотреть сообщение
{принадлежность точки треугольнику}
0
28.12.2012, 13:25
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.12.2012, 13:25
Помогаю со студенческими работами здесь

Определить, из каких трех из данных отрезков можно построить треугольник
1.Окружность на плоскости задана координатами ее центра X, Y и радиусом R. Пусть даны...

Построить такие два треугольника с вершинами в заданном множестве точек на плоскосли, из которых один лежал бы строго внутри другого
Построить такие два треугольника с вершинами в заданном множестве точек на плоскосли, из которых...

Определить, можно ли построить из точек прямоугольный треугольник
Помогите пожалуйста с задачей на C#...Даны три точки на плоскости. Определить, можно ли построить...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru