Вопрос № 181897: Здравствуйте! У меня возникли сложности с таким вопросом: Нужно написать программу на С++ (6.0 вроде=) с комментариями. Составить описание класса для объектов-векторов, задаваемых координатами концов в трехмерном пространстве. Обеспечить оп...
Вопрос № 181897:
Здравствуйте! У меня возникли сложности с таким вопросом: Нужно написать программу на С++ (6.0 вроде=) с комментариями.
Составить описание класса для объектов-векторов, задаваемых координатами концов в трехмерном пространстве. Обеспечить операции сложения и вычитания векторов с получением нового вектора (суммы или разности), вычисления скалярного произведения двух векторов, длины вектора. Напишите программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить
проверку всех методов класса.
Отвечает Micren (Профессионал) :
Здравствуйте, Посетитель - 359129! По Вашей просьбе исправил программу Евгения Набокова из http://rfpro.ru/question/180088. Хотя, на мой взгляд, мой вариант оттуда же интереснее.
cout << "КО
СИНУС УГЛА МЕЖДУ ВЕКТОРАМИ:" << endl << cos << endl; }
template<class T> void vec
tor3d<T>::display(const char * const caption) { cout << caption << endl << "Вектор с координатами:" << endl << "X = " << x << endl << "Y = " << y << endl << "Z = " << z << endl; }
int main(int argc, char *argv[]) { locale::global(locale(""));
// обьявляем экземпляры класса, у нас
2 вектора для работы и один для результатов vector3d<float> *vector1 = new vector3d<float>; vector3d<float> *vector2 = new vector3d<float>; vector3d<float> *result_vector = new vector3d<float>;
int p; // переменная для выбора в меню далее само меню while (true) { cout << "------------------------МЕНЮ-------------------------" << endl <
< "\t1 - Сложение двух векторов" << endl << "\t2 - Разность двух векторов" << endl << "\t3 - Высчитать длину вектра" << endl << "\t4 - Скалярное произведение векторов" << endl << "\t5 - Косинус угла между векторами" << endl << "\t0 - Выход из программы" << endl <<
"-----------------------------------------------------" << endl;
cin >> p; system("cls"); // очистим экран
switch (p) // смотрим что выбрали в меню и вызываем соответствующие функции { case 1: vector1->SetVector("Введите координаты вектора 1:"); vector2->SetVector("Введите координаты вектора 2:"); result_vec
tor->summ(vector1, vector2); result_vector->display("-----------РЕЗУЛЬТАТ----------"); break; case 2: vector1->SetVector("Введите координаты вектора 1:"); vector2->SetVector("Введите координаты вектора 2:"); result_vector->razn(vector1, vector2); result_vector->display("-----------РЕЗУЛЬТАТ----------"); break; case 3:
vector1->SetVector("Введите координаты вектора:"); result_vector->dlina(vector1); break; case 4: vector1->SetVector("Введите координаты вектора 1:"); vector2->SetVector("Введите координаты вектора 2:"); result_vector->scalar(vector1, vector2); break; case 5: vector1->SetVector("Введите ко
ординаты вектора 1:"); vector2->SetVector("Введите координаты вектора 2:"); result_vector->cosinus(vector1, vector2); break; case 0: exit(0); break; } }
system("PAUSE"); return EXIT_SUCCESS; }
Ответ отправил: Micren (Профессионал)
Ответ отправлен: 18.01.2011, 19:03
Номер ответа: 265499 Украина, Краматорск
Оценка ответа: 5
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 265499
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.