
- •Тема 3. Структура типов данных. Стандартные процедуры и функции, применимые к целым, вещественным числам. Логический, символьный, перечисляемый типы, тип-диапазон. Примеры. Типы данных
- •Простые типы
- •Порядковые типы
- •Целые типы
- •Логический тип
- •Символьный тип
- •Перечисляемый тип
- •Тип – диапазон
- •Вещественные типы
- •12Доп. [30-42]
Тема 3. Структура типов данных. Стандартные процедуры и функции, применимые к целым, вещественным числам. Логический, символьный, перечисляемый типы, тип-диапазон. Примеры. Типы данных
Любые данные, т.е. константы, переменные, значения функций или выражения характеризуются своими типами. Тип определяет множество допустимых значений, которые может иметь тот или иной объект, а также множество допустимых операций, которые применимы к нему. Кроме того, тип определяет также и формат внутреннего представления данных в памяти ПК.
Турбо Паскаль характеризуется разветвлённой структурой типов данных.
Простые типы
Порядковые типы отличаются тем, что каждый из них имеет конечное число возможных значений. Эти значения можно определённым образом упорядочить и, следовательно, с каждым из них можно сопоставить некоторое число – порядковый номер значения.
Вещественные типы, строго говоря, тоже имеет конечное число значений, которое определяется форматом внутреннего представления вещественного числа.
Порядковые типы
К порядковым типам относятся целые, логический, символьный, перечисляемый и тип – диапазон. Функция ORD(X) возвращает порядковый номер значения выражения X и применяется к любому порядковому типу. Для целых типов функция возвращает само значение X, т.е. ORD(X)=X для X, принадлежащего любому целому типу.
ORD(X) для логического типа даёт положительное целое число в диапазоне от 0 до 1.
ORD(X) для символьного типа даёт целое число в диапазоне от 0 до 255, для перечисляемое типа ORD(X) даёт число в диапазоне от 0 до 65535. Тип- диапазон сохраняет все свойства базового порядкового типа, поэтому результат применения к нему функции ORD(X) зависит от свойств этого типа. К порядковым типам можно также применять функции:
PRED (X)- возвращает предыдущее значение порядкового типа, т.е. ORD(PRED (X))= ORD(X)-1;
SUCC(X)- возвращает следующее значение порядкового типа, ( которое соответствует порядковому номеру ORD (X)+1), т.е.
ORD ( SUCC(x))= ORD(x)+1;
Пример: X:=’М’ ; PRED (x)=’L’; SUCC(x)=’N’;
Целые типы
Диапазон возможных значений целых типов зависит от их внутреннего представления, которое может занимать один, два или четыре байта.
Таблица 2
Целые типы | ||
Название |
Длина байт |
Диапазон значений |
Byte ShortInt Word INTEGER LongInt |
1 1 2 2 4 |
0…255 -128…+127 0…65535 -32768…+32767 -2147483648…+2147483647 |
А) При использовании процедур и функций с целочисленными параметрами следует руководствоваться « вложенностью» типов, т.е. везде, где может использоваться WORD, допускается использование BYTE ( но не наоборот), в LONGINT « входит» INTEGER , который в свою очередь включает в себя SHORTINT.
Перечень процедур и функций, применимых к целочисленным типам, приведём в таблице 2, буквами b, s, w, i, l, обозначены выражения соответственно типа byte, shortint, word, integer, u lougint, X- выражение любого из этих типов; буквы vb, vs, vw, vi, v,l vx, обозначает переменные соответствующих типов. В квадратных скобках указывается необязательный параметр.
Таблица 3 - Стандартные процедуры и функции, применимые к целым типам
Обращение |
Тип результата |
Действие |
abs(x) |
х |
Возвращает модуль х |
chr ( b) |
Char |
Возвращает символ по его коду |
dec ( vx[,i]) |
-- |
Уменьшает значение vx на i, а при отсутствии i–на 1 |
inc ( vx[,i]) |
-- |
Увеличивает значение vx на i, а при отсутствии i-на 1 |
Hi ( i) |
Byte |
Возвращает старший байт аргумента |
Hi ( w) |
Byte |
Возвращает старший байт аргумента |
Lo(i) |
-- |
Возвращает младший байт аргумента |
Lo(w) |
-- |
Возвращает младший байт аргумента |
odd (l) |
Boolean |
Возвращает TRUE, если аргумент – нечетное число |
Random (w) |
Как у параметра |
Возвращает псевдослучайное число, равномерно распределенное в диапазоне 0..(w-1) |
sqr (x) |
х |
Возвращает квадрат аргумента |
swap(i) |
INTEGER |
Меняет местами байты в слове |
swap (w) |
Word |
|
При действиях с целыми числами тип результата будет соответствовать типу операндов, а если операнды относятся к различным целым типам, - типу того операнда, который имеет максимальную мощность (максимальный диапазон значений). RANdomize - инициация генератора псевдослучайных чисел.