Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Периметр прямоугольника


Автор: Artiom18 17.12.2008, 15:26
Задача:
Даны действительные числа X1 Y1, X2 Y2,..., X10 Y10. Найти периметр многоугольника, вершинами которого являются точки с координатами (X1 Y1), (X2 Y2), ...(X10 Y10)

Автор: Artiom18 20.12.2008, 22:44
Спасибо за ответы.  smile  smile 
Решение:
Код

#pragma hdrstop
#include <condefs.h>
#include <math.h>
#include <iostream.h>
#include <conio.h>
#pragma argsused
const int N = 10;
struct TPixel {
 double x;
 double y;};
TPixel pixels[N];
void PixelsLoad(){
cout << endl;
 for (int i = 0; i < N; i++){
  cout << "Pixel #" << i + 1 << endl;
  cout << "x = ";
  cin >> pixels[i].x;
  cout << "y = ";
  cin >> pixels[i].y;
 }};
double Distance(TPixel p1, TPixel p2)
{return sqrt((p1.x - p2.x)*(p1.x - p2.x) + (p1.y - p2.y)*(p1.y - p2.y));}
int main()
{ double psr[N], r = 0;
 PixelsLoad();
 cout << endl << endl;
 for (int i = 0; i < N; i++)
 { psr[i] = Distance(pixels[(i + N - 1) % N], pixels[i]);
  r += psr[i]; }
 cout << endl << "Perimetr = " << r << endl;
 char c;
 cin >> c;
getch();
 return 0;
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)