Арифметические операции
В языке Pascal числа можно складывать, вычитать, делить, умножать. Соответственно, определены бинарные операции +, -, /, * (слово бинарные означает, что действие производится с двумя операндами — переменными или выражениями).
При этом если вы вычисляете выражение, значение которого затем записываете в некоторую переменную, то тип выражения и тип переменной должны быть совместимы, например, нельзя в переменную целого типа записывать нецелое значение (наоборот можно).
1 2 3 4 5 6 7 |
var a, b, c : longint; d: real; begin a : = b + 25 * c – 3; // так можно, и слева и справа – целые числа a := d + b; // так нельзя – слева целое число, а справа - нет c : = a / 2; // так тоже нельзя – справа нецелое число end. |
Помимо +, -, *, /, есть еще операции +=, -=, *=, /=, которые используются только в операторах присваивания и означают “увеличить на сколько-то” (соответственно, уменьшить, поделить, и т. п.)
То есть, запись a += 3 равносильна записи a := a + 3, a *= 2 равносильна a := a * 2 и т. п. По-прежнему, в выражении a /= 2 переменная aне может быть целым числом.
Операция деления / неприменима для работы с целыми числами, поскольку выводит нас за границы этого класса. Однако для работы с целыми переменными есть еще две операции – div (целочисленное деление) и mod (остаток от деления).
ОПРЕДЕЛЕНИЕ
x div y — результат целочисленного деления x на y. Точнее, x div y = x / y, округленное до ближайшего целого по направлению к 0;
x mod y — остаток от целочисленного деления x на y. Точнее, x mod y = x — (x div y) * y.
- 15 div 4 = 3
- 5 mod 2 = 1
- -7 div 2 = -3
- -7 mod 2 = -1
- 5 div -3 = -1
- 5 mod -3 = 2
Сначала вычислится выражение в скобках, и там сначала будет найдено значение 6 mod5, затем выполнится операция *, затем div и потом – и +. То есть, значение этого выражения равно 1.
Обсудим еще несколько примеров использования div и mod.