Глиф Учебники

Чем отличаются div, mod и /

Справочник · Pascal · 1 минута чтения

ВыражениеРезультатТип результата
7 / 23.5real
6 / 23.0real — даже если делится нацело
7 div 23 — сколько раз 2 помещается в 7целый
7 mod 21 — остатокцелый
2 div 50целый
2 mod 52целый

div и mod работают только с целыми числами: 7.5 div 2 — ошибка компиляции.

Где пригодятся div и mod

Pascal
program DivModDemo;
var
  n, sec: integer;
begin
  n := 4725;
  writeln('Последняя цифра: ', n mod 10);
  writeln('Без последней цифры: ', n div 10);
  writeln('Цифра сотен: ', n div 100 mod 10);
  sec := 135;
  writeln(sec, ' с = ', sec div 60, ' мин ', sec mod 60, ' с');
  if n mod 5 = 0 then
    writeln(n, ' делится на 5');
end.
Вывод
Последняя цифра: 5
Без последней цифры: 472
Цифра сотен: 7
135 с = 2 мин 15 с
4725 делится на 5

Отрицательные числа

div отбрасывает дробную часть в сторону нуля, а знак остатка mod совпадает со знаком делимого:

ВыражениеРезультат
-7 div 2-3
-7 mod 2-1
7 mod -21

Поэтому нечётность проверяйте как n mod 2 <> 0, а не n mod 2 = 1: для n = -7 остаток равен -1, и вторая проверка ошибётся. Есть и готовая функция odd(n) — истина для нечётных, в том числе отрицательных.

Частые ошибки