Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2013, 23:16   #1
Язуджи
 
Регистрация: 22.12.2013
Сообщений: 7
По умолчанию Программирование с использованием функций.

Задача: Даны два вектора х = (х1,......,хn) и y = (y1,.....,yn), где n <=9. Найти угол между векторами х и у по формуле: q=arccos(x,y)/(sqrt((x,x)(y,y))). Т.е. Вычислить скалярное произведение. В программе использовал формулу скалярного произведения, но в результате получаю число, а не угол. Что я делаю не так? может какие есть косяки ещё?
Вот моя программа(сорри, что в таком виде скидываю, нуб прост
p.s. если можно, то сделайте без записей , Плз

Код:
type 
vector = record 
 X,Y:Real;
end;

var X,Y:vector;

procedure fillvector(var a:vector);
begin
 Write(' Введите x : ');
 readln(a.X);
 Write(' Введите y : ');
 readln(a.Y);
end;

procedure init(var a,b:vector);
begin
 Writeln('>Первый вектор<');
 fillvector(a);
 Writeln('>Второй вектор<');
 fillvector(b);
end;

function scalar(a,b:vector):real;
begin
scalar:=a.X * b.X + a.Y * b.Y;
end;

function modvec(a:vector):real;
begin
 modvec:=sqrt((a.X*a.X + a.Y*a.Y));
end;

function cosA(a,b:vector):real;
begin
 cosA:=(scalar(a,b))/(modvec(a)*modvec(b));
end;

function corner(a,b:vector):real;
begin
 corner:=arccos(cosA(a,b));
end;

begin
init(x,y);
write('Угол между векторами = ',(corner(x,y)));
end.

Последний раз редактировалось Язуджи; 23.12.2013 в 14:15.
Язуджи вне форума Ответить с цитированием
Старый 22.12.2013, 23:24   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Цитата:
Сообщение от Язуджи Посмотреть сообщение
... но в результате получаю число, а не угол.
А что , угол - не число?
Кстати,триг. функции Pascal работают с радианами. Поэтому ArcCos возвращает в радианах.
type_Oleg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование с использованием процедур и функций vampir3001 Помощь студентам 2 14.12.2011 01:05
ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ ФУНКЦИЙ Dmitry_Web Помощь студентам 2 09.12.2011 22:56
Программирование с использованием функций. Разработка модульных программ. Tat54 C++ Builder 1 15.05.2011 20:52
Программирование с использованием процедур и функций...на Паскале Лизонька Помощь студентам 1 25.02.2010 23:29
Программирование с использованием процедур и функций Лизонька Помощь студентам 2 25.02.2010 22:50