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

[Геометрия]Скалярное произведение векторов - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.90
alex4715
0 / 0 / 0
Регистрация: 08.03.2010
Сообщений: 4
08.03.2010, 09:30     [Геометрия]Скалярное произведение векторов #1
Добрый день.
Есть вот такая задача:

Даны векторы a и b Найти длины этих векторов, их скалярное произведение, а также косинус угла между ними. Предусмотреть возможность ввода данных пользователем, а также получение инструкций (справки) по использованию формул для вычислений.
Я написал программу, но не уверен верно ли написал.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream.h>
#include <math.h>
 
void main ()
{
    float x1,y1,z1,x2,y2,z2,ab,a,b;
    cout<<"Введите вектор (ввод кординат через пробел) a=";
    cin>>x1>>y1>>z1;
    cout<<"Введите вектор (ввод кординат через пробел) b=";
    cin>>x2>>y2>>z2;
    a=x1+y1+z1;
    b=x2+y2+z2;
    ab=x1*x2+y1*y2+z1*z2;
    cout<<"Длина вектора a="<<a<<endl<<"Длина вектора b="<<b<<endl;
    cout<<"СкалЯрное произведение векторов a*b="<<ab<<" Косинус угла между ними cos="<<ab*cos(a)+cos(b)<<endl;
    if(ab==0) cout<<"Векторы ортогональны"; else cout<<"Векторы не ортогональны";
Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2010, 09:30     [Геометрия]Скалярное произведение векторов
Посмотрите здесь:

сложение и вычитание векторов, скалярное произведение векторов, умножение на скаляр, сравнение векторов, вычисление длины вектора C++
скалярное произведение векторов C++
СКАЛЯРНОЕ И ВЕКТОРНОЕ ПРОИЗВЕДЕНИЕ ВЕКТОРОВ C++
C++ скалярное произведение двух n-мерных векторов
C++ Найти скалярное произведение векторов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
EnzoMatrix
 Аватар для EnzoMatrix
119 / 119 / 4
Регистрация: 14.03.2009
Сообщений: 462
08.03.2010, 09:35     [Геометрия]Скалярное произведение векторов #2
Цитата Сообщение от alex4715 Посмотреть сообщение
a=x1+y1+z1;
Цитата Сообщение от alex4715 Посмотреть сообщение
cout<<"Длина вектора a="<<a
длина вектора равна не равна сумме его координат, поэтому:
C++
1
a=pow(pow(x1,2)+pow(y1,2)+pow(z1,2),0.5);
Цитата Сообщение от alex4715 Посмотреть сообщение
"Косинус угла между ними cos="<<ab*cos(a)+cos(b)
честно говоря не понял что имелось в виду, но по логике здесь должно быть:
C++
1
"Косинус угла между ними cos="<<ab/(a*b);
alex4715
0 / 0 / 0
Регистрация: 08.03.2010
Сообщений: 4
08.03.2010, 12:43  [ТС]     [Геометрия]Скалярное произведение векторов #3
Спасибо большое. Увеличили мои познания в геометрии )

Добавлено через 3 часа 4 минуты
Извините за дабл пост. Я сделал всё по вашим формулам.
Ввожу координаты и в результате получаю это:
http://s46.***********/i111/1003/bc/e9a9e22df2ed.jpg

Он всё выводит правильно?
EnzoMatrix
 Аватар для EnzoMatrix
119 / 119 / 4
Регистрация: 14.03.2009
Сообщений: 462
08.03.2010, 15:57     [Геометрия]Скалярное произведение векторов #4
вроде верно
Yandex
Объявления
08.03.2010, 15:57     [Геометрия]Скалярное произведение векторов
Ответ Создать тему
Опции темы

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