Форум программистов, компьютерный форум CyberForum.ru

вектора - C++

Восстановить пароль Регистрация
 
Joiner27
11 / 11 / 3
Регистрация: 13.11.2010
Сообщений: 65
01.12.2010, 20:27     вектора #1
помогите разобраться,не получается сложение 2х векторов пишет вектор пустой,а если убрать if в print? то выдает ошибку!

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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include <conio.h>
using namespace std;
// объявление класса
class vect
{  int *v;                         //  вектор (одномер
    int n;                           //  размерность
  public:
    vect();                         //  конструктор без
    vect(int, int*);            //  конструктор с дв
    vect(int a):n(a){v=new int[n];}
    ~vect(){ delete [] v; }                      //  деструктор
    set();                           //  инициализация в
    void print();                //  вывод вектора н
    vect operator+(const vect &) const;   //Сложение
    vect operator-(const vect &) const;//Вычитание
    vect operator*(const vect &); //Умножение вектора на вектор
    vect operator*(const int &); //Умножение скаляра на вектор
    };
vect vect::operator+(const vect &oper) const
{
   vect sum;
   sum.n=n + oper.n;
   return sum;
}
//Перегруженная операция вычитания:
vect vect::operator-(const vect &operand2) const
{
   vect diff;
   diff.n =n - operand2.n;
 
   return diff;
}
//Перегруженная операция умножения:
vect vect::operator*(const vect &operand2)
{
   vect proizv;
   proizv.n = n * operand2.n;
   return proizv;
}
//Перегруженная операция умножения:
vect vect::operator*(const int &oper)
{
   vect proizv;
   proizv.n = n * oper;
   return proizv;
}
// реализация методов класса
vect :: vect() : n(0),v(0){}    //  конструктор
vect :: vect(int nn, int *vv)   //  конструктор с одним параметром
{ n=nn;
   v=new int[n];
   for(int i=0; i<n; i++)
   *(v+i)=*(vv+i);
}
vect :: set()                           //  инициализация вектора
{  if(!v)
    { cout<<"не выделена память под вектор" << endl;
       cout <<"введите размерность вектора" << endl;
      cin >> n;
       v=new int[n];
    }
    for(int i=0; i<n; i++){
    cout<<"Введите "<< i+1 <<"член вектора"<<endl;
    cin>>*(v+i);}
    return 0;
}
void vect :: print()                        //  вывод вектора на экран
{  if(!v)
    { cout <<" вектор пустой"<<endl;
       return ;}
    cout<<"Печать вектора"<<endl;
    for(int i=0; i<n; i++){
    cout<<i+1<<" член: ";
    cout<<*(v+i)<<endl;}
}
 
#pragma argsused
int main(int argc, char* argv[])
{ vect v1(3),v2(3),v3;
   int ms[]={2};
   int scal=8;
   //vect v2(sizeof(ms),ms);
   v1.set();
   v2.set();
   //v1.print();
   //v2.print();
   v3=v1+v2;
 
   v3.print();
   system("pause");
    return 0;
 
 }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2010, 20:27     вектора
Посмотрите здесь:

Дан список, элементы которого являются координатами вектора. Найти длину вектора C++
C++ Переменной R присвоить значение 1, если длина вектора А больше длины вектора В, и значение 0 в противном случае
Заданы три вектора a(n), b(m), c(k). Вывести наименование вектора, в котором максимальна сумма четных элементов, стоящих на нечетных местах C++
Заменить первые два нулевые элементы заданного вектора В на два первых НЕ нулевые элементы этого вектора C++
C++ Заменить первых 2 нулевые элементы заданного вектора соответственно на первых 2 не нулевые элементы этого вектора
STL. Функция, которая будет искать элементы большее среднего арифметического вектора и удалять их из вектора C++
Если возможно, упорядочить булевы вектора, или вывести сообщение "Вектора несравнимы" C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 04:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru