Форум программистов, компьютерный форум CyberForum.ru

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

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

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

13.12.2011, 01:57. Просмотров 424. Ответов 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 минуту
никто незнает как решить такую проблему?
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. ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2011, 01:57
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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