С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/14: Рейтинг темы: голосов - 14, средняя оценка - 4.86
n1kron
0 / 0 / 0
Регистрация: 14.12.2010
Сообщений: 20
1

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

17.12.2010, 14:56. Просмотров 2571. Ответов 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
#include <iostream>
#include <time.h>
#define _CRT_SECURE_NO_DEPRECATE 0
using namespace std;
int _tmain()
    
{
    setlocale(LC_ALL,"Russian");
int* A; 
int razmer;
printf( "Введите количество множества точек:") ;
    scanf("%d", &razmer);
A=new int[razmer];
        char ch;
        do{
            printf("Задать Элементы множества случайно?(y/n)");
            ch=getch();printf("%c\n", ch);
        }while ((ch!='y')&&(ch!='n'));
 
        if(ch=='y')
            {srand ((int)time(NULL));        
        for (int i=0; i < razmer; ++i)
                A[i]=rand()%30-20;
        for (int i=0; i < razmer; ++i)
                cout<<" "<<A[i];
        }
        else
        {   int i;  
            cout<<"Введите элементы множества: "<< endl;
    for(i=0; i<razmer; i++)
        {
                cout<<"["<<i<<"]= ";
                cin>>A[i]; 
        }
        cout<<"исходное множество"<<endl;
    for(i=0; i<razmer; i++)
                cout<<A[i]<<" ";
        cout<<endl;
        } 
 
delete[] A;
    getch();
return 0;
}
Но как можно, заставить его перебрать все точки для получения максимальных отрезков => максимального периметра?

Добавлено через 4 часа 54 минуты
Немного модифицировал, но всё-равно нужна помощь...Надо найти в массиве точки, максимально увеличивающие периметр, обращаясь к AreaPolygon...Как это можно расписать???

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
#include "stdafx.h"
#include <stdio.h>
#include<math.h>
#include<conio.h>
#include <iostream>
#include <time.h>
#define _CRT_SECURE_NO_DEPRECATE 0
using namespace std;
double AreaPolygon(int X1, int Y1, int X2, int Y2,int X3, int Y3);
    { 
        double P=0;
            
        P += sqrt((X2-X1)*(X2-X1)+(Y2-Y1)*(Y2-Y1));
        P += sqrt((X3-X2)*(X3-X2)+(Y3-Y2)*(Y3-Y2));
        P += sqrt((X1-X3)*(X1-X3)+(Y1-Y3)*(Y1-Y3));
            
            
      return abs (P/2);
}
 
 
    int _tmain()
   {
       setlocale(LC_ALL,"Russian");
int* A, n; 
int razmer;
printf( "Введите количество множества точек:") ;
    scanf("%d", &razmer);
A=new int[razmer];
        char ch;
        do{
            printf("Задать Элементы множества случайно?(y/n)");
            ch=getch();printf("%c\n", ch);
        }while ((ch!='y')&&(ch!='n'));
 
        if(ch=='y')
            {srand ((int)time(NULL));        
        for (int i=0; i < razmer; ++i)
                A[i]=rand()%30-20;
        for (int i=0; i < razmer; ++i)
                cout<<" "<<A[i];
        }
        else
        {   int i;  
            cout<<"Введите элементы множества: "<< endl;
    for(i=0; i<razmer; i++)
        {
                cout<<"["<<i<<"]= ";
                cin>>A[i]; 
        }
        cout<<"исходное множество"<<endl;
    for(i=0; i<razmer; i++)
                cout<<A[i]<<" ";
        cout<<endl;
        } 
        
            int P, PMax=0;
            for(int i=0; i<n;i++)
            {
                for(int i=0; i<n;i++)
                {
                    for(int i=0; i<n;i++)
                    {
                        P = AreaPolygon();
 
                    }
                }
            }
            
        
          delete[] A;
    getch();
return 0;
}
Добавлено через 17 часов 56 минут
Ап, всё еще need help=(
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2010, 14:56
Ответы с готовыми решениями:

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

Из заданного на плоскости множества точек выбрать такие три, которые составляют треугольник наибольшего периметра.
Помогите ребят!!!!препод задачи задачи для аттестации,сделал фактически...

Из заданного множества точек на плоскости выбрать три разные точки A, B, C
Из заданного множества точек на плоскости выбрать три разные точки A, B, C,...

Из множества точек выбрать три точки, не лежащие на одной прямой, составляющие треугольник наименьшей площади
Разработать программу выбора из заданного на плоскости множества точек N (N...

Из заданного на плоскости множества точек выбрать три различные точки
Само задание звучит так: &quot;Из заданного на плоскости множества точек выбрать три...

1
n1kron
0 / 0 / 0
Регистрация: 14.12.2010
Сообщений: 20
18.12.2010, 16:20  [ТС] 2
Блин, уже начинаю гореть=) Кто уже поможет за вознаграждение? Всю голову уже сломал...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2010, 16:20

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

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

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


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

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

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