Я новичок в плюсах. Вводится количество вершин многоугольника. Нужно вычислить его площадь:
class Point
{
public:
double x;
double y;
Point(){};
void init() {
cout << "Введите x\n";
cin >> x;
cout << "Введите y\n";
cin >> y;
}
};
class Polygon
{
private:
int n;
public:
Polygon(int n):n(n){};
Point *p = new Point[n];
void init() {
for (int i = 0; i < n; i++) {
p[i].init();
}
}
};
Можешь использовать формулу площади Гаусса, она довольно простая как в понимании, так и в реализации.
Ниже я привел пример кода, но рекомендую для начала ознакомиться с самой формулой, попробовать ее самому реализовать и потом уже сверить с моим кодом.
#include <iostream>
using namespace std;
class Point
{
public:
double x;
double y;
Point(){};
void init() {
cout << "Введите x\n";
cin >> x;
cout << "Введите y\n";
cin >> y;
}
};
class Polygon
{
private:
int n;
public:
Polygon(int n):n(n){};
Point *p = new Point[n];
void init() {
for (int i = 0; i < n; i++) {
p[i].init();
}
}
double square(){
double t = 0;
for(int i = 0; i < n - 1; ++i){
t += p[i].x * p[i + 1].y;
t -= p[i].y * p[i + 1].x;
}
t = t + p[n - 1].x * p[0].y - p[n - 1].y * p[0].x;
if(t < 0) t = -t; //можно функцию из cmath или math.h использовать fabs()
return t / 2;
}
};
int main(){
Polygon pol(5);
pol.init();
cout << pol.square();
return 0;
}
просмотрите эту страницу в википедии https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D0%B0_%D0%BF%D0%BB%D0%BE%D1%89%D0%B0%D0%B4%D0%B8_%D0%93%D0%B0%D1%83%D1%81%D1%81%D0%B0
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Помогите, пожалуйста, создать программу на базе с++Разбираюсь второй день - уже голова от этих матриц болит
Задача: Составить алгоритм увеличения всех трех, введённых с клавиатуры, переменных на 5,если среди них есть хотя бы две равныеВ противном...
У меня есть последовательность чисел, которая разбивается на строкиКол-во строк зависит от кол-ва чисел(выбирается рандомно в диапазоне...
Допустим имеется слово "элемент"(слово может быть любым), нужно циклически сдвинуть слово вправо на "n" символовНапример, на 3 символа...