Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информац.техн.lab2.pdf
Скачиваний:
10
Добавлен:
16.03.2015
Размер:
496.13 Кб
Скачать

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

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

Вещественные типы предназначены для работы с вещественными числами в формате с плавающей и фиксированной точкой.

Тип дата-время предназначен для хранения даты и времени. Фактически для этих целей используется вещественный формат.

Порядковые типы

Ко всем порядковым типам можно применять следующие функции: Pred(X) – возвращает предыдущее значение порядкового типа; Succ(X) – возвращает следующее значение порядкового типа; High(X) – возвращает максимальное значение порядкового типа; Low(X) – возвращает минимальное значение порядкового типа.

Целые типы

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

Таблица 1 – Целочисленные типы

Наименование

Длина,

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

байт

 

 

Byte

1

0…255

ShortInt

1

-128…+127

SmallInt

2

-32768…+32767

Word

2

0…65535

Integer

4

-2147483648 … +2147483647

LongInt

4

-2147483648 … +2147483647

Cardinal

4

0 … 2147483647

LongWord*

4

0 … 4294967295

Int64

8

-263 … 263-1

Следует учесть, что Object Pascal позволяет осуществлять автоматическое приведение типов так там, где в качестве аргумента допустимо использовать переменную типа Word, допускается использовать переменную типа Byte, но не наоборот. Общее правило таково вместо одного типа целочисленной переменной можно использовать другой тип целочисленной переменной их диапазоны значений вкладываются друг в друга. Например возможно преобразование переменной типа Byte в переменную типа Word, но невозможно преобразование ShortInt в Word;

В таблице 2 приведены некоторые функции для работы с целочисленным переменными.

* Введен в Delphi 6

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

Таблица 2 – Функции для работы с целыми типами

Функция

Описание

dec(x[, i])

Уменьшает значение X на i, а при отсутствии i на 1.

inc(x[, i])

Увеличивает значение X на i, а при отсутствии i на 1.

odd(x)

Возвращает True, если аргумент – нечетное число.

При действиях с целыми числами тип результата будет соответствовать типу операндов, а если операнды относятся к различным целым типам, – общему типу, который включает в себя оба операнда. Например для типов ShortInt и Word общим типом будет

Integer.

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

program InOutPrg;

{$APPTYPE CONSOLE} var x: Word;

begin k:=65535; k:=k+1; writeln(k); readln; end.

Если активизировать переключатель Project Option Compiler Range checking и

повторить компиляцию, то возникнет ошибка времени исполнения (см. рисунок 2).

Рисунок 2 – Включение проверки выхода за диапазон

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

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

Логические типы

Переменная логического типа может принимать только два значения True (истина) и False (ложь). Логические типы приведены в таблице 3.

Таблица 3 – Логические типы

Тип

Размер

Boolean

1

ByteBool

1

Bool

2

WordBool

2

LongBool

4

Совет: Для работы с логическими типами используйте тип Boolean, остальные типы были добавлены в Object Pascal для совместимости с Windows.

Символьный тип

Символьный тип, как следует из его названия, предназначен для хранения кода символа. Внутренняя структура типа совпадает с внутренней структурой беззнаковых целых чисел. Object Pascal поддерживает два символьных типа AnsiChar и WideChar. Характеристики этих типов приведены в таблице 4.

Таблица 4 – Логические типы

Тип

Размер,

Описание

 

байт

 

AnsiChar

1

Код символа в кодировке ANSI. Таблица символов этого

 

 

стандарта состоит из 256 символов, причем первые 128

 

 

символов жестко определены стандартом, а остальные 128

 

 

могут содержать любые символы. Во вторую часть кодовой

 

 

таблицы обычно помещают символы национальных

 

 

алфавитов. Недостатком данного представления символов

 

 

является то, что невозможно отображение сразу символов

 

 

более чем 2-х алфавитов.

WideChar

2

Символ в формате UNICOD. Таблица символов содержит

 

 

65536 символов. В данной таблице находятся символы всех

 

 

алфавитов.

Char*

1

Является псевдонимом типа AnsiChar

Для преобразования кода символа в символ следует применять следующую функцию function chr(X:byte):char

* Этот тип является основным символьным типом Object Pascal

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

Для обратного преобразования используется функция

function ord(X:char):byte;

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

ch:=’A’;

ch:=#97; //97 – код символа “A”.

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

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

type

TColors=(red, green, white, yellow);

Применение перечисляемых типов делает программы более наглядными и повышает надежность программ. Пусть определены следующие типы:

type

TColors=(red, green, white, yellow); TDays=(monday, tuesday, wednesday);

Определены переменные

var

col:TColors;

day:TDays;

то допустимы следующие операторы col:=white;

col:=Succ(green);

day:=Pred(tuesday);

но не допустимы col:=monday; day:=col;

Максимальное количество перечисляемых значений 65536 значений, т.е. во внутреннем представлении перечисляемый тип представляет собой тип Word.

Тип-диапазон

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

<мин. зн.> .. <макс. зн.>

Например type

TDigits=’0’..’9’;