
- •4.1. Активизация иср и выход из среды.
- •4.2. Назначение и содержание окна иср.
- •4.3. Назначение пунктов меню File, Edit, Search. Меню работы с файлами (File)
- •Меню редактирования (Edit)
- •Меню поиска информации (Searh)
- •4.4. Назначение пунктов меню Run, Compile, Debug. Меню выполнения программы (Run)
- •Меню компиляции (Compile)
- •Меню отладки (Debug)
- •4.5. Назначение пунктов меню Options, Window, Help. Меню параметров среды (Options)
- •Меню окон (Window)
- •17.5.10. Меню информационной помощи (Help)
- •4.6. Отличия проектов Программа и Модуль.
- •4.7. Кодировки ansi и ascii.
- •4.8. Алфавит языка FreePascal, операции, идентификаторы.
- •4.9. Структура программы. Разделы объявления констант, переменных, меток, типов данных, подпрограмм.
- •4.10. Константы. Их объявление. Константные выражения.
- •4.11. Переменные. Их объявление.
- •4.12. Форматы представления чисел (с фиксированной и плавающей точкой).
- •4.16. Тип tDateTime и его использование.
- •4.17. Логические типы данных Boolean.
- •4.20. Строковые типы для коротких строк: ShortString, String[n].
- •4.21. Совместимость типов при присвоениях.
- •4.22. Тип Variant и его использование.
4.16. Тип tDateTime и его использование.
Тип дата-время определяется стандартным идентификатором TDateTime и предназначен для одновременного хранения и даты, и времени. Во внутреннем представлении он занимает 8 байт и подобно currency представляет собой вещественное число с фиксированной дробной частью: в целой части числа хранится дата, в дробной - время. Дата определяется как количество суток, прошедших с 30 декабря 1899 года, а время - как часть суток, прошедших с 0 часов, так что значение 36444,837 соответствует дате 11.10.1999 и времени 20:05. Количество суток может быть и отрицательным, однако значения меньшие -693594 (соответствует дате 00.00.0000 от Рождества Христова) игнорируются функциями преобразования даты к строковому типу.
Над данными типа TDateTime определены те же операции, что и над вещественными числами, а в выражениях этого типа могут участвовать константы и переменные целого и вещественного типов.
Поскольку тип TDateTime совместим с форматом вещественных чисел, можно без труда определить дату, отстоящую от заданной на сколько-то дней вперед или назад: для этого достаточно соответственно прибавить к заданной дате или отнять от нее нужное целое число.
4.17. Логические типы данных Boolean.
В Турбо Паскале логический тип данных носит название BOOLEAN. Значением логического типа может быть одна из двух констант FALSE (ложь) или TRUE (истина). Для них справедливы правила:
Ord(false)=0 Ord(true)=1 False<true Succ(false)=true Pred(true)=false
Название логического типа данных |
Значению False соответствует |
Значению True соответствует |
Размер памяти для логического типа данных |
Boolean |
Число 0 |
1 |
1 байт |
ByteBool |
Число 0 |
Любое число, отличное от 0 |
1 байт |
WordBool |
Число 0 в обоих байтах |
2 байта | |
LongBool |
Число 0 во всех байтах |
4 байта |
Логические переменные должны быть описаны предложением:
Var <имя_переменной>: boolean;
4.18. Символьные типы: AnsiChar = Char, WideChar.
Символьный тип данных Char — тип данных, значениями которого являются одиночные символы. Данный тип может содержать всего один любой символ (Например: «*», «/», «.», «!» и другие). Каждый такой символ занимает 8 бит памяти, всего существует 256 восьмибитовых символов. Все символы, используемые символьным типом Char записаны в таблице символов ASCII (American Standart Code for Information Interchange) или Американский стандарт кода для обмена информацией. Символьные константы заключаются в апострофы, например '.', '*', '7', 's'. Также символьную константу можно записать с помощью символа — «решетки», например #185 — выведет символ под номером 185 из таблицы ASCII (это символ '№').
Таблица 1. Характеристики символьных типов | ||
Название типа |
Идентификатор |
Размер в байтах |
Символ кода ANSI |
AnsiChar |
1 байт |
Символ кода Unicode |
WideChar |
2 байта |
Родовой символьный тип |
Char |
1 байт |
Типы AnsiChar и WideChar имеют постоянное представление в памяти, которое не будет изменяться в различных реализациях Object Pascal. Родовой символьный тип Char в данной реализации соответствует типу AnsiChar. Заметим, что первые 256 символов кода Unicode совпадают с кодом ANSI.
4.19. Строковые типы для длинных строк: AnsiString = String, WideString.
Строки AnsiString, называемые также длинными строками (long string), наиболее предпочтительны для большинства применений. Строковые типы могут смешиваться в операторах присваивания и выражениях. При этом компилятор автоматически выполняет требуемые преобразования. Однако при передаче в качестве var и outпараметров подпрограмм они должны иметь соответствующий тип. Длинные строки AnsiString являются динамически размещаемыми строками, максимальная длина которых ограничена только имеющейся памятью. Так как переменные AnsiString являются указателями, то на одну строку может ссылаться более одного указателя, что учитывается компилятором для экономии памяти. Когда переменная уничтожается или ей присваивается новое значение, то число указателей на старую строку уменьшается на 1 (reference-counting). Когда оно становится равным нулю, память автоматически освобождается.
Тип |
Число символов |
Объем занимаемой памяти |
Назначение |
ShortString |
255 |
от 2 до 256 байт |
для обратной совместимости |
AnsiString |
около 231 |
от 4 байт до 2ГБ |
8-битовые символы ANSI |
WideString |
около 230 |
от 4 байт до 2ГБ |
символы Unicode; параметры методов интерфейсов в СОМ технологиях |