- •Программирование на языке Delphi.
- •1. Краткий экскурс в историю
- •1.1. Языки программирования
- •1.2. Объектно-ориентированное программирование
- •1.3. Визуальное программирование
- •1.4. Среда программирования Delphi
- •1.5. Технология Java
- •1.6. Среда программирования Kylix
- •1.7. Технология .Net
- •... И опять среда Delphi
- •2. Основы языка Delphi
- •2.1. Алфавит
- •2.1.1. Буквы
- •2.1.2. Числа
- •2.1.3. Слова-идентификаторы
- •2.1.4. Комментарии
- •2.2. Типы данных
- •2.2.1. Понятие типа данных
- •2.2.2. Простые типы данных
- •Целочисленные типы данных
- •Вещественные типы данных
- •Временной тип данных
- •Символьные типы данных
- •Булевские типы данных
- •Определение новых типов данных
- •Перечисляемые типы данных
- •Интервальные типы данных
- •2.3. Данные
- •2.3.1. Константы
- •2.3.2. Переменные
- •2.4. Операции
- •2.4.1. Выражения
- •2.4.2. Арифметические операции
- •2.4.3. Операции отношения
- •2.4.4. Булевские операции
- •2.4.5. Операции с битами (эта часть пока не нужна)
- •2.4.6. Очередность выполнения операций
- •2.5. Строки
- •2.5.1. Строковые значения
- •2.5.2. Строковые переменные
- •2.5.3. Операции над строками
- •2.5.4. Стандартные процедуры и функции для работы со строками
- •2.6. Операторы
- •2.6.1. Общие положения
- •2.6.2. Простые операторы
- •Оператор присваивания
- •Оператор вызова процедуры
- •Пустой оператор
- •Оператор безусловного перехода
- •2.6.3. Структурированные операторы
- •Составной оператор
- •Оператор ветвления if
- •Оператор множественного выбора case
- •Оператор повтора for
- •Оператор повтора repeat
- •Оператор повтора while
- •2.6.4. Прямая передача управления в операторах повтора
- •2.7. Подпрограммы
- •2.7.1. Общие положения
- •2.7.2. Объявление процедур и функций
- •Список формальных параметров
- •Локальные объявления
- •Тип возвращаемого значения
- •Соглашения о вызове подпрограмм
- •2.7.3. Вызов процедур и функций
- •2.7.4. Перегрузка процедур и функций
- •2.7.5. Рекурсивные подпрограммы
- •2.7.6. Упреждающее объявление процедур и функций
- •2.7.7. Процедурные типы данных
- •2.7.8. Стандартные процедуры и функции
- •2.8. Структура программных единиц
- •2.8.1. Структура файла проекта
- •Заголовок программы
- •Подключение модулей
- •Программный блок
- •2.8.2. Структура модуля
- •2.8.3. Стандартные модули языка Delphi
- •2.8.4. Область действия идентификаторов
- •2.9. Массивы
- •2.9.1. Статические массивы
- •2.9.2. Работа с массивами
- •2.9.3. Массивы в параметрах процедур и функций
- •2.9.4. Уплотнение структурных данных в памяти
- •2.9.5. Динамические массивы
- •2.10. Множества
- •2.10.1. Объявление множества
- •2.10.2. Операции над множествами
- •2.10.3. Стандартные процедуры для работы с множествами
- •2.11. Записи
- •2.11.1. Объявление записи
- •2.11.2. Операции над записями
- •2.11.3. Записи с вариантами
- •2.12. Файлы
- •2.12.1. Понятие файла
- •2.12.2. Работа с файлами
- •2.12.3. Стандартные подпрограммы управления файлами
- •2.13. Переменные с непостоянным типом значений
- •2.13.1. Тип данных Variant
- •2.13.2. Значения переменных с типом Variant
- •2.13.3. Variant в выражениях
- •2.13.4. Преобразование вариантов к другим типам данных
- •2.13.5. Подпрограммы для работы с вариантами
- •2.13.6. Вариантные массивы
- •2.14. Указатели
- •2.14.1. Понятие указателя
- •2.14.2. Стандартные указательные типы
- •2.14.3. Динамическое распределение памяти
- •2.14.4. Операции над указателями
- •2.14.5. Процедуры GetMem и FreeMem
- •2.15. Представление строк в памяти
- •2.16. Нуль-терминированные строки
- •2.17.1. Встроенный ассемблер
- •2.17.2. Подключение внешних подпрограмм
- •Delphi 6 в подлиннике
- •Часть I. Введение в delphi 6
- •Глава 1. Среда Delphi 6
- •Глава 2. Язык Object Pascal
- •Глава 3. Использование визуальных компонентов
- •Глава 4. Форма - главный компонент приложения
- •Глава 20. Реляционный способ доступа к данным
- •Глава 21. Работа с отчетами
- •Глава 22. Инструментальные средства
- •Часть V. Удаленные базы данных
- •Глава 23. Введение в работу с удаленными базами данных
- •Глава 24. Работа с удаленными базами данных
- •Глава 25. Инструментальные средства для
- •Глава 26. Трехуровневые приложения
- •Часть VI. Публикация баз данных в интернете
- •Глава 27. Введение в технологии публикаций
- •Глава 28. Web-приложения, серверы и интерфейсы
- •Глава 29. Публикация баз данных средствами Delphi
2.4.4. Булевские операции
Результатом выполнения логических (булевских) операций является логическое значение True или False (приложение №8). Операндами в логическом выражении служат данные типа Boolean.
Операция |
Действие |
Выражение |
A |
B |
Результат |
not |
Логическое отрицание |
not A |
TrueFalse |
|
FalseTrue |
and |
Логическое И |
A and B |
TrueTrue FalseFalse |
TrueFalseTrueFalse |
TrueFalseFalseFalse |
or |
Логическое ИЛИ |
A or B |
TrueTrue FalseFalse |
TrueFalseTrueFalse |
TrueTrueTrueFalse |
xor |
Исключающее ИЛИ |
A xor B |
TrueTrue FalseFalse |
TrueFalseTrueFalse |
FalseTrueTrueFalse |
Результаты выполнения типичных логических операций:
Выражение |
Результат |
not (17 > 19) |
True |
(7 <= 8) or (3 < 2) |
True |
(7 <= 8) and (3 < 2) |
False |
(7 <= 8) xor (3 < 2) |
True |
2.4.5. Операции с битами (эта часть пока не нужна)
Если операнды в булевской операции имеют целочисленный тип, то операция выполняется над битами операндов и называется побитовой. К побитовым операциям также относятся операции сдвига битов влево (shl) и вправо (shr).
Операция |
Действие |
Тип операндов |
Тип результата |
not |
Побитовое отрицание |
Целый |
Целый |
and |
Побитовое И |
Целый |
Целый |
or |
Побитовое ИЛИ |
Целый |
Целый |
xor |
Побитовое исключающее ИЛИ |
Целый |
Целый |
shl |
Сдвиг влево |
Целый |
Целый |
shr |
Сдвиг вправо |
Целый |
Целый |
Примеры побитовых операций:
Выражение |
Результат |
not $FF00 |
$00FF |
$FF00 or $0FF0 |
$FFF0 |
$FF00 and $0FF0 |
$0F00 |
$FF00 xor $0FF0 |
$F0F0 |
$FF00 shl 4 |
$F000 |
$FF00 shr 4 |
$0FF0 |
2.4.6. Очередность выполнения операций
При выполнении выражений одни операции выполняются раньше других. Например, в выражении
20 + 40 / 2 |
сначала произойдет деление (ибо скобок, меняющих естественный порядок выполнения операций, нет) и только потом — сложение. Выполнение каждой операции происходит с учетом ее приоритета. Не зная приоритета каждой операции, крайне трудно правильно записать даже самое простое выражение.
Значения приоритетов для рассмотренных выше операций представлены в приложении №9.
Операция |
Приоритет |
Описание |
–, not |
Первый |
Унарный минус, отрицание |
*, /, div, mod, and |
Второй |
Операции типа умножение |
+, –, or, xor |
Третий |
Операции типа сложение |
=, <>, <,>, <=, >= |
Четвертый |
Операции отношения |
Чем выше приоритет (первый — высший), тем раньше операция будет выполнена.