Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <stdio.h>
- #include <math.h>
- class Point2
- {
- private:
- int x;
- int y;
- public:
- Point2(int _x, int _y) : x(_x), y(_y) { }; // конструктор точки
- int getx() { return x; }; // доступ к x
- int gety() { return y; }; // доступ к y
- double distance(Point2*, Point2*); // расстояние между 2-мя точками
- };//Point2
- //функция вычисления расстояния между двумя точками
- double Point2::distance(Point2* r, Point2* q)
- {
- double d2 = (r->x - q->x)*(r->x - q->x) + (r->y - q->y)*(r->y - q->y);
- return (sqrt(d2));
- } // distance
- //Основная функция
- int main(int argc, char* argv[])
- {
- double dist; // rasstoyanie mezdu tochkami
- double max = 0.0; // max rasstoyanie mezdu tochkami
- int maxx, maxy, maxx1, maxy1;
- Point2** p; // адрес массива адресов точек набора
- Point2* t; // адрес текущей точки
- int x, y; // координаты точки
- int i = 0;
- int j = 0; // номера точек набора
- if (argc < 2) //анализ числа аргументов командной строки
- return(-1);
- p = new Point2*[argc]; // распределить память под массив адресов точек
- while (++i < argc)
- { //цикл ввода точек из командной строки
- sscanf(argv[i], "(%d%*c%d)", &x, &y); // получение координат точки
- p[j] = new Point2(x, y); // динамическое конструирование точки
- j++;
- } // while
- p[j] = NULL; // маркировка конца массива адресов точек набора
- for (i = 0; p[i] != NULL; i++)
- {
- t = p[i];
- for (j = 0; j != NULL; j++)
- {
- if ((t->getx()) == (t->gety()) && (p[j]->getx()) == (p[j]->gety()))
- {
- dist = t->distance(t, p[j]);
- if (dist >= max)
- {
- max = dist;
- maxx = t->getx();
- maxy = t->gety();
- maxx1 = p[j]->getx();
- maxy1 = p[j]->gety();
- }
- }
- }
- }
- printf("x=%d\n x2=%d\n y=%d\n y2=%d\n distance=%f\n", maxx, maxx1, maxy, maxy1, max);
- // освобождить дин. память точек набора по их адресам
- for (j = 0; p[j] != NULL; j++)
- delete p[j];
- delete[]p; // освобождить дин. память массива адресов точек
- return 0; //корректное завершение программы
- }// main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement