1 / 1 / 1
Регистрация: 29.05.2015
Сообщений: 44
1

Создать класс векторов, реализующий сложения и вычитания векторов

19.04.2017, 23:16. Показов 4647. Ответов 1
Метки нет (Все метки)

Помогите найти ошибку, так как неправильно выводятся массивы, то скорее всего не получается сформировать массив. А задание:создать класс векторов, реализующий сложения и вычитания векторов.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
using namespace std;
# include <conio.h>
#include <cstdlib>
#include <ctime>
class Vector
{private:
int x1[100],x2[100],n;//формирование 2х массивов и размер
void out_m(int m[]);
public: Vector (int*,int*,int);
int Kommutativ();
int Vihit();
void out_mas();
~Vector();};
Vector::Vector(int* x,int* y,int k)//инициализация
{int i;
 for (i=0; i<n; i++ )
x1[i]=x[i];
x2[i]=y[i]; 
 n=k;}//инициализация массива
void Vector::out_m(int x[])
{int i;
for (int i=0; i < n; i++ )
        {
            cout.width(5); cout<<*(x+i);}}
            
    int Vector::Kommutativ() //сумма 2х векторов
{
    int sum=0;
    int i;
    for (int i=0; i<n; i++ )
        sum = *(x1 + i) + *(x2 + i);
    return sum;        
}
int Vector::Vihit()//разность 2х векторов
{int min=0;
int i;
for (int i=0; i < n; i++ )
    
        min = *(x1+ i) - *(x2 + i);
    return min;        
} 
void Vector::out_mas()
{out_m(x1);
out_m(x2);}
Vector::~Vector()
{}
int main()
{int a[100],b[100],n;
int i;
cin>>n;
 
    srand( time( 0 ) ); // автоматическая рандомизация
    for(i=0; i<n; i++)
   { a[i] = rand() % 20; // случайные числа от 0 до 20
   b[i]= rand() % 20;}
   
cout<<a[i]<< endl;//вывожу сформировавшиеся массивы
cout<<b[i]<< endl;
Vector M(a,b,n);
cout<<"sum="<<M.Kommutativ()<< endl;
cout<<"vihit="<<M.Vihit()<< endl;
M.~Vector();
while (!(kbhit()));
return 1;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2017, 23:16
Ответы с готовыми решениями:

Создать класс для обработки векторов разность векторов норму векторов
Создать класс для обработки векторов разность векторов норму векторов

Перегрузка операторов сложения, вычитания и умножения двух векторов
Помогите пожалуйста. Мне надо сделать перегрузку сложения двух векторов, вычитания дух векторов,...

Описать операции сложения и вычитания векторов с получением нового вектора
Составить описание класса для объектов-векторов, задаваемых координатами в трехмерном пространстве....

Напишите свой класс, реализующий работу с комплексными числами. Операции сложения, вычитания, деления и умножения должны
Напишите свой класс, реализующий работу с комплексными числами. Операции сложения, вычитания,...

1
1 / 1 / 1
Регистрация: 29.05.2015
Сообщений: 44
22.04.2017, 14:27  [ТС] 2
Теперь вектора выводятся правильно, а сумма и разность находится не правильно, причём элементы массивов складываю и вычитаю верно.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <iostream> 
using namespace std; 
# include <conio.h> 
#include <cstdlib> 
#include <ctime> 
class Vector 
{private: 
int x1[],x2[],n;//формирование 2х массивов и размер 
void out_m(int m[]); 
public: Vector (int*,int*,int); 
int Kommutativ(); 
int Vihit(); 
void out_mas(); 
~Vector();}; 
Vector::Vector(int* x,int* y,int k)//инициализация 
{int i; 
for (i=0; i<n; i++ ) 
x1[i]=x[i]; 
x2[i]=y[i]; 
n=k;}//инициализация массива 
void Vector::out_m(int x[]) 
{int i; 
for (int i=0; i < n; i++ ) 
{ 
cout«*(x+i);}} 
 
int Vector::Kommutativ() //сумма 2х векторов 
{ 
int sum[n]; 
int i; 
 
 
for (int i=0; i<n; i++ ){ 
sum[i] = x1[i] + x2[i]; cout«" "«sum[i];} 
cout«endl; 
} 
 
int Vector::Vihit()//разность 2х векторов 
{int min[n]; 
int i; 
for (int i=0; i < n; i++ ) 
 
min[i] = x1[i] - x2 [i]; 
for(i = 0; i < n; i++) 
cout«min[i]; 
} 
void Vector::out_mas() 
{out_m(x1); 
out_m(x2);} 
Vector::~Vector() 
{} 
int main() 
{int a[10],b[10],n; int i; 
cin»n; 
cout«"Massiv A imeet vid: "; 
srand(time(NULL)); 
for(i = 0; i < n; i++) 
{ 
a[i] = rand()%20; 
cout « a[i] «" "; 
} 
cout«"\nMassiv B imeet vid:"; 
 
for(i = 0; i < n; i++) 
{ 
b[i] = rand()%20; 
cout « b[i] «" "; 
} 
 
Vector M(a,b,n); 
cout«"\nsum=";M.Kommutativ(); 
cout«"\nvihit=";M.Vihit(); 
M.~Vector(); 
while (!(kbhit())); 
return 1; 
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2017, 14:27
Помогаю со студенческими работами здесь

Создать производный класс, в котором реализована функция умножения вектора на число и функция сложения двух векторов
Write программу с использованием класса Вектор (не без помощи форумчанина), но необходимо создать...

Реализовать класс векторов, переопределив операции сложения, вычитания, умножения
Реализовать класс векторов, переопределив операции сложения, вычитания, умножения векторов и...

Создать класс для работы с двоичными числами реализовать в нем операцию сложения, умножения, вычитания
создать класс для работы с двоичными числами реализовать в нем операцию сложения умнежения вычитания

Создать класс векторов поддерживающий указанные операции
Буду очень благодарен если кто поможет. А то я в классах не очень соображаю.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru