Jaxx
Участник Проекта
Дикий прапор
 Откуда: Belarus Всего сообщений: 174 Рейтинг пользователя: 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
--- Каждый человек по-своему прав... А по-моему, нет.
|