#pragma once // двуизмерен вектор // с координати в "реални" числа class Vector { private: double x, y; public: Vector(double =0.0 , double = 0.0); // реализират се три констуктора // 1. Конструктор по подразбиране - задава нулевия вектор // 2. Конструктор с един параметър - инициализира х координатата // с подадения параметър, а y координата с 0.0 // 3. Конструктор с два параметъра, съответно и за х, и за у координатата void add(Vector const &); // събира два вектора, като новополучения вектор // се записва в инстанцията, през която е извикан метода Vector sum(Vector const &) const; // намира сбора на два вектора и го връща като резултат // не променя нито един от двата вектора Vector substract(Vector const &) const; // намира разликата на два вектора ( изважда от вектора, // през който е извикан метода, вектора, който е подаден като параметър) // не променя нито един от двата начални вектора double scalarProduct(Vector const &) const; // намира скаларното произведение на два вектора void productWithNumber( double ); // мащабира вектора с число void setX(double ); // променя стойноста на х координата на вектора, с тази на параметъра void setY(double ); // променя стойноста на у координата на вектора, с тази на параметъра void normalize(); // норамлизира вектора // ако вектора е ненулев, го мащабира, така че дължината му да е 1 // без това да променя посоката му // промените са записват върху инстанцията, през която е извикан метода Vector normalized() const; // също нормализира вектора, но не променя вектора, през който е извикан метода // за целта се връща нов вектор със същата посока, но с единична дължина double length() const; // намира дължината на вектора double getX() const ; // селектор за х координата на вектора double getY() const ; // селектор за у координата на вектора void setVector( double a, double b); // задава нови х и у координати на вектора void print() const; // печата вектор на стандартния изход във вида "(х,у)" bool isNull() const; // проверява дали вектора е нулев- т.е. дали е (0.0,0.0) // връща true, ако вектора е нулве и false в противен случай };