Задание на языке С++:
1. Создать класс Vektor.
В закрытых полях private указываются значения трех координат вектора. В открытых полях public создаются конструктор по умолчанию, конструктор c тремя параметрами (по числу размерности вектора) и деструктор по умолчанию.
2. Написать перегрузку оператора <<.
Данный метод должен обеспечивать печать координат вектора в следующем виде (…;…;…).
3. Перегрузка операторов + и -.
Сложение и вычитание векторов
4. Перегрузка оператора * в случае взаимодействия объекта класса и числа.
Результатом перегрузки является новый объект класса.
5. Перегрузка оператора * в случае взаимодействия числа и объекта класса.
Результатом перегрузки является новый объект класса.
C/C++
Задание на С++ Тема: Вектор
#include <iostream>
#include <iomanip>
using namespace std;
class Vector {
public:
Vector() : x(0), y(0), z(0) {}
Vector(const double x, const double y, const double z) : x(x), y(y), z(z) {}
~Vector() {}
private:
double x;
double y;
double z;
friend ostream& operator<<(ostream& out, const Vector& v) {
return out << "{ " << v.x << "; " << v.y << "; " << v.z << " }";
}
friend Vector operator+(const Vector& a, const Vector& b) {
return Vector{ a.x + b.x, a.y + b.y, a.z + b.z };
}
friend Vector operator-(const Vector& a, const Vector& b) {
return Vector{ a.x - b.x, a.y - b.y, a.z - b.z };
}
friend Vector operator*(const Vector& v, const double n) {
return Vector{ v.x * n, v.y * n, v.z * n };
}
friend Vector operator*(const double n, const Vector& v) {
return Vector{ v.x * n, v.y * n, v.z * n };
}
};
int main() {
Vector v1{ 2.5, -1.6, -4.7 };
Vector v2{ -3.9, 5.4, -1.8 };
cout << fixed << setprecision(2);
cout << v1 << '\n' << v2 << "\n\n";
auto sum_v1_v2 = v1 + v2;
cout << v1 << " + " << v2 << " = " << sum_v1_v2 << '\n';
auto diff_v1_v2 = v1 - v2;
cout << v1 << " - " << v2 << " = " << diff_v1_v2 << "\n\n";
double n = 1.2;
auto mult_v1_n = v1 * n;
cout << v1 << " * " << n << " = " << mult_v1_n << '\n';
auto mult_n_v2 = n * v2;
cout << n << " * " << v2 << " = " << mult_n_v2 << '\n';
system("pause > nul");
}
#include <iomanip>
using namespace std;
class Vector {
public:
Vector() : x(0), y(0), z(0) {}
Vector(const double x, const double y, const double z) : x(x), y(y), z(z) {}
~Vector() {}
private:
double x;
double y;
double z;
friend ostream& operator<<(ostream& out, const Vector& v) {
return out << "{ " << v.x << "; " << v.y << "; " << v.z << " }";
}
friend Vector operator+(const Vector& a, const Vector& b) {
return Vector{ a.x + b.x, a.y + b.y, a.z + b.z };
}
friend Vector operator-(const Vector& a, const Vector& b) {
return Vector{ a.x - b.x, a.y - b.y, a.z - b.z };
}
friend Vector operator*(const Vector& v, const double n) {
return Vector{ v.x * n, v.y * n, v.z * n };
}
friend Vector operator*(const double n, const Vector& v) {
return Vector{ v.x * n, v.y * n, v.z * n };
}
};
int main() {
Vector v1{ 2.5, -1.6, -4.7 };
Vector v2{ -3.9, 5.4, -1.8 };
cout << fixed << setprecision(2);
cout << v1 << '\n' << v2 << "\n\n";
auto sum_v1_v2 = v1 + v2;
cout << v1 << " + " << v2 << " = " << sum_v1_v2 << '\n';
auto diff_v1_v2 = v1 - v2;
cout << v1 << " - " << v2 << " = " << diff_v1_v2 << "\n\n";
double n = 1.2;
auto mult_v1_n = v1 * n;
cout << v1 << " * " << n << " = " << mult_v1_n << '\n';
auto mult_n_v2 = n * v2;
cout << n << " * " << v2 << " = " << mult_n_v2 << '\n';
system("pause > nul");
}
Похожие вопросы
- Правильно ли решил задание? Решение задания на тему вектор по С++.
- Правильно ли решено задание по Яндекс практикуму на тему Вектор, урок 4 на языке программирования С++ ?
- Не могу разобраться. Функция удаления отрицательных элементов вектора
- С++ Не работает двумерный вектор (std::vector)
- Почему вектор не запоминает ссылки?
- Задача по c++ на векторы. Часть программы написана. Нужны правки.
- С++, как оставить без изменений данные в char* который указывает на внутренний буфер вектора?
- Помогите с сортировкой вектора объектов по 3 параметрам
- Задача на максимальное произведение в векторе C++ Где ошибка в коде?
- Нужна помощь с выполнением заданий в C++