Основные числовые типы данных (PascalABC.NET)

Материал из Информационная безопасностя
Версия от 09:17, 27 апреля 2023; Безуглов Сергей (обсуждение | вклад) (Новая страница: «{{TOCRight}} PascalABC.NET позволяет работать с большим количеством числовых типов, но пока обойдем...»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

PascalABC.NET позволяет работать с большим количеством числовых типов, но пока обойдемся лишь двумя из них, которые будем считать основными.

В арифметике числа бывают целыми и нецелыми (их называют в программировании вещественными). Целое число внешне отличается тем, что не имеет дробной части. Например, число 10 для нас целое. Как и число 4. Но если требуется разделить 10 на 4, то можно получить три разных результата в зависимости от назначения деления.

  1. Если имеется 10 килограмм, сахара и надо развесить это количество поровну на 4 пакета, находим что 10 кг / 4 пакета = 2.5 кг/пакет. Мы получили нецелое число в результате деления двух целых чисел.
  2. Если имеется 10 яблок и нужно раздать их поровну 4 детям так, чтобы каждый получил равное количество целых яблок, выполняем деление нацело с недостатком, получая 10 яблок / 4 человека = 2 яблока/человека. Здесь результат целый и еще имеется остаток в 10 – 2 × 4 = 2 яблока.
  3. Если нужно испечь 10 пирогов, а в день можно испечь только 4, то понадобится 10 / 4 = 3 дня. Это целочисленное деление с избытком, потому что двух дней будет недостаточно.

Поучается, что в зависимости от ситуации мы решаем, как производить деление. Компьютер сам принимать решений не может, он лишь выполняет написанную нами программу. Поэтому нужно иметь возможность указывать в программе как производить деление. Разные языки программирования позволяют делать это разными способами.

В Паскале имеется операция целочисленного деления с недостатком div, но ее можно применять только к данным целого типа. Также, есть операция деления /, дающая вещественный результат для числовых данных любого типа. А вот операции деления нацело с избытком нет (впрочем, ее нет и в других широко известных языках программирования).

Для PascalABC.NET пока примем, что целые числовые данные имеют тип integer, а вещественные – тип real.

Тип real является более общим по отношению к integer, поэтому если возникает необходимость, компилятор сам вставляет преобразование integer к real. Наоборот поступать запрещено! Компилятор не имеет права преобразовать real к integer, поскольку при этом можно утратить дробную часть.

Данные целого типа (integer)