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

Координаты вершин многоугольников - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
14.11.2010, 14:38     Координаты вершин многоугольников #1
...люди добрые....не знаю как это сделать -
. Среди заданных координатами вершин многоугольников на плоскости найти многоугольник с наименьшим периметром.

Желательно использовать функции.Но у меня и без функций то не выходит....вообще какая-то очень сложная задача(((...Помогите пожалуйста((
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2010, 14:38     Координаты вершин многоугольников
Посмотрите здесь:

Ввести координаты вершин треугольника. Проверить, является ли он равнобедренным C++
Найти координаты всех вершин правильного многоугольника C++
C++ Даны координаты вершин треугольника и координаты некоторой точки внутри него
C++ Определить координаты вершин прямоугольного треугольника
C++ Даны координаты вершин много угольника
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lerny
 Аватар для Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
14.11.2010, 19:04     Координаты вершин многоугольников #21
А если с классами это состыковать, то будет приемлимо?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
14.11.2010, 19:26  [ТС]     Координаты вершин многоугольников #22
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main()
 {  const m=3;
  int X[m];
int Y[m],A[m],B[m] ;
int kol;
 
cout<<" kol-vo figur: ";
cin>>kol;
 
for(int j=1 ; j<kol ; j++)
{ cout<<j<<"mnogoygolnik"<<endl ;
 
 FunTochki ( m ,  X , Y )   ;
}
Добавлено через 2 минуты
классы...я не знаю классы.....но вот....ну а как потом переметры сравнивать?
C++
1
2
3
4
5
for(int j=1 ; j<kol ; j++)
{ cout<<j<<"mnogoygolnik"<<endl ;
 
 FunTochki ( m ,  X , Y )   ;
}
Добавлено через 10 минут
вот выводит точки и периметры....а как теперь выбирать наименьший
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main()
 {  const m=3;
  int X[m];
int Y[m] ;
int kol;
 
cout<<" kol-vo figur: ";
cin>>kol;
 
for(int j=1 ; j<=kol ; j++)
{ cout<<j<<"mnogoygolnik"<<endl ;
 
 FunTochki ( m ,  X , Y ) ;
  cout<<My_Perimetr( m,X ,  Y)<<endl ;
}
 
   getch();
        return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2010, 19:43     Координаты вершин многоугольников
Еще ссылки по теме:

C++ Введите цело численные координаты трех вершин прямоугольника
C++ Проверить лежит ли один из многоугольников строго внутри другого и определить площади многоугольников
C++ Найти координаты вершин треугольника из bmp файла

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

Или воспользуйтесь поиском по форуму:
Lerny
 Аватар для Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
14.11.2010, 19:43     Координаты вершин многоугольников #23
В вашей программе новая фигура будет по верх старой ложиться и сможет состоять только из 3 углов, это не наглядно и не динамично. Советую с классами разобраться. Они гораздо лучше отображают картину:

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
    class Figura
    {
        public:
        Figura(){}
        ~Figura();
        void Create();
        float Perimetr() const;
        private:
        POINT *cord;
        int razm;
    };
 
    Figura::~Figura()
    {
        delete [] cord;
        cord=0;
    }
 
    void Figura::Create()
    {
        int points;
        cout <<"Vvedite kol-vo uglov:";
        cin >> points;
 
        razm=points;
        cord=new POINT [razm];
        
        cout <<"Vvedite tochki:"<<endl;
        for (int i=0;i<razm;i++)
        {
                cout << "X["<<i<<"]:";
                cin >> cord[i].x;
                cout << "Y["<<i<<"]:";
                cin >> cord[i].y;
        }
    }
 
    float Figura::Perimetr() const
    {
        float P, d;
        P=0;
        for(int i=0; i<razm; i++ )
        {
                if (i==(razm-1))
                {
                        d=sqrt( pow((cord[i].x-cord[0].x),2)+pow((cord[i].y-cord[0].y),2));
                        P=P+d;
                }
                else
                {
                        d=sqrt( pow((cord[i+1].x-cord[i].x),2)+pow((cord[i+1].y-cord[i].y),2));
                        P=P+d ;
                }
        }
        return P;
    }
 
 
 
 
int main()
{
        int kolf;
        cout << "Vvedite kolichestvo figur:";
        cin >>kolf;
        Figura *M=new Figura [kolf];
 
        for (int i=0;i<kolf;i++)
        {
                cout <<i+1<<" Figura:"<<endl;
                M[i].Create();
        }
 
        int num=0,per_min=1e7;
 
        for (int i=0;i<kolf;i++)
        {
                if (M[i].Perimetr()<per_min)
                {
                        per_min=M[i].Perimetr();
                        num=i+1;
                }
        }
 
        cout << "Minimal'niy perimetr u "<<num<<" figuri: "<<per_min<<endl;
 
        delete []M;
        M=0;
        getch();
        return 0;
}
Yandex
Объявления
14.11.2010, 19:43     Координаты вершин многоугольников
Ответ Создать тему
Опции темы

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