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

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

Восстановить пароль Регистрация
 
Ирина 379
0 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 29
19.11.2014, 00:07     Найти треугольник наибольшей площади с вершинами в данных точках #1
Дано натуральное число 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2014, 00:07     Найти треугольник наибольшей площади с вершинами в данных точках
Посмотрите здесь:

Написать функцию булевского типа, проверяющую попадание точки с заданными координатами в треугольник с вершинами в точках (2,1) (3,0) (-1,0) C++
C++ Написать функцию булевского типа, проверяющую попадание точки с заданными координатами в треугольник с вершинами в точках (1,1) (0,2) (-1,0)
Геометрия (Найти все четырёхугольники, являющиеся выпуклыми, с вершинами в этих точках) C++
Треугольник задан своими вершинами (x1,y1),(x2,y2),(x3,y3). Найти высоты треугольника. C++
Найти прямоугольник, наибольшей площади, заполненный единицами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4306 / 3727 / 1256
Регистрация: 14.04.2014
Сообщений: 14,592
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;
}
Ирина 379
0 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 29
19.11.2014, 19:31  [ТС]     Найти треугольник наибольшей площади с вершинами в данных точках #3
cпасибо, Вам, огромное!!!!!
Ирина 379
0 / 0 / 0
Регистрация: 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;
}
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2908 / 1444 / 397
Регистрация: 18.10.2014
Сообщений: 2,662
24.11.2014, 04:08     Найти треугольник наибольшей площади с вершинами в данных точках #5
Цитата Сообщение от Ирина 379 Посмотреть сообщение
не понятно, что производится в цикле (там где i,j,k)
Циклы проходят по все возможным треугольникам, построенным на заданных точках.

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

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

Цитата Сообщение от Ирина 379 Посмотреть сообщение
почему вершины задаются именно таким набором координат
Не понял вопроса. Каким "именно таким"? Вершины задаются набором координат, прочитанным из входного потока.
nmcf
4306 / 3727 / 1256
Регистрация: 14.04.2014
Сообщений: 14,592
24.11.2014, 08:39     Найти треугольник наибольшей площади с вершинами в данных точках #6
Да, забыл про максимум. Там пару строчек добавить. Допили.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2014, 00:39     Найти треугольник наибольшей площади с вершинами в данных точках
Еще ссылки по теме:

Найти треугольник с наибольшей площадью с вершинами в точках заданных координатами (подправить код) C++
Найти треугольник наибольшей площади с вершинами в заданных точках C++
Если на трёх точках можно построить разносторонний остроугольный треугольник, найти его площадь C++

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

Или воспользуйтесь поиском по форуму:
Ирина 379
0 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 29
25.11.2014, 00:39  [ТС]     Найти треугольник наибольшей площади с вершинами в данных точках #7
Спасибо большое. Дописала, получилось
Yandex
Объявления
25.11.2014, 00:39     Найти треугольник наибольшей площади с вершинами в данных точках
Ответ Создать тему
Опции темы

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