Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль Блеать.docx
Скачиваний:
65
Добавлен:
31.07.2019
Размер:
73.23 Кб
Скачать

Целые типы

Внутреннее представление Целые числа представляются в компьютере в двоичной системе счисления (отрицательные числа — в дополнительном коде, но для нас это не принципиально). В Паскале определены несколько целых типов данных, отличающиеся длиной и наличием знака: старший двоичный разряд либо воспринимается как знаковый, либо является обычным разрядом числа (табл. 1.5). Внутреннее представление определяет диапазоны допустимых значений величин (от нулей во всех двоичных разрядах до единиц). Таблица 1.5. Целые типы данных

Тип

Название

Размер

Знак

Диапазон значений

integer

Целое

2 байта

Есть

–32 768 .. 32 767 (–215 .. 215–1)

shortint

Короткое целое

1 байт

Есть

–128 .. 127 (–27 .. 27–1)

byte

Байт

1 байт

Нет

0 .. 255 (0 .. 28–1)

word

Слово

2 байта

Нет

0 .. 65 535 (0 .. 216–1)

longint

Длинное целое

4 байта

Есть

–2 147 483 648 .. 2 147 483 647 (–231 .. 231–1)

Первоначально в Паскале был всего один целый тип — integer, остальные добавлены впоследствии для представления больших величин или для экономии памяти. Например, нет смысла отводить 4 байта под величину, про которую известно, что все ее значения находятся в диапазоне от 0 до 100. Операции С целыми величинами можно выполнять арифметические операции (табл. 1.6). Результат их выполнения всегда целый (при делении дробная часть отбрасывается). Таблица 1.6. Арифметические операции для целых величин

Операция

Знак операции

Сложение

+

Вычитание

Умножение

*

Деление

div

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

mod

К целым величинам можно также применять операции отношения, перечисленные в разделе “Логические типы” (см. с. ). Результат этих операций имеет логический тип, например результатом сравнения 3 < 8 будет значение true. Кроме того, к целым величинам можно применять поразрядные операции and, or, xor и not. При выполнении этих операций каждая величина представляется как совокупность двоичных разрядов. Действие выполняется над каждой парой соответствующих разрядов операндов: первый разряд с первым, второй — со вторым и т. д. Таблицы истинности операций приведены в разделе “Логические типы” на с. . Например, результатом операции 3 and 2 будет 2, поскольку двоичное представление числа 3 — 11, числа 2 — 10. Для работы с целыми величинами предназначены также и операции сдвига влево shl и вправо shr. Слева от знака операции указывается, с какой величиной будет выполняться операция, а справа — на какое число двоичных разрядов требуется сдвинуть величину. Например, результатом операции 12 shr 2 будет значение 3, поскольку двоичное представление числа 12 — 1100. Выполнив операцию 12 shl 1, то есть сдвинув это число влево на 1 разряд, получим 24. Освободившиеся при сдвиге влево разряды заполняются нулями, а при сдвиге вправо — знаковым разрядом. Стандартные функции и процедуры К целым величинам можно применять стандартные функции и процедуры, перечисленные в табл. 1.7. Таблица 1.7. Стандартные функции и процедуры для целых величин

Имя

Описание

Результат

Пояснения

Функции

abs

Модуль

Целый

|x| записывается abs(x)

arctan

Арктангенс угла

Вещественный

arctg x записывается arctan(x)

cos

Косинус угла

Вещественный

cos x записывается cos(x)

exp

Экспонента

Вещественный

ex записывается exp(x)

ln

Натуральный логарифм

Вещественный

logex записывается ln(x)

odd

Проверка на четность

Логический

odd(3) даст в результате true

pred

Предыдущее значение

Целый

pred(3) даст в результате 2

sin

Синус угла

Вещественный

sin x записывается sin(x)

sqr

Квадрат

Целый

x2 записывается sqr(x)

sqrt

Квадратный корень

Вещественный

Цx записывается sqrt(x)

succ

Следующее значение

Целый

succ(3) даст в результате 4

Процедуры

inc

Инкремент

inc(x) — увеличить х на 1 inc(x, 3) — увеличить х на 3

dec

Декремент

dec(x) — уменьшить х на 1 dec(x, 3) — уменьшить х на 3

ПРИМЕЧАНИЕ Различие между функцией и процедурой проявляется в способе вызова. Процедура вызывается отдельным оператором, а функция — в составе выражения. На с. был приведен пример вызова процедур readln и writeln.