Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
osnovy_programmirovanija_v_srede_lazarus.pdf
Скачиваний:
185
Добавлен:
18.03.2015
Размер:
6.53 Mб
Скачать

Глава 3 Более сложные элементы языка

____________________________________________________________________

3.1.1.5 Процедуры завершения

Для досрочного завершения функции или процедуры, а также основной программы применяются специальные процедуры exit и halt. Если exit

выполняется в функции (процедуре), то ее выполнение немедленно прекраща-

ется, даже если не все операторы были выполнены и управление передается вы-

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

дующий за вызовом этой функции (процедуры) оператор. Если exit выполня-

ется в основной программе, то работа программы завершается и управление пе-

редается операционной системе.

Процедура halt сразу завершает работу программы и передает управле-

ние операционной системе. Чаще всего halt используют для аварийного за-

вершения программы.

3.2. Еще раз о типах данных

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

причем язык предусматривает создание пользовательских типов данных. Здесь мы дадим классификацию типов данных в Паскале и рассмотрим некоторые из них.

3.2.1 Классификация типов данных

Все типы в Паскале подразделяются на стандартные и пользовательские типы. Пользовательские типы создаются на основе стандартных. При описании пользовательских типов используется ключевое слово type.

159

3.2 Еще раз о типах данных

____________________________________________________________________

К стандартным типам относятся:

целый;

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

символьный;

логический.

Кроме того, все типы можно разделить на категории:

простые;

строковые;

даты и времени;

структурированные;

указатели;

объекты;

классы;

варианты.

Простые типы, в свою очередь, делятся на порядковые и вещественные.

Порядковый тип характеризуется тем, что каждому его значению можно поста-

вить в соответствие целое число – его порядковый номер в совокупности зна-

чений. Например, для целого типа само значение числа является его порядко-

вым номером. Для логического типа значению true соответствует 1, а значе-

нию false соответствует 0.

3.2.1.1 Целый тип

Кроме уже знакомого нам типа integer, в Паскале имеются и другие це-

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

ристики целочисленных типов данных (напоминаю, что мы рассматриваем язык применительно к компилятору Free Pascal).

160

Глава 3 Более сложные элементы языка

____________________________________________________________________

 

 

 

Таблица 3.1

Тип

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

Размер памяти (байты)

Формат

Byte

0..255

1

без знака

ShortInt

-128..+127

1

со знаком

Word

0..65535

2

без знака

SmallInt

-32768..+32767

2

со знаком

Integer

-2147483648..+2147483647

4

со знаком

LongInt

-2147483648..+2147483647

4

со знаком

LongWord

0..4294967295

4

без знака

Cardinal

0..4294967295

4

без знака

Int64

-263..+263-1

8

со знаком

Как видите, количество целочисленных типов достаточно велико, однако наиболее часто используемыми являются типы integer и cardinal. Эти два типа обеспечивают максимальную производительность на 32-битных платфор-

мах. Заметим, что указанный диапазон, соответствующий LongInt, верен только для режимов компиляции OBJFPC и DELPHI. В остальных случаях (в т.ч. и по умолчанию) Integer соответствует SmallInt (2 байта).

3.2.1.2. Интервальный тип

Интервальный тип определяется на основе порядкового типа и позволяет ограничить диапазон допустимых значений в виде некоторого интервала вида:

Минимальное значение..Максимальное значение

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

Естественно, максимальное значение должно быть больше минимального. Опи-

сание переменной интервального типа имеет вид:

var <Переменная>: Минимальное значение..Максимальное значение;

Например:

var day: 1..31;

month: 1..12;

year: 2000..2008;

161

3.2 Еще раз о типах данных

____________________________________________________________________

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

В этом типе, как следует из названия, значения задаются простым пере-

числением через запятую, причем весь список заключается в скобки, например:

var education: (student, bachelor, graduate, doctor);

course: (first, second, third, fourth, fifth);

Порядковый номер элемента списка начинается с 0, таким образом student имеет порядковый номер 0, bachelor порядковый номер 1, graduate

номер 2, doctor номер 3.

3.2.1.4. Множества

Множество в Object Pascal представляют собой группу элементов, с

которыми можно сравнивать другие элементы с целью определения входят эти элементы в состав множества или нет. Множества предоставляют программи-

сту возможность достаточно просто представить коллекцию символов, чисел или других перечислимых типов данных. Объявление множества имеет вид:

Set of <Базовый тип>

Например:

var

num: set of 1..10;

num1: set of 20..100;

Здесь num – множество, состоящее из десяти целых чисел.

num1 – множество состоящее из целых чисел от 20 до 100. Значением пе-

ременной типа множество является набор значений или интервалов порядково-

го типа, заключенных в квадратные скобки. Такая форма определения множе-

ства называется конструктором множества.

Присвоение значения переменным: num:=[1, 3, 5, 7, 9]; num1:=[21..75, 81, 82..95];

162

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]