Меню Закрыть

Perl остаток от деления

Арифметические операторы действуют на числовые значения, и их результатом является число. Если выражение включает строковые операнды, то Perl конвер­тирует строковые значения в числовые перед тем, как оценить выражение. Perl выполняет преобразование строк в числа подобно тому, как это делает функция atof ()языка С в библиотеки времени выполнения. В настоящее время Perl поддер­живает следующие арифметические операторы:

· — вычитание или изменение знака

· / деление (только для чисел с плавающей запятой)

· % взятие по модулю (только для целочисленных значений)

Рассмотрим примеры следующих арифметических операций языка Perl :

print ($x + 2*$y); # выведет 8.5

print (7 / $y); # выведет 2.3333333

print int (7 / $y); # выведет 2

print (7 % $y); # выведет 1

print (7.5 % $y); # выведет 1

Примечание: В языке Perl оператор деления всегда имеет результатом 4 ucw с плавающей точкой, а результатом взятия одного числа по модулю другого является целое число и причем предварительно оба операнда преоб­разуются к целому типу.

Рассмотрим следующую операцию взятия по модулю:

print (7.9 % 3.6); # выведет 1 то же (7 % 3) = 1

Perl также поддерживает операторы инкремента и декремента:

· ++ декремент в префиксной или постфиксной форме

· — инкремент в префиксной или постфиксной форме

Рассмотрим примеры операций инкремента и декремента:

print $ x ; # выведет 5

$ y = $ x -; # уменьшит x после присвоения y значения x

print “$y $x” # выведет 5 4

Наконец, Perl обеспечивает арифметический оператор для возведения в степень (**). Рассмотрим следующие примеры использования операции возведения в степень:

$ x = 2 ** 3; # результат 8

$ x = 2 ** 0.5; # квадратный корень из 2

$ x = -2 ** -3; # 1/(-2 в кубе), результат –1/8 (-0.125)

Шаг 10 — Операции с переменными

Пора разобраться, что же можно делать с переменными. А то работаем с ними работаем, а как не знаем. Я думаю вы и без меня знаете такие элементарные вещи, но по закону жанра описать это обязан.

Читайте также:  Использование экшена в фотошопе

С переменными можно производить арифметические операции, операции сравнения, и операции булевой алгебры. С арифметикой всё очень просто:

+ — сложение.
— вычитание.
* — умножение.
/ — деление.
% — взятие остатка от деления.
** — возведение в степень.
. — конкатенация (объединение строк).
= — приравнивание.
+= — сложение с приравниванием. $x=$x+$y эквивалентно $x+=$y.
-= — вычитание с приравниванием. $x=$x-$y эквивалентно $x-=$y.
*= — умножение с приравниванием. $x=$x*$y эквивалентно $x*=$y.
/= — деление с приравниванием. $x=$x/$y эквивалентно $x/=$y.
%= — взятие остатка от деления с приравниванием. $x=$x%$y эквивалентно $x%=$y.
.= — конкатенация с приравниванием. $x=$x.$y эквивалентно $x.=$y.
++ — инкремент (увеличение на еденицу). $x++ эквивалентно $x=$x+1.
— декремент (уменьшение на еденицу). $x— эквивалентно $x=$x-1.

Вот и всё. Единственный интересный момент это последние две операции. Они имеют две формы записи — префиксную и постфиксную. Попробуйте выполнить следующую операцию print $x++, если $x равен пяти, то 5 выведено и будет. А теперь попробуйте так print ++$x, будет выведено 6.

Теперь о сравнении:

== — равно?
!= — не равно?
> — больше?
= — больше или равно?
> — побитный сдвиг вправо. $x>>4 — сдвигает побитно вправо значение в левой части ($x) на кол-во бит указаное в правой (4 бита в данном случае).
Предыдущий Шаг | Оглавление

В Perl применяются обычные операции сложения, вычитания, умножения, деления и т.д. Например:

Кроме того, в Perl используется ФОРТРАН-подобная операция возведения в степень, по которой многие тоскуют в Паскале и С. Эта операция обозначается двумя звездочками, например 2**3 равно двум в степени три, или восьми. (Если этот результат "не помещается" в число с плавающей запятой двойной точности, например, отрицательное число возводится в нецелую степень или большое число возводится в большую степень, выдается сообщение об ошибке — fatal error)

Читайте также:  Amd radeon r9 295x2 цена

Perl поддерживает также операцию деления с остатком. Значение выражения 10 % 3 — остаток от деления 10 на 3, или 1. Оба значения сначала сокращаются до целых, т.е. 10.5 % 3.2 вычисляется как 10 % 3.

Операции логического сравнения следующие: ==, >, !=. Эти операции сравнивают два значения в числовом формате и возвращают значение "истина" (true) или "ложь" (false). Например, операция 3 > 2 возвращает значение "истина", потому что три больше, чем два, тогда как операция 5 != 5 возвращает "ложь", потому что утверждение, что пять не равно пяти — неправда. Определение значений "истина" и "ложь" рассматривается позже, а пока можно считать, что "истина" — это единица, а "ложь" — нуль. (Вы еще увидите эти операции в табл. 2.2.)

Вас, вероятно, удивило слово "приблизительно" в комментариях к примерам, которые мы привели в начале этого раздела. Разве при вычитании 2, 4 из 5,1 не получается точно 2,7? На уроке математики, может быть, и получается, но в компьютерах, как правило, — нет. В вычислительной технике получается приближенное значение, которое точно лишь до определенного числа десятичных разрядов. Числа в компьютерах хранятся не так, как их представляет себе математик. Впрочем, если вы не делаете чего-нибудь сверхсложного, то, как правило, увидите именно те результаты, которых ожидаете.

Сравнивая приведенные ниже операторы, вы увидите, что в действительности компьютер получил в результате вышеупомянутого вычитания (функция printf описывается в главе 6):

Не обращайте на это особого внимания: стандартный формат функции print для вывода на экран чисел с плавающей запятой обычно скрывает такие незначительные неточности представления. Если это создает какую-то проблему, следует воспользоваться объектными модулями Math::BigInt и Math::BigFloat — в них реализована арифметика с бесконечной точностью для целых и чисел с плавающей запятой, только выполняются эти операции несколько медленнее. Подробности вы найдете в главе 7 книги Programming Perl и в интерактивной (сетевой) документации на эти модули.

Читайте также:  Fifa 13 вылетает после заставки с месси

Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.