Основные числовые типы данных (PascalABC.NET)
PascalABC.NET позволяет работать с большим количеством числовых типов, но пока обойдемся лишь двумя из них, которые будем считать основными.
В арифметике числа бывают целыми и нецелыми (их называют в программировании вещественными). Целое число внешне отличается тем, что не имеет дробной части. Например, число 10 для нас целое. Как и число 4. Но если требуется разделить 10 на 4, то можно получить три разных результата в зависимости от назначения деления.
- Если имеется 10 килограмм, сахара и надо развесить это количество поровну на 4 пакета, находим что 10 кг / 4 пакета = 2.5 кг/пакет. Мы получили нецелое число в результате деления двух целых чисел.
- Если имеется 10 яблок и нужно раздать их поровну 4 детям так, чтобы каждый получил равное количество целых яблок, выполняем деление нацело с недостатком, получая 10 яблок / 4 человека = 2 яблока/человека. Здесь результат целый и еще имеется остаток в 10 – 2 × 4 = 2 яблока.
- Если нужно испечь 10 пирогов, а в день можно испечь только 4, то понадобится 10 / 4 = 3 дня. Это целочисленное деление с избытком, потому что двух дней будет недостаточно.
Поучается, что в зависимости от ситуации мы решаем, как производить деление. Компьютер сам принимать решений не может, он лишь выполняет написанную нами программу. Поэтому нужно иметь возможность указывать в программе как производить деление. Разные языки программирования позволяют делать это разными способами.
В Паскале имеется операция целочисленного деления с недостатком div, но ее можно применять только к данным целого типа. Также, есть операция деления /, дающая вещественный результат для числовых данных любого типа. А вот операции деления нацело с избытком нет (впрочем, ее нет и в других широко известных языках программирования).
Тип real является более общим по отношению к integer, поэтому если возникает необходимость, компилятор сам вставляет преобразование integer к real. Наоборот поступать запрещено! Компилятор не имеет права преобразовать real к integer, поскольку при этом можно утратить дробную часть.