Функция sin() в Perl

В языке программирования Perl есть встроенная функция sin(). Эта функция возвращает значение тригонометрической функции синус от своего аргумента.

Вот пример:

▶ Run
#!/usr/bin/perl

print sin( -3.14159265358979 / 2 );

Эта программа выведет на экран число -1. Синус -π/2 это -1, именно это и выводит программа.

Аргументы

my $value = sin($rad);

Аргумент Perl функции sin() — это число в радианах.

Если функции sin() передать один аргумент, то функция будет работать с ним.

Если не передать ни одного аргумента, то функция будет работать с дефолтной переменной $_. Вот пример (программа выведет число 1):

▶ Run
#!/usr/bin/perl

$_ = 3.14159265358979 / 2;

print sin;

Если функции sin() передать больше чем один аргумент, то будет ошибка:

Too many arguments for sin at script.pl line 3, near "0)"
Execution of script.pl aborted due to compilation errors.

Возвращаемое значение

Функция sin() всегда возвращает число. Диапазон возможных значений — от -1, до 1.

Пример возвращаемого значения: 0.0998334166468282 (такое значение будет при использовании аргумента 0.1).

Работа с градусами

Аргумент sin() — это число в радианах. Если нужно рассчитать синус градусов, то их нужно перевести в радианы. Для перевода градусов в радианы используется формула rad = degree * π/180.

Вот пример программы, которая выводит таблицу с градусами, радианами и значение синуса:

▶ Run
#!/usr/bin/perl

use utf8;
use strict;
use warnings;
use feature qw(say);

use Math::Trig;

say 'deg      rad  sin(rad)';

for (my $degree = 0; $degree<=360; $degree += 15) {
    my $rad = $degree * pi() / 180;
    say sprintf '%3d  %0.5f  % 0.5f', $degree, $rad, sin($rad);
}

В этой программе используется Perl модуль Math::Trig. При его подключении становится доступна функция pi(), которая возвращает число π.

Вот вывод этой программы:

deg      rad  sin(rad)
  0  0.00000   0.00000
 15  0.26180   0.25882
 30  0.52360   0.50000
 45  0.78540   0.70711
 60  1.04720   0.86603
 75  1.30900   0.96593
 90  1.57080   1.00000
105  1.83260   0.96593
120  2.09440   0.86603
135  2.35619   0.70711
150  2.61799   0.50000
165  2.87979   0.25882
180  3.14159   0.00000
195  3.40339  -0.25882
210  3.66519  -0.50000
225  3.92699  -0.70711
240  4.18879  -0.86603
255  4.45059  -0.96593
270  4.71239  -1.00000
285  4.97419  -0.96593
300  5.23599  -0.86603
315  5.49779  -0.70711
330  5.75959  -0.50000
345  6.02139  -0.25882
360  6.28319  -0.00000

Связанные темы

Официальная документация

Вот вывод команды perldoc -f sin:

       sin EXPR
       sin     Returns the sine of EXPR (expressed in radians).  If EXPR is
               omitted, returns sine of $_.

               For the inverse sine operation, you may use the
               "Math::Trig::asin" function, or use this relation:

                   sub asin { atan2($_[0], sqrt(1 - $_[0] * $_[0])) }

Другие статьи

Комментарии