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

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

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

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

28.11.2010, 19:14. Просмотров 1783. Ответов 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++
Дана квадратная матрица А размером n*n и вектор а = (a1, a2, ..., an). Написать программу вычисления вектора b = A*a. Добавлено через...

Написать программу: составить вектор из массива заданным образом - C++
Привет,помогите решить такую задачку: a) Массив размерностью 5 на 8 из элементов целого типа в диапазоне ; b) Сформировать из исходной...

Написать класс "вектор на плоскости" заданный в системе декартовых координат - C++
Разработать класс, набор методов (конструктор, деструктор и указаны методы) для программной модели заданного объекта. Описание объекта и...

Как написать класс "вектор" на С++ - C++
Нужно написать класс для нумерации элементов вектора не с 0, а любыми символами.... К примеру в паскалеподобных языках такое осуществимо....

Определить класс с именем STUDENT. Написать программу на C++ - C++
1. Определить класс с именем STUDENT, содержащий следующие поля: а) Фамилия и инициалы; б) Номер группы; в) Успеваемость (массив из...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
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
54 / 54 / 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);
для этих контейнеров уже есть перегруженные операции "-","+","*","\";
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2010, 01:21     Написать программу класс Вектор на С++
Еще ссылки по теме:

Создайте класс employee. Как написать программу? - C++
Создайте класс employee. Класс должен включать поле (массив) типа char для хранения фамилии сотрудника, 2 поля типа string для хранения...

Написать программу, которая использует класс string - C++
Вечер добрый господа, суть задачи такова. Написать программу, которая использует класс string для анализа строки, содержащей...

Написать программу, которая по введенному году обучение в школе, выводит соответствующий класс. (11,10,9) - C++
Хотя бы примерное решение этой задачки

как написать программу, к примеру, класс шаблон выводящая дин. массив любого типа, с конструктором и деструктором... - C++
Доброго всем времени суток! Очень заинтересовался этим языком, но не все получается. Вот как написать программу, к примеру, класс шаблон...

Класс вектор С++ - C++
Вектор. Члены класса: 3 прямоугольные декартовые координаты. Методы: Конструктор, деструктор, метод вывода вектора, метод вычисления...

Класс-вектор в С++ - C++
Здраствуйте. Передо мной стоит задача реализовать произведение и сложение векторов. Информации, той, что я нашел, оказалось мало. Программу...


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

Или воспользуйтесь поиском по форуму:
Vorox
25 / 24 / 3
Регистрация: 26.11.2010
Сообщений: 57
Завершенные тесты: 1
29.11.2010, 01:21     Написать программу класс Вектор на С++ #5
Тут скорее всего задание и состоит в изучении перегружаемых операторов.
Yandex
Объявления
29.11.2010, 01:21     Написать программу класс Вектор на С++
Ответ Создать тему
Опции темы

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