Advertisement
Guest User

Untitled

a guest
Apr 19th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.03 KB | None | 0 0
  1. // Rtslaba.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
  2. //
  3.  
  4. #include "pch.h"
  5. #include <iostream>
  6. using namespace std;
  7.  
  8. class vektor //объявление класса вектор
  9. {
  10. public:
  11.     int size; //переменная размера массива
  12.     int mas[100];  //наш массив из 100 эл-ов
  13.  
  14.     void Input(); //объявление функции ввода эл-ов вектора
  15.     vektor(int size); //объявление конструктора
  16.     void Output(); //объявление функции вывода эл-ов вектора
  17.     void Subtraction(vektor vek); //объявление функции поэлементного вычитания двух векторов.
  18.     vektor operator-(vektor vekt); //перегрузка функции поэлементного вычитания двух векторов.
  19. };
  20.  
  21. void vektor::Input()  //ф-я ввода вектора
  22. {
  23.     for (int i = 0; i < size; i++)
  24.         mas[i] = -4 + rand() % 10; //рандомно заполняет вектор от -4 до 10(не вкл)
  25. }
  26.  
  27. vektor::vektor(int size) //конструктор нашего класса
  28. {
  29.     this->size = size; //задаем размер массива ; this это указатель на текущий объект нашего класса.
  30.     if (size <= 0 || size > 100)  //если ввели размер <= 0 или >100 то пишем ошибку иначе идем дальше и заполняем вектор нулями
  31.         cout << "ERROR!!!" << endl;  
  32.     else
  33.         for (int i = 0; i < size; i++) //заполнение вектора нулями
  34.             mas[i] = 0;
  35. }
  36.  
  37. void vektor::Output() //ф-я вывода вектора
  38. {
  39.     for (int i = 0; i < size; i++)
  40.     {
  41.         cout << mas[i] << "  ";  //выводим наш вектор
  42.     }
  43.     cout << endl; //переход на новую строчку
  44.     cout << "===========================================================================" << endl;
  45. }
  46.  
  47. void vektor::Subtraction(vektor vek) //ф-я вычитания векторов
  48. {
  49.     for (int i = 0; i < size; i++)
  50.     {
  51.         mas[i] -= vek.mas[i]; //вычитаем векторы т.е. н-р из вектора 'P' вычитаем вектор 'H' и записываем результат В ВЕКТОР P!!!(т.е.просто перезаписываем его)
  52.     }
  53. }
  54.  
  55. vektor vektor::operator-(vektor vekt) //перегрузка оператора вычитания векторов
  56. {
  57.     for (int i = 0; i < size; i++)
  58.     {
  59.         mas[i] -= vekt.mas[i]; //вычитаем векторы т.е. н-р из вектора 'P' вычитаем вектор 'H' и записываем результат В ВЕКТОР P!!!(т.е.просто перезаписываем его)
  60.     }
  61.     return *this; //возвращаем указатель на наш класс this; перед this звездочка ибо мы передаем this по ссылке и ваще this это указатель!
  62. }
  63.  
  64. int main()
  65. {
  66.     setlocale(LC_ALL, "Russian");
  67.     int size;
  68.     cout << "size = ";
  69.     cin >> size; //вводим размер нашего массива
  70.     cout << "===========================================================================" << endl;
  71.     vektor a(size); //создаем объект(экземпляр) a нашего класса; тут вызывается наш конструктор где вектор заполняется нулями
  72.     a.Input();  //заполняем наш вектор объекта а рандомно
  73.     cout << "Вектор a: ";
  74.     a.Output(); //вывод нашего вектора объекта а
  75.     vektor b(size);  //создаем объект(экземпляр) b нашего класса; тут вызывается наш конструктор где вектор заполняется нулями
  76.     b.Input(); //заполняем наш вектор объекта b рандомно
  77.     cout << "Вектор b: ";
  78.     b.Output(); //вывод нашего вектора объекта b
  79.     cout << "Вектор c=a-b : "; //вектор 'c' будет новым вектором 'a' (т.е по сути просто переписываем значения вектора 'a') поэтому выводим надпись c=a-b шоб красиво было ибо a=a-b не оч гуд
  80.     a.Subtraction(b);  //вычитаем из вектора а вектор b
  81.     a.Output(); //выводим наш новый вектор a
  82.     cout << "Вектор d=c-b : ";//отнимаем фактически от вектора 'a', но пишем, что от 'c' ибо 'c' мы уже написали для красоты  поэтому воспринимаем вектор c как вектор a
  83.     vektor d = a - b; //демонстрируем нашу перегрузку; тут уже пишем что от a вычитаем b
  84.     d.Output(); //выводим вектор d но ПО ФАКТУ ЭТО ВЕКТОР а
  85.     return 0;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement