Лекция 16.

Тема: «Типы данных в языке программирования Turbo Pascal.

Структура программы Turbo Pascal.»

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

В скалярных типах данных можно выделить следующие группы.

Целочисленные типы данных занимают от 1 до 4 байт. Все они представлены в табл. 2.1.

 

Таблица 2.1Целочисленные типы данных

Тип Диапазон Размер в байтах
Byte 0..255
Word 0..65535
Integer -32768..32767
Shortint -128..127
Longint -2147483648..2147483647

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

Var

a, b: byte;

f: word;

Вещественные типы данных занимают от 4 до 10 байт. Они могут быть как с плавающей (например, -3.2Е-6, -.42Е+2), так и с фиксированной (например, 4.12, 6.05, -17.5489) точкой. Вещественные числа в формате с плавающей точкой представлены в экспоненциальной форме mEp, где m-мантисса (целое или дробное число с десятичной точкой), p- порядок (целое число). Для того чтобы перевести число в экспоненциальной форме к обычному представлению с фиксированной точкой, необходимо мантиссу умножить на 10 в степени порядка. Например:

-6.42Е+2=-6.42∙102=-642

-3.2Е-6=-3.2∙10-6=-0.0000032.

Все вещественные типы данных приведены в табл.2.2.

Таблица 2.2Вещественные типы данных

Тип Диапазон Мантисса Размер (в байтах)
Real 2.9Е-39..1.7Е38 11-12
Single 1.5Е-45..3.4Е38 7-8
Double 5.0Е-324..1.7Е308 15-16
Extended 3.4Е-4932..1.1Е4932 19-20

Пример описания переменных вещественных типов:

var

a, b, c: real;

d, f: double;

k: single;

Символьный тип данных представляет собой любой символ, который может быть отображен на экране дисплея. Он занимает 1 байт и может быть описан с помощью служебного слова char, например:

var

a, b: char;

в тексте программы значения переменных и константы символьного типа должны быть заключены в апострофы: ′a′, ′b′, ′+′.

Логический (булевский) тип данных. Данные этого типа могут принимать одно из двух значений: true (истина) или false (ложь).

Например:

var a, b:boolean;

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

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

var

a, c: (red, blue, green);

b: (dog, cat);

Можно сначала ввести перечислимый тип данных, а затем описать его переменные. Для создания нового типа используется служебное слово type:

type <имя_типа>=<определение_типа>;

например:

type

color=(red, blue, green);

var

a, b:color;

Интервальный тип данных позволяет задавать две константы, которые определяют границы изменения переменных данного типа. Значение первой константы должно быть меньше значения второй. Сами же они являются целочисленными или символьными, например:

var

a, b, c: -7..4;

x: ′a′..′c′;

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

Например:

type

x=0..9;

var

a, b: x;

Каждая переменная интервального типа занимает 1 байт.

К структурированным типам данных относятся: массивы, строки, записи, файлы, множества.

Массив – совокупность данных одного и того же типа. Число элементов массива фиксируется при описании типа и в процессе выполнения программы не изменяется. Для доступа к элементу необходимо указать имя массива и его номер в квадратных скобках. Для описания массивов используется служебное слово array. Описание переменной данного типа имеет следующий вид:

<имя_переменной>: [i..i1, j..j1,…] of <тип_элементов>,

где i,i1-границы первого индекса массива, j, j1-границы второго индекса массива.

Например:

var

a: array [1..10] of integer;

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

Строки – последовательность символов. При использовании в выражениях строка заключается в апострофы. Ее длина ограничена 255 символами. Для описания переменных строкового типа используется служебное слово string, например:

<имя_переменной>:string [n],

где n-длина строковой переменной; если n не указана, то длина строки равна 255символам.

Записи и файлы будут рассмотрены ниже.