Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2020, 12:04   #1
Kaburagi
Новичок
Джуниор
 
Регистрация: 20.11.2020
Сообщений: 1
По умолчанию Динамический многоугольник!!!

Не могу найти ошибки, может кто сможет решить проблему?

Задание звучит так:
Динамический многоугольник.
Характеризуется количеством вершин.(Тип данных координаты)
Поддерживает специфические методы:
чтение и запись координат вершин;
определение площади многоугольника.
конструкторы:
с одним аргументом - динамично выделяет память под заданную
количество вершин;
с двумя аргументами - динамично выделяет память под заданную
количество вершин и инициализирует координаты всех вершин с
заданного одномерного массива, сохраняет их в виде x 1,
y 1, x 2, y 2, ...;
с двумя аргументами - динамично выделяет память под заданную
количество вершин и инициализирует координаты всех вершин
значениями, которые соответствуют координатам правильного
многоугольника, вписанного в круг с заданным во втором
аргументе радиусом.

Код:
#include <iostream>
#include <stdlib.h>
#include <math.h>
#include <windows.h>

using namespace std;


class polygon

{
private:
    int n;
    float x[10];
    float y[10];

public:

    float chtenie()
    {
        cout << "Введите розмер ";
        cin >> n;

        float *x = new float[n];
        float *y = new float[n];

        for (int i = 0; i < n; i++)
            cin >> x[i] >> y[i];
        return *x, * y;
    }

    void set(float* M, float* N, int n)
    {
        M = new float[n];
        N = new float[n];

        for (int i = 0; i < n; i++)
        {
            M[i] = x[i];
            N[i] = y[i];
        }
    }

    float plosha()
    {
        float s;
        s = 0.0;
        for (int i = 0; i < n - 1; i++)
            s += (x[i] + x[i + 1]) * (y[i] - y[i + 1]);
        s = fabs(s) / 2.0;
        cout << s;
        return s;
    }
};

int main()
{
    setlocale(LC_ALL, "Russian");
    system("chcp 1251");
    system("cls");
    int n1;
    float pl, R1;
    n1 = 5;
    R1 = 10;
    float A[] = { 0.0, 0.0, 0.0, 1.0, 1.1 };
    float B[] = { 0.0, 0.0, 0.0, 1.0, 1.1 };
    polygon F, F1;


    F1.chtenie();
    F.set(A, B, n1);
    pl = F.plosha();
    system("pause");
}
Так же у меня были наработки в виде этого:
Код:
const double Pi = 3.1415926; //Дальше не помню, а вообще смотрите в math.h макросы (а лучше, если найдете - константы, я щас не искал) типа M_PI и пр.

class Polygon
{
public:
Polygon(int n);
Polygon(int* xy, int n);
Polygon(int n, int R);
~Polygon();
//...
private:
int* XY;   //Можно сделать также два массива - для X и Y отдельно, либо один для пары координат
int N;
};

Polygon::Polygon(int n):
 N(n)
 {
 XY = new int[2 * N];
 }
Polygon::Polygon(int* xy, int n):
 N(n)
 {
 XY = new int[2 * N];
 for (int i = 0; i < 2 * N; i++)
  XY[i] = xy[i];
 }
Polygon::Polygon(int n, int R):
 N(n)
 {
 XY = new int[2 * N];
 for (int i = 0; i < N; i++)
  {
  XY[2 * i] = R * cos(2 * Pi * i / N);
  XY[2 * i + 1] = R * sin(2 * Pi * i / N);
  }
 }
Polygon::~Polygon()
 {
 if (XY)
  delete[] XY;
 }
Но я не совсем понимаю как тут реализовать мейн, может если не с первым так со вторым кто то подсабит)

Последний раз редактировалось Kaburagi; 20.11.2020 в 12:07.
Kaburagi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выпуклый многоугольник litrein Помощь студентам 1 07.12.2015 13:03
Многоугольник и круг Никита_96 Паскаль, Turbo Pascal, PascalABC.NET 2 09.02.2011 21:10
Динамический многоугольник. alex_8 Общие вопросы C/C++ 1 01.12.2010 17:55
Динамический многоугольник(ООП). Конструкторы. alex_8 Помощь студентам 0 30.11.2010 21:53
Звёздчатый многоугольник Alex_FF Помощь студентам 0 30.12.2009 01:24