Тригонометрические функции
Проблема
Требуется вычислить значения различных тригонометрических функций — таких как синус, тангенс или арккосинус.
Решение
В Perl существуют лишь стандартные тригонометрические функции
sin,
cos и
atan2.
С их помощью можно вычислить тангенс (tan) и другие тригонометрические функции:
sub tan {
my $theta = shift;
return sin($theta) / cos($theta);
}
В модуле POSIX представлен расширенный набор тригонометрических функций:
use POSIX;
$у = acos(3.7);
Модуль Math::Trig содержит полный набор тригонометрических функций, а также позволяет выполнять
операции с комплексными аргументами (или дающие комплексный результат):
use Math::Trig;
$у = acos(3.7);
Комментарий
Если значение $theta равно pi/2, 3pi/2 и т. д., в функции tan возникает исключительная
ситуация деления на ноль, поскольку для этих углов косинус равен нулю. Аналогичные ошибки возникают
и во многих функциях модуля Math::Trig. Чтобы перехватить их, воспользуйтесь конструкцией
eval:
eval {
$y = tan($pi/2);
} or return undef;
См. такжеОписание функций
sin,
cos и
atan2
Proverte kod v komentariyah gde pro list tam oshibki detskie
Оставить комментарий:
|
|