Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
genreator
0 / 0 / 3
Регистрация: 10.11.2015
Сообщений: 35
1

Вычисление площади многоугольника. ООП

24.04.2016, 16:56. Просмотров 522. Ответов 0

Найти площадь многоугольника, заданного координатами своих вершин. Нужно разработать класс для работы с динамическими одномерными массивами, предусмотрев конструктор и деструктор. При работе с массивами использовать указатели.
Вот вариант без ООП
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
#include "stdafx.h"
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int n;
double s;
struct
{
    int x, y; 
} 
p[100001];
int main()
{   
    cout << "Enter the number of points: ";
    scanf("%d", &n);
    for (int i = 0; i < n; ++i)
    {
        cout << "Enter the coordinates of the point: ";
        scanf("%d %d", &p[i].x, &p[i].y);
    }
    p[n] = p[0];
    for (int i = 0; i < n; ++i) 
        s += (p[i + 1].x - p[i].x) * (p[i + 1].y + p[i].y);
    cout << "S = ";
    printf("%.1lf", abs(s) / 2.0);
    cout << endl;
    system("pause");
    return 0;
}
Добавлено через 1 час 37 минут
Сделал сам
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
#include "stdafx.h"
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
unsigned int n;
class DinArr
{
    double s = 0;
    int *X, *Y;
public:
    DinArr()
    {
        cout << "Enter the number of points: ";
        cin >> n;
        X = new int[n];
        Y = new int[n];
    }
    void MyDef()
    {
        for (int i = 0; i < n; i++)
        {
            cout << "Enter the coordinates of the point: ";
            cin >> (*(X + i));
            cin >> (*(Y + i));
        }
    }
    void Area()
    {
        X[n] = X[0];
        Y[n] = Y[0];
        for (int i = 0; i < n; i++)
            s+=(X[i+1] - X[i])*(Y[i+1] + Y[i]);
        cout << "S = ";
        printf("%.1lf", abs(s)/2.0);
        cout << endl;
    }
    ~DinArr()
    {
        cout << "\nThe destructor deletes array\n";
        system("pause");
        delete[]X;
        delete[]Y;
    }
};
int main()
{
    DinArr a;
    a.MyDef();
    a.Area();
    system("pause");
    return 0;
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2016, 16:56
Ответы с готовыми решениями:

Функция нахождения площади многоугольника
В задаче ввести натуральное число n (где n&lt;=10) и координаты n точек , образующих многоугольник. ...

Программа для вычисления площади многоугольника
Напишите программу для вычисления площади многоугольника. В виде функции оформите расчет площади...

Метод Монте-Карло в вычислении площади многоугольника
Ребята, добрый день!! Мне нужно набросать программу для вычисления площади выпухлого n-угольника с...

Функция с переменным числом параметров для вычисления площади многоугольника
В чём ошибка? Почему вместо введённых в функцию переменных в стеках находится мусор?...

Вычисление площади фигуры
Составить программу приближенного вычисления площади фигуры, ограниченной заданными линиями....

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2016, 16:56

Вычисление площади фигуры
Составить программу приближенного вычисления площади фигуры, ограниченной заданными...

Вычисление площади кольца
Написать программу вычисления площади кольца. Программа должна проверять правильность исходных...

Вычисление площади круга
Напишите ф-ию double circle_area (double R) которая определяет площадь круга, ( R- радиуса)....


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

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

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