Типы переменных

При описании переменной необходимо указать ее тип. Тип переменной описывает набор значений, которые она может принимать, и действия, которые могут быть над ней выполнены.

Описание типа определяет идентификатор, который обозначает этот тип.

Типы подразделяются на простые, тип «указатель», структурные (составные), идентификаторы типа.

Указание идентификатора в левой части описания типа означает, что он определен как идентификатор типа для блока, в котором указано это описание типа. Область действия идентификатора типа не включает его самого, исключение составляют типы «указатель» (которые называют также ссылочными типами).

Имеется семь следующих идентификаторов типов:

1. простой тип;

2. структурный тип;

3. тип «указатель»;

4. порядковый тип;

5. целочисленный тип;

6. вещественный тип;

7. строковый тип.

Простые типы определяют упорядоченные множества значений. Они делятся на порядковые типы (перечислимые) и вещественные типы.

Идентификатор вещественного типа относится к числу стандартных идентификаторов, которые могут быть вещественными, с одинарной точностью, с двойной точностью, с повышенной точностью и сложными.

Порядковые типы представляют собой подмножество простых типов. Все простые типы, отличные от вещественных типов, являются порядковыми и выделяются по следующим четырем характеристикам.

1. Все возможные значения данного порядкового типа представляют собой упорядоченное множество, и каждое возможное значение связано с порядковым номером, который представляет собой целочисленное значение. За исключением значений целочисленного типа, первое значение любого порядкового типа имеет порядковый номер 0, следующее значение имеет порядковый номер 1 и так далее для каждого значения в этом порядковом типе.

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

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

3. К любому значению порядкового типа можно применить стандартную функцию Pred, возвращающую предшествующее этому значению значение. Если эта функция применяется к первому значению в этом порядковом типе, то выдается сообщение об ошибке.

4. К любому значению порядкового типа можно применить стандартную функцию Succ, возвращающую следующее за этим значением значение. Если эта функция применяется к последнему значению в этом порядковом типе, то выдается сообщение об ошибке.

Паскаль имеет семь встроенных порядковых типов:

integer (целое),

shortint (короткое целое),

longint (длинное целое),

byte (длиной в байт),

word (длиной в слово),

boolean (булевское),

char (символьный).

Кроме того, имеется два других класса определяемых пользователем порядковых типов: перечислимые типы и отрезки типов.

Целочисленный тип.

В Паскале имеется пять встроенных целочисленных типов:

shortint (короткое целое),

integer (целое),

longint (длинное целое),

byte (длиной в байт),

word (длиной в слово).

Каждый тип обозначает определенное подмножество целых чисел

Арифметические действия над операндами целочисленного типа предполагают 8-битовую, 16-битовую и 32-битовую точность в соответствии со следующими правилами:

1. Тип целой константы представляет собой встроенный целочисленный тип с наименьшим диапазоном, включающим значение этой целой константы.

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

3. Выражение справа в операторе присваивания вычисляется независимо от размера переменной слева. Значение одного целочисленного типа может быть явным образом преобразовано к другому целочисленному типу с помощью приведения типов.

Булевский (логический) тип.

Значения булевского типа обозначаются встроенными идентификаторами констант False и True. Поскольку булевский тип является перечислимым, между этими значениями имеют место следующие отношения:

False < True.

Ord(False)=0

Ord(True)=1

Succ(False)=True

Pred(True)=False

Символьный тип (char).

Множеством значений этого типа являются символы, упорядоченные в соответствии с расширенным набором символов кода ASCII. Значение символьного типа всегда заключается в апострофы. Например:

Ch:= ‘a’;

При вызове функции Ord(Ch), где Ch - значение символьного типа, возвращается порядковый номер Ch.

Строковая константа с длиной 1 может обозначать значение константы символьного типа. Любое значение символьного типа может быть получено с помощью стандартной функции Chr.

Перечислимый тип.

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

При указании идентификатора в списке идентификаторов перечислимого типа он описывается как константа для блока, в котором указано описание перечислимого типа. Типом этой константы является описанный перечислимый тип.

Порядковый номер перечислимой константы определяется ее позицией в списке идентификаторов при описании. Перечислимый тип, в котором описывается константа, становится ее типом. Первая перечислимая константа в списке имеет порядковый номер 0.

Приведем пример перечислимого типа:

suit = (club,diamond,heart,spade);

Согласно этим описаниям, diamond является константой типа suit. При применении функции Ord к значению перечислимого типа Ord возвращает целое число, которое показывает, какое положение занимает это значение в отношении других значений этого перечислимого типа. Согласно предшествующим описаниям, Ord(club) возвращает 0, Ord(diamond) возвращает 1 и так далее.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: