0 / 0 / 1
Регистрация: 15.10.2014
Сообщений: 29
1

Найти треугольник наибольшей площади с вершинами в данных точках

19.11.2014, 00:07. Показов 1864. Ответов 6
Метки нет (Все метки)

Дано натуральное число n. С помощью двумерного действительного числового массива [xij]i=1,2; j=1,...,n на плоскости задано n точек так, что x1j, x2j – координаты j-й точки. Найти треугольник наибольшей площади с вершинами в этих точках.

Помогите пожалуйста дописать, не получается, заранее спасибо!

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
#include <iostream>
#include <cmath>
 
using namespace std;
int main()
{
    int Ax,Ay,Bx,By,Cx,Cy,n;
    int mas[2][10];
    cout<<"n=";
    cin>>n;
    double S;
    for (int i=0;i<2;i++)
        for( int j=0;j<n;j++)
        cin>>mas[i][j];
    for (int i=0;i<2;i++)
        for( int j=0;j<n;j++)
        {
    mas[0][0]=mas[Ax][Ay];
    mas[0][1]=mas[Bx][By];
    mas[0][n-1]=mas[Cx][Cy];
        }
    S=0.5*abs((Ax-Cx)*(By-Cy)-(Bx-Cx)*(Ay-Cy));
    
    cout<<S;
system ("pause");
return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2014, 00:07
Ответы с готовыми решениями:

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

Найти треугольник с наибольшей площадью с вершинами в точках заданных координатами (подправить код)
Доброго времени суток! Условие таково: Дано натуральное число n. C помощью двумерного...

Найти треугольник наибольшей площади с вершинами в заданных точках, одна из сторон которого лежит на оси OX
1) На плоскости дан набор точек с целочисленными координатами. Необходимо найти треугольник...

Найти четырехугольник наибольшей площади с вершинами в заданных точках
На плоскости дан набор точек с целочисленными координатами. Необходимо найти четырехугольник...

6
7166 / 6141 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
19.11.2014, 08:29 2
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
int main()
{
    int Ax,Ay,Bx,By,Cx,Cy,n;
    int mas[10][2];
    cout<<"n=";
    cin>>n;
    double S, A, B, C, p;
 
    for (int i=0;i<n;i++) cin >> mas[i][0] >> mas[i][1]; // ввод пары x и y
 
    for (int i = 0; i < n - 2; i++)
        for (int j = i + 1; j < n - 1; j++)
            for (int k = j + 1; k < n; k++)
            {
                // Вершины
                Ax = m[i][0]; // x
                Ay = m[i][1]; // y
                Bx = m[j][0];
                By = m[j][1];
                Cx = m[k][0];
                Cy = m[k][1];
                // Стороны
                A = sqrt((Ax - Bx) * (Ax - Bx) + (Ay - By) * (Ay - By));
                B = sqrt((Ax - Cx) * (Ax - Cx) + (Ay - Cy) * (Ay - Cy));
                C = sqrt((Bx - Cx) * (Bx - Cx) + (By - Cy) * (By - Cy));
                p = (A + B + C) / 2; // полупериметр
                S = sqrt(p * (p - A) * (p - B) * (p - C)); // площадь
            }
    
    cout << S;
 
    system ("pause");
    return 0;
}
0
0 / 0 / 1
Регистрация: 15.10.2014
Сообщений: 29
19.11.2014, 19:31  [ТС] 3
cпасибо, Вам, огромное!!!!!
0
0 / 0 / 1
Регистрация: 15.10.2014
Сообщений: 29
23.11.2014, 22:34  [ТС] 4
Написали код, но не понятно, что производится в цикле (там где i,j,k). И почему вершины задаются именно таким набором координат? Заранее спасибо!!!!
Условие задачи:
Дано натуральное число n. С помощью двумерного действительного числового массива [xij]i=1,2; j=1,...,n на плоскости задано n точек так, что x1j, x2j – координаты j-й точки. Найти треугольник наибольшей площади с вершинами в этих точках.
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
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
    int Ax,Ay,Bx,By,Cx,Cy,n;
    int m[10][2];
    cout<<"n=";
    cin>>n;
    double S, A, B, C, p;
 
    for (int i=0;i<n;i++) cin >> m[i][0] >> m[i][1]; // ввод пары x и y
 
    for (int i = 0; i < n - 2; i++)
        for (int j = i + 1; j < n - 1; j++)
            for (int k = j + 1; k < n; k++)
            {
                // Вершины
                Ax = m[i][0]; // x
                Ay = m[i][1]; // y
                Bx = m[j][0];
                By = m[j][1];
                Cx = m[k][0];
                Cy = m[k][1];
                // Стороны
                A = sqrt(double((Ax - Bx) * (Ax - Bx) + (Ay - By) * (Ay - By)));
                B = sqrt(double((Ax - Cx) * (Ax - Cx) + (Ay - Cy) * (Ay - Cy)));
                C = sqrt(double((Bx - Cx) * (Bx - Cx) + (By - Cy) * (By - Cy)));
                p = (A + B + C) / 2; // полупериметр
                S = sqrt(p * (p - A) * (p - B) * (p - C)); // площадь
            }
    
    cout << S;
 
    system ("pause");
    return 0;
}
0
С чаем беда...
Эксперт CЭксперт С++
9988 / 5341 / 1460
Регистрация: 18.10.2014
Сообщений: 12,844
24.11.2014, 04:08 5
Цитата Сообщение от Ирина 379 Посмотреть сообщение
не понятно, что производится в цикле (там где i,j,k)
Циклы проходят по все возможным треугольникам, построенным на заданных точках.

В цикле производится вычисление площади каждого треугольника по формуле Герона. Однако программа не дописана: с вычисленной площадью ничего не делается. Т.е. она не проверяется на максимальность, как того требует условие задачи.

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

Цитата Сообщение от Ирина 379 Посмотреть сообщение
почему вершины задаются именно таким набором координат
Не понял вопроса. Каким "именно таким"? Вершины задаются набором координат, прочитанным из входного потока.
1
7166 / 6141 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
24.11.2014, 08:39 6
Да, забыл про максимум. Там пару строчек добавить. Допили.
1
0 / 0 / 1
Регистрация: 15.10.2014
Сообщений: 29
25.11.2014, 00:39  [ТС] 7
Спасибо большое. Дописала, получилось
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.11.2014, 00:39
Помогаю со студенческими работами здесь

Найти целую линейную функцию, отображающую треугольник с вершинами в точках
Здравствуйте! Может ли кто нибудь помочь решить вот такую вот задачу, а то совершенно не понимаю...

Показать, что треугольник с вершинами в точках А, В и С прямоугольный. Найти его периметр
Показать, что треугольник с вершинами в точках А(1; -2; 1), В(3; -3; -1) и С(4; 0; 3)...

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

Найти ромб наибольшей площади с вершинами в заданном множестве точек на плоскости.
Доброго времени суток! НАйти ромб наибольшей площади с вершинами в заданном множестве точек на...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru