Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kewen
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 14
#1

Найти 3 крайние точки множества и соеденить линиями - C++

13.12.2011, 01:57. Просмотров 431. Ответов 0
Метки нет (Все метки)

C++
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
91
92
93
#include<conio.h>
#include<stdlib.h>
#include<math.h>
#include<graphics.h>
#include<fstream.h>
 
#define PIXEL_COUNT 100
 
void init_graph(){
   int gr_mode, gr_driver=DETECT;
   initgraph(&gr_driver,&gr_mode,"");
   int er_code=graphresult();
   if(er_code!=grOk){
      cout << "Graphic error:" << grapherrormsg(er_code);
      exit(1);
   }
}
 
void main()
{
int x0;
int y0;
int x;
int y;
int i;
char* shkala[] = {"-2", "-4", "-6", "-8", "-10", "-12"};
const int otstup = 20;
const int delenieY = 10;
clrscr();
init_graph();
//Nahodim centr
x0 = getmaxx()/2;
y0 = getmaxy()/2;
setbkcolor(BLACK);
int dxy = (getmaxy()-otstup*2)/delenieY;
setcolor(WHITE);
  for(i=1; i<=delenieY/2; i++)
    {
    y = dxy*i;
    x = getmaxx()-otstup;
    line(otstup, y0-y, x, y0-y);
    line(otstup, y0+y, x, y0+y);
    moveto(x0+5, y0-y-10);
    outtext(shkala[i-1]+1);
    moveto(x0+5, y0+y-10);
    outtext(shkala[i-1]);
    }
 int delenieX = (getmaxx()/2-otstup)/dxy;
  for(i=1; i<=delenieX; i++)
    {
    x = dxy*i;
    y = getmaxy()-otstup;
    line(x0+x, otstup, x0+x, y);
    line(x0-x, otstup, x0-x, y);
    moveto(x0+x+5, y0+5);
    outtext(shkala[i-1]+1);
    moveto(x0-x+5, y0+5);
    outtext(shkala[i-1]);
    }
 moveto(x0+5, y0-10);
 outtext("0");
 setlinestyle(SOLID_LINE, 0, THICK_WIDTH);
 setcolor(GREEN);
 line(x0, otstup, x0, getmaxy()-otstup);
 line(otstup, y0, getmaxx()-otstup, y0);
 settextjustify(CENTER_TEXT, CENTER_TEXT);
 setcolor(YELLOW);
 settextstyle(0, HORIZ_DIR, 2);
 moveto(getmaxx()-otstup-15, y0-15);
 outtext("x");
 moveto(x0+15, otstup+15);
 outtext("y");
 setlinestyle(0, 0, 3);
 settextstyle(DEFAULT_FONT, HORIZ_DIR, 1);
 
 int point_X[PIXEL_COUNT];
 int point_Y[PIXEL_COUNT];
 int seed;
 int maxx = getmaxx();
 int maxy = getmaxy();
 int x1;
 int y1;
 
   for(int j=0; j<PIXEL_COUNT; j++)
    {
    point_X[x1] = random(maxx);
    point_Y[y1] = random(maxy);
    putpixel(point_X[x1], point_Y[y1], 10);
    }
//Все, рандомом решил, но как найти отдаленные точки и построить по ним треугольник для меня   загадка
 getch();
 closegraph();
}
Условия: Дано множество точек на плоскости, найти три различные точки так, чтобы треугольник с вершинами в этих точках содержал строго внутри себя максимальное количество точек этого множества. Вот для меня это не разрешимая загадка, помогите пожжалуйста!)

Добавлено через 51 минуту
никто незнает как решить такую проблему?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2011, 01:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти 3 крайние точки множества и соеденить линиями (C++):

Дана точка A и множество B из N точек. Найти номер точки из множества B, наиболее удаленной от точки A - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;time.h&gt; #define B 100 using namespace std; void gen...

Найти наименьшее расстояние от точки В до любой из точек множества А - C++
дано множество точек с координатами(х,у) и точка В с координатами(х,у), лежащая в другом множестве. Найти наименьшее расстояние от точки...

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

Найти прямую, котороя проходит не менее чем через четыре точки из заданного множества - C++
Здравствуйте, подскажите, алгоритм выполнения вот такого задания. Есть какое-то количество точек. Необходимо найти прямую через которую...

Из множества точек на плоскости найти точки, образующие параллелограмм с наибольшим количеством точек внутри - C++
&quot;Даны N точек на плоскости. Найти среди них точки являющиеся вершинами фигуры, содержащей максимальное число заданных точек. Фигура -...

Найти левый и правый крайние отрицательные элементы в массиве из 20 элементов - C++
Помогите решить проблему. Есть задание &quot;Создать целочисленный массив из 20 элементов.Заполнить его числами в диапазоне от -13 до 13. ...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2011, 01:57
Привет! Вот еще темы с ответами:

Множества . Найти разность полученного множества с заданным - C++
Всем доброго времени суток! Необходима ваша помощь. Никак не могу сделать второй пункт задачи.Суть задачи-найти 1)объединение множества...

Выбрать 3 точки множества, составляющих треугольник наибольшего периметра - C++
Выбрать 3 различные точки заданного на плоскости множества точек,составляющих треугольник наибольшего периметра.Помогите пож-та написать...

Выбрать четыре различные точки первого множества по правилу - C++
Пытаюсь написать программу но не доходит как это сделать: Даны два множества точек на плоскости. Выбрать четыре различные точки первого...

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru