logo search
Курс лекций по информатике

Вещественные типы данных

Типы

Диапазон

Мантисса

Требуемая память (байт)

real

single

double

extended

comp

2.9*10Е – 39..1.7*10Е38

1.5*10Е – 45..3.4*10Е38

5.00Е – 324..1.7*10Е308

1.9*10Е – 4951..1.1*10Е4932

– 2 Е+63+1..2Е+63 – 1

11 – 12

7 – 8

15 – 16

19 – 20

10 – 20

6

4

8

10

8

Вещественные значения могут изображаться в форме с фиксированной точкой, например 7.32, 456.721 или 0.015, а также в форме с плавающей точкой, т.е. парой чисел вида <мантисса>Е<порядок>.

Числа из предыдущего примера в форме с плавающей точкой будут записаны так: 7.32Е+00, 4.56721Е+02, 1.5Е – 02.

Литерный (символьный) тип

Литерный (символьный) тип char определяется множеством значений кодовой таблицы ПЭВМ. Каждому символу приписывается целое число в диапазоне от 0 до 255. Для кодировки используется код ASCII.

Для размещения в памяти переменной литерного типа требуется один байт.

Пример:

var

Ch: char;

Letter, Symbol: char;

В программе значения переменных и констант типа char должны быть заключены в апострофы. Например, 'A' обозначает букву А, ' ' – пробел, ';' – точку с запятой.

Над данными символьного типа определены следующие операции отношения: =,<>,<,>,<=,=>, вырабатывающие результат логического типа.

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

chr(x) – преобразует выражение х типа byte в символ и возвращает значение символа;

ord(ch) – преобразует символ ch в его код типа byte и возвращает значение кода;

pred(ch) – возвращает предыдущий символ;

succ(ch) – возвращает следующий символ.

Примеры:

ord (':') = 58

ord ('A') = 65

chr (128) = Б

pred ('Б') = А

succ ('Г') = Д

Булевский тип

Булевским типом называют тип данных, представляемый двумя значениями: True (истина) и False (ложь). Он широко применяется в логических выражениях и выражениях отношения. При описании величин этого типа указывают слово boolean. Для размещения в памяти переменной булевского типа требуется 1 байт

Пример:

var

Flag, Rezult: boolean;

Пользовательские типы

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

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

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

Перечисляемый тип (enumerated type) – тип данных, заданных списком принадлежащих ему значений.

Объявление перечисляемого типа описывает множество идентификаторов, которые являются возможными значениями перечисляемого типа. Идентификаторы в описании типа представляют собой константы. Отдельные значения указываются через запятую, а весь список заключается в круглые скобки. Первая константа имеет порядковый номер нуль, вторая – 1 и т.д.

Формат:

type

<имя типа> = (<значение1, значение2,…, значение n>);

var

<идентификатор,…> : <имя типа>;

Пример:

type

Gaz = (Ge, C, O, N);

Metall = (Na, K, Li, Cu, Zn);

var

G1, G2, G3 : Gaz;

Met1, Met2 : Metall;

Season: (Winter, Spring, Summer, Autumn);

Интервальный тип (диапазон)

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

Обе константы должны принадлежать одному из стандартных типов (напомним, что тип real здесь недопустим). Значение первой константы должно быть обязательно меньше значения второй.

Формат:

type

<имя типа> = <константа1>. .<константа2>;

var

<идентификатор,…> : <имя типа>;

Пример.

type

Days = 1..31;

var

RabDay, BolnDay : Days;

В этом примере переменные RabDay и BolnDay имеют тип Days и могут принимать любые значения из диапазона 1..31. выход из диапазона вызывает программное прерывание.

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

const

Min = 1; Max = 31;

type

Days = Min .. Max;

var

RabDay, BolnDay : Days;