Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- using namespace std;
- class Vector
- {
- private:
- int *m;
- int abscissa;
- int ordinata;
- public:
- Vector(int x, int y)
- {
- abscissa = x; ordinata = y;
- m = new int[2];
- };
- Vector operator +(Vector &v1);
- Vector operator -(Vector&v1);
- double operator *(Vector&v1);
- Vector operator *(double s);
- friend ostream& operator<< (ostream &out, const Vector &v);
- friend istream& operator>> (istream &in, const Vector &v);
- };
- ostream&operator<<(ostream &out, const Vector &v) {
- for (int i = 0; i < 2; i++)
- out << v.m[i] << endl;
- return out;
- };
- istream& operator>> (istream &in, const Vector &v) {
- for (int i = 0; i < 2; i++)
- in >> v.m[i];
- return in;
- };
- Vector Vector :: operator+(Vector&v1) {
- Vector tmp(abscissa, ordinata);
- for (int i = 0; i < 2; i++)
- tmp.m[i] = m[i] + v1.m[i];
- return tmp;
- };
- Vector Vector::operator-(Vector&v1) {
- Vector tmp(abscissa, ordinata);
- for (int i = 0; i < 2; i++)
- tmp.m[i] = m[i] - v1.m[i];
- return tmp;
- };
- double Vector::operator*(Vector&v1) {
- double k = 0;
- k = (m[0] * v1.m[0] - m[1] * v1.m[1]) + (m[0] * v1.m[1] + m[1] * v1.m[0]);
- return k;
- };
- Vector Vector::operator*(double s) {
- Vector tmp(abscissa, ordinata);
- for (int i = 0; i < 2; i++)
- tmp.m[i] = m[i] * s;
- return tmp;
- }
- int main()
- {
- setlocale(LC_ALL, "ru");
- int k;
- double d = 0;
- int s = 0, p = 0;
- int x = 0;
- int y = 0;
- Vector v1(x, y);
- Vector v2(x, y);
- Vector m(x, y);
- while (1)
- {
- cout << "\n\t Меню \t\n";
- cout << "\t 1 - Ввод координат вектора v1 \t\n";
- cout << "\t 2 - Ввод координат вектора v2 \t\n";
- cout << "\t 3 - Вывод координат на экран \t\n";
- cout << "\t 4 - Сложение векторов v1+v2 \t\n";
- cout << "\t 5 - Вычитание векторов v1 - v2 \t\n";
- cout << "\t 6 - Скалярное умножение векторов v1 * v2 \t\n";
- cout << "\t 7 - Умножение вектора v1 на скаляр \t\n";
- cout << "\t 8 - Умножение вектора v2 на скаляр \t\n";
- cout << "\t 0 - Выход \t\n";
- cin >> k;
- switch (k)
- {
- case 1: {
- system("cls");
- cin >> v1;
- cout << endl;
- break; };
- case 2: {
- system("cls");
- cin >> v2;
- cout << endl;
- break; };
- case 3: {
- system("cls");
- cout << v1 << endl;
- cout << v2 << endl;
- cout << endl;
- break; };
- case 4: {
- system("cls");
- m = v1.operator+(v2);
- cout << m;
- cout << endl;
- break; };
- case 5: {
- system("cls");
- m = v1.operator-(v2);
- cout << m;
- cout << endl;
- break; };
- case 6: {
- system("cls");
- d = v1.operator*(v2);
- cout << d;
- cout << endl;
- break; };
- case 7: {
- system("cls");
- cout << "Ведите скаляр" << endl;
- cin >> s;
- m = v1.operator*(s);
- cout <<endl<< m;
- cout << endl;
- break; };
- case 8: {
- system("cls");
- cout << "Ведите скаляр";
- cin >> s;
- m = v2.operator*(s);
- cout <<endl<< m;
- cout << endl;
- break; };
- case 0: {exit(0); }
- default: {
- system("cls");
- cout << "Введено недопустимое значение, нажмите на любую клавишу для продолжения \n";
- break; };
- };
- };
- return 0;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement