C/C++
Найдите сумму, разность и скалярное произведение двух векторов в N-мерном пространстве. Язык С++ ООП
Распределение памяти для хранения массивов должно быть в конструкторе, а освобождение – в деструкторе.
#include
#include
using namespace std;
class Vector {
private:
int n; // Размерность вектора
vector v; // Массив значений вектора
public:
// Конструктор
Vector(int size) {
n = size;
v.reserve(n);
}
// Деструктор
~Vector() {
v.clear();
}
// Заполнение вектора
void fill() {
double value;
for (int i = 0; i < n; i++) {
cout
Куаныш Мынжасаров
Огромная вам благодарность
Вот пример С++ кода, который выполняет операции с векторами в N-мерном пространстве, используя динамическое выделение памяти для массивов в конструкторе и освобождение памяти в деструкторе:
```
#include <iostream>
#include <cmath>
using namespace std;
class Vector {
private:
int n;
double *v;
public:
Vector(int dim) {
n = dim;
v = new double[dim];
}
~Vector() {
delete [] v;
}
void setCoord(int i, double value) {
v[i] = value;
}
double getCoord(int i) {
return v[i];
}
int getDimension() {
return n;
}
Vector operator+(Vector& other) {
Vector result(n);
for (int i = 0; i < n; i++) {
result.v[i] = v[i] + other.v[i];
}
return result;
}
Vector operator-(Vector& other) {
Vector result(n);
for (int i = 0; i < n; i++) {
result.v[i] = v[i] - other.v[i];
}
return result;
}
double operator*(Vector& other) {
double result = 0.0;
for (int i = 0; i < n; i++) {
result += v[i] * other.v[i];
}
return result;
}
};
int main() {
int dim = 3;
Vector v1(dim);
Vector v2(dim);
v1.setCoord(0, 1);
v1.setCoord(1, 2);
v1.setCoord(2, 3);
v2.setCoord(0, 4);
v2.setCoord(1, 5);
v2.setCoord(2, 6);
// Сумма
Vector sum = v1 + v2;
for (int i = 0; i < dim; i++) {
cout << sum.getCoord(i) << " ";
}
cout << endl;
// Разность
Vector diff = v1 - v2;
for (int i = 0; i < dim; i++) {
cout << diff.getCoord(i) << " ";
}
cout << endl;
// Скалярное произведение
double scalarProduct = v1 * v2;
cout << scalarProduct << endl;
return 0;
}
```
В данном примере конструкор выделяет память для массива `v`, а деструктор освобожает память, чтобы избежать утечек памяти. Операторы `+`, `-` и `*` перегружены для соотвествующих операций с векторами в N-мерном пространстве.
```
#include <iostream>
#include <cmath>
using namespace std;
class Vector {
private:
int n;
double *v;
public:
Vector(int dim) {
n = dim;
v = new double[dim];
}
~Vector() {
delete [] v;
}
void setCoord(int i, double value) {
v[i] = value;
}
double getCoord(int i) {
return v[i];
}
int getDimension() {
return n;
}
Vector operator+(Vector& other) {
Vector result(n);
for (int i = 0; i < n; i++) {
result.v[i] = v[i] + other.v[i];
}
return result;
}
Vector operator-(Vector& other) {
Vector result(n);
for (int i = 0; i < n; i++) {
result.v[i] = v[i] - other.v[i];
}
return result;
}
double operator*(Vector& other) {
double result = 0.0;
for (int i = 0; i < n; i++) {
result += v[i] * other.v[i];
}
return result;
}
};
int main() {
int dim = 3;
Vector v1(dim);
Vector v2(dim);
v1.setCoord(0, 1);
v1.setCoord(1, 2);
v1.setCoord(2, 3);
v2.setCoord(0, 4);
v2.setCoord(1, 5);
v2.setCoord(2, 6);
// Сумма
Vector sum = v1 + v2;
for (int i = 0; i < dim; i++) {
cout << sum.getCoord(i) << " ";
}
cout << endl;
// Разность
Vector diff = v1 - v2;
for (int i = 0; i < dim; i++) {
cout << diff.getCoord(i) << " ";
}
cout << endl;
// Скалярное произведение
double scalarProduct = v1 * v2;
cout << scalarProduct << endl;
return 0;
}
```
В данном примере конструкор выделяет память для массива `v`, а деструктор освобожает память, чтобы избежать утечек памяти. Операторы `+`, `-` и `*` перегружены для соотвествующих операций с векторами в N-мерном пространстве.
Куаныш Мынжасаров
Спасибо вам
Похожие вопросы
- Найти Сумму, разность и скалярное произведение двух векторов в N-мерном пространстве. Язык С++ ООП
- Найти сумму факториала K=1!+2!...n! нечетных чисел от 1 до n.
- Найти сумму всех n-значных чисел (1 ≤n ≤ 4).
- Задача на максимальное произведение в векторе C++ Где ошибка в коде?
- Найти сумму и количество случайных элементов последовательности размером n, кратных числу k
- Найти сумму и произведения элементов ряда
- Найти сумму цифр чисел, записанных в файл
- Работа с матрицами. Нужно найти сумму элементов каждой строки. Помогите пожалуйста ????????
- 5) Найти среднее значение элементов построчно и по столбцам массива n*n случайных чисел. с++ пж помагите
- Найти сумму нечетных элементов, стоящих на нечетных местах (то есть имеющих нечетные номера).