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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.64
provayder
Сообщений: n/a
#1

Написать программу класс Вектор на С++ - C++

28.11.2010, 19:14. Просмотров 1728. Ответов 4
Метки нет (Все метки)

Берем два вектора. Потом для каждого вектора просим ввести его размерность (то есть ввести количество точек вектора), для того чтобы выяснить возможные или невозможные операции над векторами. Если размерности разные - выводим ошибку иначе, если они одинаковы, выполнить над ними операции(сложение, вычетание, умножение и умножение на скаляр).

Что неправильно. И как ее исправить. Вот моя программа.

#include
#include
using namespace std;
int r;int scl;
class vector {
public:
vector(void); //Конструктор
~vector();
void Intput();
void Output();
friend vector operator+(vector a, vector b);
friend vector operator-(vector a, vector b);
friend vector operator*(vector a, vector b);
friend vector operator*(vector a, double scalar);

private:
int x[100];
};
vector::vector(void)
{
x[100]=0;
}

vector::~vector()
{
cout << "Vector destructor..." << endl;
}

void vector::Intput()
{
for (int i=0; i {
cout<<"Vvedite znachenie "< cin>>x[i];
}
}

void vector::Output()
{
cout<<"\t (";
for(int i=0; i {
cout<<" "< }
cout<<" )"< }

vector operator+(vector a, vector b)
{
vector sum;
for(int i=0;i {
sum.x[i] = a.x[i] + b.x[i];
}
return sum;
}

vector operator-(vector a, vector b)
{
vector vuch;
for(int i=0;i {
vuch.x[i] = a.x[i] - b.x[i];
}
return vuch;
}

vector operator*(vector a, vector b)
{
vector mn;
for(int i=0;i {
mn.x[i] = a.x[i] * b.x[i];
}
return mn;

}

vector operator*(vector a, int scl)
{
vector mns;
for(int i=0;i {
mns.x[i] = a.x[i] * scl;
}
return mns;

}


int main()
{
vector a, b, c;
int r1,r2;
cout<<"Enter data:"<
cout<<"Vvedite scalar! SCL: "< cin>>scl;
cout<<"Vvedite razmernost' 1 vectora: ";
cin>>r1;
r=r1;
a.Intput();
cout< cout<<"Vvedite razmernost' 2 vectora: ";
cin>>r2;
r=r2;
b.Intput();
//Proverka razmernosti
if(r1!=r2)
{
cout<<"Error!"< return 0;
}
else
{
cout<<"Vse OK!"< }

a.Output();
b.Output();

c=a+b;
cout<<"\n\tSlozhenie:"< c.Output();

c=a-b;
cout<<"\n\tVuchetanie:"< c.Output();

c=a*b;
cout<<"\n\tYmnozenie V*V:"< c.Output();

c=a*scl;
cout<<"\n\tYmnozenie V*SCL:"< c.Output();


return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2010, 19:14     Написать программу класс Вектор на С++
Посмотрите здесь:

Класс вектор C++
как написать программу, к примеру, класс шаблон выводящая дин. массив любого типа, с конструктором и деструктором... C++
C++ Как написать класс "вектор" на С++
C++ класс Вектор
Написать программу, которая по введенному году обучение в школе, выводит соответствующий класс. (11,10,9) C++
C++ Определить класс с именем STUDENT. Написать программу на C++
C++ Помогите отладить программу: Разработать класс, содержащий вектор длинных целых чисел
C++ Написать программу, которая использует класс string
C++ Написать программу умножения квадраной матрицы на вектор
C++ Создайте класс employee. Как написать программу?
C++ Написать программу: составить вектор из массива заданным образом
Класс Вектор C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
28.11.2010, 19:18     Написать программу класс Вектор на С++ #2
Вектор наподобие STL
provayder
Сообщений: n/a
28.11.2010, 19:25     Написать программу класс Вектор на С++ #3
Цитата Сообщение от provayder Посмотреть сообщение
Берем два вектора. Потом для каждого вектора просим ввести его размерность (то есть ввести количество точек вектора), для того чтобы выяснить возможные или невозможные операции над векторами. Если размерности разные - выводим ошибку иначе, если они одинаковы, выполнить над ними операции(сложение, вычетание, умножение и умножение на скаляр).

Что неправильно. И как ее исправить. Вот моя программа.

#include
#include
using namespace std;
int r;int scl;
class vector {
public:
vector(void); //Конструктор
~vector();
void Intput();
void Output();
friend vector operator+(vector a, vector b);
friend vector operator-(vector a, vector b);
friend vector operator*(vector a, vector b);
friend vector operator*(vector a, double scalar);

private:
int x[100];
};
vector::vector(void)
{
x[100]=0;
}

vector::~vector()
{
cout << "Vector destructor..." << endl;
}

void vector::Intput()
{
for (int i=0; i {
cout<<"Vvedite znachenie "< cin>>x[i];
}
}

void vector::Output()
{
cout<<"\t (";
for(int i=0; i {
cout<<" "< }
cout<<" )"< }

vector operator+(vector a, vector b)
{
vector sum;
for(int i=0;i {
sum.x[i] = a.x[i] + b.x[i];
}
return sum;
}

vector operator-(vector a, vector b)
{
vector vuch;
for(int i=0;i {
vuch.x[i] = a.x[i] - b.x[i];
}
return vuch;
}

vector operator*(vector a, vector b)
{
vector mn;
for(int i=0;i {
mn.x[i] = a.x[i] * b.x[i];
}
return mn;

}

vector operator*(vector a, int scl)
{
vector mns;
for(int i=0;i {
mns.x[i] = a.x[i] * scl;
}
return mns;

}


int main()
{
vector a, b, c;
int r1,r2;
cout<<"Enter data:"<
cout<<"Vvedite scalar! SCL: "< cin>>scl;
cout<<"Vvedite razmernost' 1 vectora: ";
cin>>r1;
r=r1;
a.Intput();
cout< cout<<"Vvedite razmernost' 2 vectora: ";
cin>>r2;
r=r2;
b.Intput();
//Proverka razmernosti
if(r1!=r2)
{
cout<<"Error!"< return 0;
}
else
{
cout<<"Vse OK!"< }

a.Output();
b.Output();

c=a+b;
cout<<"\n\tSlozhenie:"< c.Output();

c=a-b;
cout<<"\n\tVuchetanie:"< c.Output();

c=a*b;
cout<<"\n\tYmnozenie V*V:"< c.Output();

c=a*scl;
cout<<"\n\tYmnozenie V*SCL:"< c.Output();


return 0;
}
Если что пишите ответы на мыло rivz2006@mail.ru

Добавлено через 3 минуты
Цитата Сообщение от asics Посмотреть сообщение
А конкретней можна. Таких тем, сайтов, документов есть много но программа плохо работает и нужно переменную r зделать локальной.
romedal
53 / 53 / 1
Регистрация: 18.03.2010
Сообщений: 345
Записей в блоге: 1
29.11.2010, 00:16     Написать программу класс Вектор на С++ #4
Возможно, следует действительно использовать контейнер valarray из STL

C++
1
2
3
4
cin>>razm1;
cin>>razm2;
valarray<int> matr1 (razm1);
valarray<int> matr2 (razm2);
для этих контейнеров уже есть перегруженные операции "-","+","*","\";
Vorox
25 / 24 / 3
Регистрация: 26.11.2010
Сообщений: 57
29.11.2010, 01:21     Написать программу класс Вектор на С++ #5
Тут скорее всего задание и состоит в изучении перегружаемых операторов.
Yandex
Объявления
29.11.2010, 01:21     Написать программу класс Вектор на С++
Ответ Создать тему
Опции темы

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