#include <iostream>
#include <math.h>
#include "cstdlib"
#include <windows.h>
using namespace std;
class sv_vector
{
public:
int x;
int y;
sv_vector (void) // конструктор
{
cout<< "введите координаты вектора:\n x=";
cin >> x;
cout<<"\n y=";
cin >> y;
cout<<"отработал конструктор\n";
}
~sv_vector (void)
{
cout<<"отработал деструктор\n";
}
sv_vector (sv_vector &two) // конструктор копирования
{
x=two.x;
y=two.y;
}
// методы класса
double dlin(void);
friend double ygl_megdu_vectorami(sv_vector &one,sv_vector &two);
//перегрузка
friend double operator || (sv_vector &one,sv_vector &two);
friend double operator + (sv_vector &one,sv_vector &two);
};
double sv_vector::dlin (void) // длинна вектора
{
return sqrt(x*x+y*y);
}
double ygl_megdu_vectorami(sv_vector &one,sv_vector &two) // угол между двумя векторами
{ double scal, cosinus;
scal=one.x*two.x+one.y*two.y;
cosinus=double(scal)/(one.dlin()*two.dlin());
return acos(cosinus);
}
double operator || (sv_vector &one,sv_vector &two) // коллинеарность двух векторов
{
double a,b;
a=one.x/two.x;
b=one.y/two.y;
if(a==b)
cout<< "вектора коллинеарны\n";
else
cout<< "вектора не коллинеарны\n";
}
double operator + (sv_vector &one,sv_vector &two)
{
int cx,cy;
cx=one.x+two.x;
cy=one.y+two.y;
cout<< "вектор суммы {"<<cx<<";"<<cy<<"}\n";
}
int main()
{
int a=0,go=1;
setlocale(LC_ALL, "Russian");
// розовые
HANDLE consoleOutput;
consoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(consoleOutput, 1 | FOREGROUND_RED | FOREGROUND_INTENSITY);
while(go)
{
cout<<" 1.длина вектора\n 2.угл между двумя векторами\n 3.определение коллинеарности двух векторов\n 4.сложение двух векторов\n 5.выход\n ";
cin>>a;
system("cls");
switch(a)
{
case 1:
{
sv_vector one;
cout<<(one.dlin())<<"\n";
system("PAUSE");
system("cls");
break;
}
case 2:
{
sv_vector one;
sv_vector two;
cout<<(ygl_megdu_vectorami(one,two));
system("PAUSE");
system("cls");
break;
}
case 3:
{
sv_vector one;
sv_vector two;
one||two;
system("PAUSE");
system("cls");
break;
}
case 4:
{
sv_vector one;
sv_vector two;
one+two;
system("PAUSE");
system("cls");
break;
}
case 5: go=0; break;
}
};
system("PAUSE");
return 0;
}