- •Введение
- •Простые типы данных
- •Порядковые типы
- •Целые типы
- •Логические типы
- •Символьный тип
- •Перечисляемый тип
- •Тип-диапазон
- •Вещественные типы
- •Тип дата-время
- •Строковые типы
- •Преобразование типов
- •Операторы
- •Оператор присваивания
- •Оператор SizeOf
- •Операторы ввода-вывода
- •Оператор write
- •Оператор read
- •Задания к лабораторной работе
- •Вопросы к лабораторной работе
- •Справочные таблицы
Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Порядковые типы отличаются тем, что каждый из них имеет конечное число возможных значений. Эти значения можно определенным образом упорядочить и, следовательно, сопоставить некоторое целое число – порядковый номер значения.
Вещественные типы предназначены для работы с вещественными числами в формате с плавающей и фиксированной точкой.
Тип дата-время предназначен для хранения даты и времени. Фактически для этих целей используется вещественный формат.
Порядковые типы
Ко всем порядковым типам можно применять следующие функции: 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’;