Заблокирован
1

Разработать функцию для определения и расчёта площади пятиугольника. По координатным точкам. (х1,у1) и т.д

10.11.2014, 20:37. Показов 1273. Ответов 2
Метки нет (Все метки)

Даны вещественные числа х1,у1,х2,у2...х5,у5. Найти площадь пятиугольника, вершины которого имеют координаты (х1.у2) и т.д. Разработать функции для определения существования пятиугольника и расчета площади треугольника по координатам его вершин.

Буду благодарен...

Добавлено через 52 минуты
Срочно!

Добавлено через 1 час 23 минуты
печалька
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.11.2014, 20:37
Ответы с готовыми решениями:

Найти площадь пятиугольника (определить функцию для расчёта площади треугольника по трём сторонам)
даны вещественные числа a.b.c.d.e Найти площадь пятиугольника ,(определить функцию для расчёта...

Написать программу определения площади пятиугольника с заданными координатами его вершин (x1,y1), (x2,y2), (x3,y3), (x4,
Написать программу определения площади пятиугольника с заданными координатами его вершин (x1,y1),...

Разработать подпрограмму для определения площади треугольника по трем сторонам
Разработать подпрограмму для определения площади треугольника по трем сторонам. Используя...

Разработать структуру объекта для представления и расчета объема и площади поверхности конуса
Прошу помощи, в работте с классами на дельфи. Разработать структуру объекта для представления и...

2
341 / 341 / 331
Регистрация: 02.10.2014
Сообщений: 666
10.11.2014, 22:55 2
Лучший ответ Сообщение было отмечено Байт как решение

Решение

Разработать функцию для определения и расчёта площади пятиугольника. По координатным точкам. (х1,у1) и т.д

https://www.cyberforum.ru/cgi-bin/latex.cgi?S = \frac{1}{2}\left(\begin{vmatrix}<br />
{x}_{1} & {y}_{1}\\ <br />
{x}_{2} & {y}_{2}<br />
\end{vmatrix} + \begin{vmatrix}<br />
{x}_{2} & {y}_{2}\\ <br />
{x}_{3} & {y}_{3}<br />
\end{vmatrix} + ... + \begin{vmatrix}<br />
{x}_{n} & {y}_{n}\\ <br />
{x}_{1} & {y}_{1}<br />
\end{vmatrix}\right)
Код на С++
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
100
101
102
103
104
105
#include <iostream>
#include <cmath>
 
struct D_Point{
    double x;
    double y;
};
 
const double EPS = 1e-10;
 
int Existence_Pentagon(D_Point a[]){
    //À ñóùåñòâóåò ëè Ïåíòàãîí?
    
    for (int i = 3; i <= 5; ++i){
        for (int j = 1; j < i; ++j){
            
            //y = kx + b
            double k1, k2, b1, b2;
            if(fabs(a[i % 5].x - a[i - 1].x) < EPS)
                k1 = 0;
            else
                k1 = (a[i % 5].y - a[i - 1].y) / (a[i % 5].x - a[i - 1].x);
            b1 = a[i % 5].y  - k1 * a[i % 5].x;
            
            if(fabs(a[j].x - a[j - 1].x) < EPS)
                k2 = 0;
            else
                k2 = (a[j].y - a[j - 1].y) / (a[j].x - a[j - 1].x);
            b2 = a[j].y  - k2 * a[j].x;
            
            if (fabs(k1 - k2) < EPS && fabs(b1 - b2) < EPS)
                    return 0;
            else{ 
                
                double x, y;
                if (fabs(k1 - k2) < EPS)
                    x = 0;
                else
                    x = (b2 - b1) / (k1 - k2);
                y = k1 * x + b1;
                //Åñëè ïðîåêöèè ïåðåñå÷åíèÿ ëåæàò ìåæäó ïðîåêö. òò. ïåðâîãî îòðåçêà
                if ((a[i % 5].x - x) * (a[i - 1].x - x) < 0)
                    if ((a[i % 5].y - y) * (a[i - 1].y - y) < 0)
                        //è âòîðîãî, çíà÷èò îòðåçêè ïåðåñåêëèñü
                        if ((a[j].x - x) * (a[j - 1].x - x) < 0)
                            if ((a[j].y - y) * (a[j - 1].y - y) < 0)
                                return 0;
            }
        }
    }
    return 1;
}
 
double s_n(D_Point a[], int n){
    //ïëîùàäü n - óãîëüíèêà
    double sum = 0;
    for (int i = 0; i < n; ++i){
        double det = a[i % n].x * a[(i + 1) % n].y 
                      - a[(i + 1) % n].x * a[i % n].y;
        sum += det;
    }
    return sum / 2;
}
 
int main(){
    
    D_Point a[5];
    a[0].x = 0; a[0].y = 5;
    a[1].x = 1; a[1].y = 0;
    a[2].x = 3; a[2].y = 2;
    a[3].x = 4; a[3].y = 4;
    a[4].x = 5; a[4].y = 1;
    
    //Ïðîøó ïðîùåíèÿ çà òàêîé ãåìîðîé, íî ÿ íå çíàþ êàê ïî äðóãîìó
    //ß ïîëó÷àþ âñå ïîñëåäîâàòåëüíîñòè òî÷åê áåç ïîâòîðåíèé
    int index[5] = {};
    for (int i1 = 1; i1 < 5; ++i1){
        index[1] = i1;
        for (int i2 = 1; i2 < 5; ++i2)
            if (i2 != i1){
                index[2] = i2;
                for (int i3 = 1; i3 < 5; ++i3)
                    if (i3 != i2 && i3 != i1){
                        index[3] = i3;
                        for (int i4 = 1; i4 < 5; ++i4)
                            if (i4 != i3 && i4 != i2 && i4 != i1){
                                index[4] = i4;
                                D_Point b[5];
                                
                                for (int i = 0; i < 5; ++i)
                                    b[i] = a[index[i]];
                                
                                //Çäåñü ãëàâíîå
                                if (Existence_Pentagon(b) == 1 && s_n(b, 5) > 0){
                                    for (int i = 0; i < 5; ++i)
                                        std::cout << b[i].x << ' ' << b[i].y << " | ";
                                    std::cout << std::endl;
                                    std::cout << "S = " << s_n(b, 5) << std::endl;
                                    std::cout << "------------------------" << std::endl;
                                }                               
                            }
                    }
            }                   
    }   
}
2
341 / 341 / 331
Регистрация: 02.10.2014
Сообщений: 666
11.11.2014, 07:08 3
Тут я добил перестановку:
Перестановкой строк и столбцов получить все возможные варианты матрицы
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2014, 07:08

Разработать алгоритм расчета и программу на Pascal для определения значений функции
1 формула 2 условие

Помогите разработать алгоритм расчета и программу на Pascal для определения значений функции
Ребятки помогите разработать алгоритм расчета и программу на Pascal для определения значений...

Определить функцию для расчета площади треугольника по координатам его вершин
Даны действительные числа x1,y1,x2,y2,…,x10. Найти площадь пятиугольника, вершины которого имеют...

Определить функцию для расчета площади треугольника по трем его сторонам
решить в консольном режиме: Даны вещественные числа a,b,c,d,e. Найти площадь пятиугольника,...

Разработать функцию пользователя для расчета стоимости выплат
не могу выполнить задание... помогите пожалуйста:(

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


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

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

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