Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

derelict



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Код:
 
#include "Polygon.h"
#include <math.h>
 
Polygon::Polygon()
{
  n = 4;
  vertices = new Point[n];
  vertices[1].SetY(1);
  vertices[2].SetX(1);
  vertices[2].SetY(1);
  vertices[3].SetX(1);
}
 
Polygon::Polygon(const Polygon& polygon)
{
  n = polygon.GetVerticiesCount();
  vertices = new Point[n];
  for(int i = 0; i < n; i++)
  {
    vertices[i] = polygon[i];
  }
}
 
Polygon::Polygon(Point *points, int _n)
{
  n = _n;
  vertices = new Point[n];
  for(int i = 0; i < n; i++)
  {
    vertices[i].SetX(points[i].GetX());
    vertices[i].SetY(points[i].GetY());
  }
}
 
Point& Polygon::operator[](int i) const
{
  if(i >= 0 && i < n)
  {
    return vertices[i];
  }
  else
  {
    return *(new Point());
  }
}
 
int Polygon::GetVerticiesCount() const
{
  return n;
}
 
Polygon::operator float()
{
  float perimeter = 0;
  for(int i = 0; i < n; i++)
  {
    perimeter += pow(pow((double)(vertices[(i + 1) % n].GetX() - vertices[i].GetX()), 2) + pow((double)(vertices[(i + 1) % n].GetY() - vertices[i].GetY()), 2.0), 0.5);
  }
  return perimeter;
}
 
ostream& operator<<(ostream& out, const Polygon& polygon)
{
  out<<"{";
  int n = polygon.GetVerticiesCount();
  for(int i = 0; i < n; i++)
  {
    out<<"{"<<polygon[i].GetX()<<", "<<polygon[i].GetY()<<"}";
    if(i != n - 1)
    {
      out<<", ";
    }
  }
  out<<"}";
  return out;
}
 


Всего записей: 232 | Зарегистр. 11-06-2006 | Отправлено: 23:31 23-11-2009 | Исправлено: derelict, 23:36 23-11-2009
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru