Простые типы данных

Типы данных

Обрабатываемые в программе данные подразделяются на константы и переменные. Константы – это данные, значения которых установлены в разделе объявления констант и не изменяются в процессе выполнения программы. Переменные объявляются в разделе объявления переменных, а свои значения получают в процессе выполнения программы, причем эти значения можно менять. К константам и переменным можно обращаться по имени. (Различают статические и динамические переменные. Статические переменные присутствуют в программе на протяжении всего времени ее работы. Динамические переменные создаются и уничтожаются на разных этапах выполнения программы.) Каждый элемент данных принадлежит к определенному типу. Тип данных – это множество допустимых значений этих данных и совокупность операций над ними.

Типы данных можно разделить на следующие группы:

o простые;

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

o указатели;

o процедурные;

o вариантные;

o объектные.

Все типы данных можно также разделить на стандартные(предопределенные) и пользовательские (определяемые программистом).

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

o целочисленные;

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

o логические;

o символьные;

o строковые;

o файлы;

o указатели.

Все другие используемые типы данных должны быть определены пользователем либо в разделе описания типов, либо в разделе объявления переменных.

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

Текст программы может содержать специальные команды, называемые директивами компилятора и служащие для управления режимами компиляции. Директивы компилятора заключают в фигурные скобки и в их начале указывают символ $.

Данные простых типов не содержат данных других типов. Переменные этих типов могут в каждый момент времени иметь только одно значение. К простым типам данных относятся:

o Целочисленные;

o Символьные (литерные);

o Логические (булевские);

o Вещественные.

Все типы, кроме вещественного, являются порядковыми, т.е. значения переменных каждого из этих типов образуют упорядоченную конечную последовательность. Номера соседних значений в ней отличаются на единицу. Для данных порядковых типов определены стандартные функции (Low, High, Ord, Pred, Succ) и стандартные процедуры (Dec, Inc).

Для порядковых типов программист может создавать перечисляемые и интервальные типы. Эти типы относятся к пользовательским. Их применение улучшает внешний вид программы и облегчает поиск ошибок.

Символьные типы: значениями символьного типа являются элементы из набора символов, т.е. буквы. К символьным типам относятся: Char, AnsiChar, WideChar. Для кодирования символов типа AnsiCharиспользуется код Американского национального института стандартов ANSI. Для кодирования символов типа WideCharиспользуется международный набор символов Unicode, включающий более 60 тыс. элементов им позволяющий кодировать символы национальных алфавитов. Первые 256 символов Unicodeсовпадают с кодом ANSI. Тип Charэквивалентен типу AnsiChar.

Для символов определены следующие функции: Chr(x):Char– возвращает символ с кодом, равным значению целочисленного выражения x; UpCase (С): Char– преобразует символ Cв символ Cверхнего регистра (заглавный). В программах значения данных символьного типа заключают в апострофы ‘ ‘.

Логические типы : Boolean, ByteBool, WordBool, LongBool. В программах рекомендуется использовать тип Boolean, остальные логические типы введены для совместимости с другими системами программирования. Данные этого типа могут принимать два возможных значения True(Истина) и False(Ложь).

Перечисляемые типы : задаются непосредственно перечислением всех значений (имен), которые может принимать переменная данного типа. Формат описания перечисляемого типа:

Type<имя типа> = (<значение_1>, <значение_2>, ... , <значение_ n >);

Пример : type Gas=(C, O, N); Day=(Mon, Tue, Wed, Thur, Fri, Sat, Sun);

var G1, G2: Gas; Period: Day; Season: (Winter, Spring, Summer, Autumn);

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

Итервальные типы: описываются заданием двух констант, определяющих границы (диапазон) допустимых для данных типов значений, т.е. интервал значений. Интервал можно задать только для данных порядкового типа, т.е. для любого простого типа, кроме вещественного. Формат описания интервального типа:

Type<имя типа> = <константа_1> . . <константа_2>);

Пример: type Day 1_31 = 1 . . 31;

. . .

var day1, day2: Day1_31;

Вещественные типы: Real48, Single, Double, Extended, Comp, Currency .

Общим является тип Real, который соотвествует типу Double.

Данные этих типов занимают от 4 до 10 байтов. Запись вещественных чисел возможна в форме с фиксированной десятичной точкой и в форме с плавающей точкой.

Примеры: +12.5, -137.46, 5 e +3 (~5 ? 10 3 = 5000)

К выражениям вещественных типов применимы функции Round(x)– округленное значение выражения xи Trunc(x)– целая часть значения выражения x.