Advertisement
Guest User

Untitled

a guest
Apr 2nd, 2020
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.40 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3.  
  4. using namespace std;
  5.  
  6. class Vector{
  7. private:
  8. int len;
  9. double* first;
  10. public:
  11. Vector(int len,double value = 0){ // ПУНКТ А
  12. this->len = len;
  13. first = new double [len];
  14. for(int i = 0;i < len;i++){
  15. first[i] = value;
  16. }
  17. }
  18.  
  19. Vector(const Vector &other){ // ПУНКТ Б
  20. this->len = other.len;
  21. first = new double [this->len];
  22. for (int i = 0;i < len;i++){
  23. first[i] = other.first[i];
  24. }
  25. }
  26.  
  27. ~Vector(){ // ПУНКТ В
  28. delete [] first;
  29. }
  30.  
  31. Vector& operator= (const Vector &other){ // ПУНКТ Г
  32. this->len = other.len;
  33. delete [] first;
  34. first = new double [this->len];
  35. for (int i = 0;i < len;i++){
  36. this->first[i] = other.first[i];
  37. }
  38. return *this;
  39. }
  40.  
  41. Vector& operator+= (const Vector &other){
  42. for (int i = 0;i < len;i++){
  43. this->first[i] += other.first[i];
  44. }
  45. return *this;
  46. }
  47.  
  48. Vector& operator-= (const Vector &other){
  49. for (int i = 0;i < len;i++){
  50. this->first[i] -= other.first[i];
  51. }
  52. return *this;
  53. }
  54.  
  55. Vector& operator+ (const Vector &other){
  56. Vector res(*this);
  57. for (int i = 0;i < len;i++){
  58. res.first[i] += other.first[i];
  59. }
  60. return res;
  61. }
  62.  
  63. Vector& operator- (const Vector &other){
  64. Vector res(*this);
  65. for (int i = 0;i < len;i++){
  66. res.first[i] -= other.first[i];
  67. }
  68. return res;
  69. }
  70.  
  71. Vector& operator* (int a){
  72. Vector res(*this);
  73. for (int i = 0;i < len;i++){
  74. res.first[i] *= a;
  75. }
  76. return res;
  77. }
  78.  
  79. double operator[] (int index) const {
  80. return this->first[index];
  81. }
  82.  
  83. double& operator[] (int index) {
  84. return first[index];
  85. }
  86.  
  87. operator double () const{ // Оператор привидения типа к double доделать
  88. return ;
  89. }
  90.  
  91. double operator* (const Vector &other){ //скалярное произведение
  92. double res = 0;
  93. for (int i = 0;i < len;i++){
  94. res += this->first[i] * other.first[i];
  95. }
  96. return res;
  97. }
  98.  
  99. double lengthV() const{ //ПУНКТ Д
  100. double res = 0;
  101. for(int i = 0;i<this->len;i++){
  102. res += this->first[i] * this->first[i];
  103. }
  104. res = sqrt(res);
  105. return res;
  106. }
  107.  
  108. int sizeV() const { // ПУНКТ Е
  109. return this->len;
  110. }
  111. };
  112.  
  113. istream& operator >> (istream &in,Vector &other){
  114. for (int i = 0; i < other.lengthV(); i++) {
  115. in >> other[i];
  116. }
  117. return in;
  118. }
  119. ostream& operator << (ostream &out, const Vector &other) {
  120. for (int i = 0; i < other.lengthV(); i++){
  121. out << other[i] << " ";
  122. }
  123. return out;
  124. }
  125.  
  126. Vector& operator* (int a, Vector &other){ // Возможный вариант перегрузки умножения числа на вектор
  127. Vector res(other);
  128. for (int i = 0;i < other.lengthV();i++){
  129. res[i] *= a;
  130. }
  131. return res;
  132. }
  133.  
  134. int main(){
  135.  
  136. return 0;
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement