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

Готовая рабочая программа на С ++ .Выберите три различные точки из заданного множества точек на плоскости , так чтобы была минемальная разность между - C++

Восстановить пароль Регистрация
 
Ekaterinaaa
0 / 0 / 0
Регистрация: 04.06.2013
Сообщений: 22
05.06.2013, 08:35     Готовая рабочая программа на С ++ .Выберите три различные точки из заданного множества точек на плоскости , так чтобы была минемальная разность между #1
Выберите три различные точки из заданного множества точек на плоскости , так чтобы была минемальная разность между колличествами точек лежащих внутри и вне треугольника , с вершинами в выбранных точках.


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
94
95
96
97
98
99
// triangle Kate.cpp: определяет точку входа для консольного приложения.
 
#include "stdafx.h"
#include <stdio.h>      
#include <stdlib.h>     
#include <time.h>
#include <iostream>
#include <conio.h>
 
#define n 15
 
using namespace std;
 
struct kor
{
 int x;
 int y;
};
int area(kor a, kor b, kor c)
{
  return abs((a.x - c.x)*(b.y - c.y) + (b.x-c.x)*(c.y-a.y));
}
int area1(kor a, kor b, kor c,int &f)
{ 
  f= abs((a.x - c.x)*(b.y - c.y) + (b.x-c.x)*(c.y-a.y));
return 0; 
}
 
int main()
{
    
    setlocale(LC_ALL,"Russian");
  kor a[n];
  int i,j,k,r;
  int i1,j1,k1;
  int raz, razmin;
  int f,ms,ls,ps;
   srand (time(NULL));
  for (i = 0; i < n; i++)
  {
   a[i].x = rand()%10+1;
   a[i].y = rand()%10+1;
  }
  for (i = 0; i < n; i++)
  {
   cout<<a[i].x << " " << a[i].y<<'\n';
  }
 
  i1 = 0;
  j1 = 0;
  k1 = 0;
  raz = 0;
  razmin = n;
  int c = 0, c1 = 0;
  for (i = 0; i < n- 2; i++)
  for (j = i + 1;  j < n - 1; j++)
  for (k = j + 1;  k < n; k++)
  {
 
  for (r = 0;  r < n; r++)
  {
   if ((r!=i) &&( r!=j) && (r!=k))
 
   { 
       area1(a[i], a[j], a[k],f);
       area1(a[i], a[j], a[r],ms);
       area1(a[i], a[r], a[k],ls);
       area1(a[j], a[r], a[k],ps);
 
      if (f == ms + ls + ps)
           c++;
      else
          c1++;
   }
  }
  raz = c1-c;
  if (raz<0)  raz = raz--;
  if (raz < razmin)
  {
      razmin = raz;
      i1 = i;
      j1 = j;
      k1 = k;
  }
  };
 
  if (i1 >= 0)
  {
      cout<<"Образована точками:"<<"\n"<<"X:";
    cout<<a[i1].x<<" "<<a[j1].x<<" "<<a[k1].x<<"\n";
    cout<< "Y:";
     cout<<a[i1].y<<" "<<a[j1].y<<" "<<a[k1].y<<"\n";
     
     cout<< "Размерность: "<<razmin<<endl;
  }
  else
   cout<<"неприемлемое количество, либо неприемлемое расположение точек";
  return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2013, 08:35     Готовая рабочая программа на С ++ .Выберите три различные точки из заданного множества точек на плоскости , так чтобы была минемальная разность между
Посмотрите здесь:

C++ Из заданного на плоскости множества точек выбрать три различные точки
C++ Выбрать три разные точки заданного на плоскости множества точек, составляющие треугольник наибольшего периметра
Работа С Массивами (Выбрать три различные точки из заданного множества точек на плоскости так...) C++
C++ На плоскости задано множество точек. Выбрать три различные точки так, чтобы проходящая через них окружность делила это множество на группы
Из заданного множества точек на плоскости выбрать три разные точки A, B, C C++
C++ Определить радиус и центр окружности минимального радиуса, проходящей хотя бы через три различные точки заданного множества точек на плоскости
Определить радиус и центр окружности минимального радиуса, проходящей хотя бы через три различные точки заданного множества точук на плоскости C++
Из заданного множества точек на плоскости выбрать две различные точки так C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 00:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru