Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 03.01.2016
Сообщений: 16

Найти угол между векторами

03.02.2016, 07:51. Показов 4997. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Даны координаты двух n-мерных векторов. A(a[1]; a[2]; ...; a[n]), B(b[1]; b[2]; ...; b[n]). Найти угол между векторами: cos(A ^ B)=(A * B)/( |A| * |B| ).
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.02.2016, 07:51
Ответы с готовыми решениями:

найти угол между векторами
Объясните как написать программу... Задача Заданы два вектора с координатами a(х1,y1,z1) и b(x2,y2,z2). Определить угол между...

Определить угол a между векторами x и y по формуле
Заданы два вектора х = (x1, x2, x3, x4), y = (y1, y2, y3, y4). Определить угол a между векторами x и y по формуле: \alpha =\arccos...

Найти синус угла между векторами.
а = {1,5; 3; 6.7; -8}, B = 4; 6; -7.2; -9} Найти синус угла между векторами. применить вспомогательные алгоритмы, чтобы вычислить длину...

7
Модератор
10429 / 5717 / 3404
Регистрация: 17.08.2012
Сообщений: 17,385
03.02.2016, 08:07

Не по теме:

T-MAX, вопрос пишите в теме, а в заголовке темы пишите осмысленное название темы, кратко отражающее суть вопроса темы.



Добавлено через 3 минуты
Так что же всё-таки найти: угол между векторами или косинус угла между векторами?
0
0 / 0 / 0
Регистрация: 03.01.2016
Сообщений: 16
03.02.2016, 08:09  [ТС]
Как я понял найти угол с помощью формулы нахождения косинуса угла.
0
Модератор
10429 / 5717 / 3404
Регистрация: 17.08.2012
Сообщений: 17,385
03.02.2016, 09:09
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Не понимаю, какие сложности... Чего сами до сих пор не решили?

Замечу, что, если истинный угол между векторами больше π радиан (то есть, тупой), по приведённой формуле он будет определён с ошибкой, истинное значение угла будет α=2π-β, где α - истинный угол, β - угол, полученный с применением приведённой формулы.

Программа:
Pascal
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
const m = 100;
 
type vec = array [1..m] of double;
 
procedure read_v(s: string; var x: vec; k: integer);
var i: integer;
begin
  writeln('Введите координаты вектора ', s);
  for i := 1 to k do
    begin
      write(s, '[', i, '] = ');
      readln(x[i])
    end
end;
 
procedure prn_v(s: string; var x: vec; k: integer);
var i: integer;
begin
  writeln('Вектор ', s);
  for i := 1 to k do write(' ', x[i]:19);
  writeln
end;
 
function p(var x, y: vec; k, mode: integer): double;
var i: integer;
    z: double;
begin
  z := 0;
  for i := 1 to k do z := z + x[i] * y[i];
  if mode = 1 then z := sqrt(z);
  p := z
end;
 
function arccos(a: double): double;
begin
  if a = -1
    then arccos := pi
    else if a = 0
      then arccos := pi / 2
      else if a = 1
        then arccos := 0
        else arccos := arctan(sqrt(1 - a * a) / a)
end;
 
var n: integer;
    a, b: vec;
 
begin
  repeat
    write('Введтите размерность пространства ( не менее 1 ): ');
    readln(n)
  until n > 1;
  read_v('A', a, n);
  read_v('B', b, n);
  writeln('Исходные векторы:');
  prn_v('A', a, n);
  prn_v('B', b, n);
  writeln;
  write('Угол между векторами: ',
         arccos(p(a, b, n, 0) / p(a, a, n, 1) / p(b, b, n, 1)):0:11,
         ' радиан.');
  readln
end.
1
0 / 0 / 0
Регистрация: 03.01.2016
Сообщений: 16
03.02.2016, 10:49  [ТС]
Программа вводит только вершины вектора или координаты вершин векторов тоже? Пробую вывести косинус 90 градусов на экране выводится NaN
0
Модератор
10429 / 5717 / 3404
Регистрация: 17.08.2012
Сообщений: 17,385
03.02.2016, 14:47
Цитата Сообщение от T-MAX Посмотреть сообщение
вершины вектора
Простите? Такого термина не существует.
Цитата Сообщение от T-MAX Посмотреть сообщение
Пробую вывести косинус 90 градусов
Интересно, это каким образом Вы пытаетесь вывести косинус угла в градусах, когда по умолчанию угол считается в радианах? Ох, нет... Есть у меня подозрение одно... Подставили это число в формулу для арккосинуса, да? Если так, то Вы уверены, что знаете тригонометрические и обратные тригонометрические функции?

Добавлено через 3 часа 18 минут
Вводится сначала количество измерений пространства, затем - координаты каждого вектора в данном пространстве. Так как измерений может быть более 3, координаты называются не x, y, z, а по-другому: a[1], a[2], a[3]... и так далее для вектора "a" и b[1], b[2], b[3]... и так далее для вектора "b". После ввода координат векторов программа просто вычисляет по Вашей формуле угол между векторами в радианах. При тестировании ошибок не выявлено. Изменять программу нет необходимости, разве что меру угла переделать на градусы, но это уже дело вкуса:
Pascal
60
         arccos(p(a, b, n, 0) / p(a, a, n, 1) / p(b, b, n, 1)) / pi * 180:0:11,
Что у Вас пошло не так? Откуда взялось NaN?
1
0 / 0 / 0
Регистрация: 03.01.2016
Сообщений: 16
30.03.2016, 15:10  [ТС]
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
Pascal
24
25
26
27
28
29
30
31
32
function p(var x, y: vec; k, mode: integer): double;
var i: integer;
    z: double;
begin
  z := 0;
  for i := 1 to k do z := z + x[i] * y[i];
  if mode = 1 then z := sqrt(z);
  p := z
end;
Что делает эта функция?(подробно)
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
30.03.2016, 15:33
Считает сумму произведений соответствующих координат векторов или ее кв.корень, когда mode=1, там же написано.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.03.2016, 15:33
Помогаю со студенческими работами здесь

Найти синус угла между векторами.
. А = {1,5; 3; 6.7; -8}, B = 4; 6; -7.2; -9} Найти синус угла между векторами. для вычисления длины векторов использовать вспомогательный ...

В параллелограмме известны 2 стороны и тупой угол между ними. Найти P. S, и длины диагонали
1. В параллерограмме известно 2 стороны и тупой угол между ними. Найти P. S, и длины диагонали Удалено модератором.

Найти площадь треуголльника,две стороны которого равны a и b , а угол между ними y.
плизз помогите люди!!!!!! 1задача. найти площадь треуголльника,две стороны которого равны a и b , а угол между ними y. 2задача....

Вычислить угол между векторами
По задаваемым с помощью процедуры ввода вектора двум векторам x и y размерности n вычислить угол фи между ними по формуле фи= arccos...

Заданы 2 вектора. Определить угол между векторами x и y. Вычисление скалярного произведения оформить в виде процедуры
Нуждаюсь в помощи т.к. совсем не разбираюсь в Pascal Заданы 2 вектора. Определить угол между векторами x и y. Вычисление скалярного...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru