Jaxx
Участник Проекта
Дикий прапор
Откуда: Belarus Всего сообщений: 173 Рейтинг пользователя: 10 Дата регистрации на форуме: 13 мая 2005
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 29 марта 2008 10:34
Столкнулся с одной штукой... В чем причина не знаю - то ли руки кривые, то ли еще что... Вобщем, задание такое:
Даны: a,b
вычислить: корень из ((a в квадрате)+(тангенс b))
Написал я следующее:
Var
a,b,c:real;
Begin
ClrScr;
write('Введите A: ');
readln(a);
write('Введите B: ');
readln(b);
c:=sqrt((a*a)+(sin(b)/cos(b)));
writeln(c:5:2);
readln;
end.
Как известно, функции вычисления тангенса в Паскалю не имеется, поэтому считать надо через синусы+косинусы. Но результат всегда получается неправильный, примерно в пределах -0,3..+0,3. При последующей проверке выяснилось, что неправильно считаются синус и косинус. То есть даже если в теле прораммы написать a:=sin(45), и потом рузельтат вывести на экран, то в качестве синуса вылазит НЕ целое число, а допустим 0,93. То же и с косинусом. В чем причина такого поведения?
Писалось на Borland TP 7.0, посреди Win XP Professional SP2 32bit
--- Каждый человек по-своему прав... А по-моему, нет.
|