
- •Основы программирования
- •Введение
- •Основы delphi
- •Общая технология программирования
- •Язык программирования
- •Объектно-ориентированное программирование
- •Визуальное программирование
- •Событийно управляемое программирование
- •Windows-приложение
- •Среда программирования
- •Первоначальные сведения о проекте приложения
- •Встроенный отладчик
- •Использование встроенных классов
- •Иерархия классов
- •Использование палитры компонентов и инспектора объектов
- •Использование графики
- •Основные инструменты
- •Основные характеристики шрифтов
- •Графические данные и палитра
- •Некоторые общие свойства компонентов
- •Сохранение проекта
- •Построение простейшего проекта
- •Понятие исключительной ситуации
- •Введение в object pascal
- •Структура приложения
- •Структура программы-проекта
- •Структура модуля
- •Пример 1
- •Описания программных элементов
- •Программные элементы и адреса памяти
- •Области видимости
- •Правила записи имен
- •Время жизни идентификаторов
- •Использование локальных переменных в примере 1
- •Использование глобальных переменных в примере 1
- •Простые типы
- •Целые типы
- •Целые типы
- •Некоторые операции с целым типом
- •Символьные типы
- •Логические типы
- •Тип перечень
- •Интервальный тип
- •Вещественный тип
- •Вещественные типы
- •Некоторые операции с вещественным типом
- •Тип дата-время
- •Выражения
- •Константы
- •Типизированные константы.
- •Переменные
- •Операции
- •Унарная операция not (отрицание)
- •Логические операции and, or, xor
- •Функции
- •Порядок вычисления выражений
- •Виды операторов
- •Простые операторы
- •Составной оператор
- •Операторы условного перехода
- •Оператор if
- •Пример 2
- •Оператор case
- •Пример 3
- •Использование enter в примере 3
- •Операторы цикла
- •Оператор цикла for
- •Пример 4
- •Оператор цикла while
- •Пример 5
- •Оператор цикла repeat
- •Пример 6
- •Использование процедур break и continue
- •Пример 7
- •Массивы
- •Статические массивы
- •Динамические массивы
- •Пример 8
- •Пример 9
- •Записи (объединения)
- •Оператор with
- •Пример 10
- •Совместимость и преобразование типов данных
- •Идентичность типов
- •Совместимость типов
- •Совместимость по присваиванию
- •Преобразование типов
- •Операторы обработки исключительных ситуаций
- •Пример 11
- •Множества
- •Операции над множествами
- •Пример 12
- •Вариантный тип данных
- •Процедуры и функции
- •Процедура
- •Функция
- •Рекурсия
- •Формальные и фактические параметры
- •Параметры-значения
- •Параметры-переменные
- •Параметры-константы
- •Параметры без типа
- •Массивы открытого типа
- •Парамеры по умолчанию
- •Процедура exit
- •Директивы подпрограммы
- •Соглашения по передаче данных
- •Директива forward
- •Директива external
- •Директива assembler
- •Перегруженные подпрограммы
- •Пример 13
- •Инкапсуляция
- •Класс как объектный тип
- •Наследование
- •Области видимости
- •Операции is и as
- •Виды методов
- •Методы virtual и полиморфизм
- •Методы dynamic
- •Методы message
- •Методы abstract
- •Методы override
- •Методы class
- •Пример 14
- •Динамическое создание компонентов
- •Использование класса со счетчиком объектов
- •Отслеживание разрушения объектов
- •События
- •Указатели на методы
- •Пример 15
- •Типы ссылки на класс
- •Свойства
- •Свойства simple
- •Свойства enumerated
- •Свойства set
- •Свойства object
- •Свойства array
- •Задание начальных значений свойствам
- •Пример 16
- •Файловые типы
- •Текстовые файлы
- •Типизированные файлы
- •Файлы без типа
- •Дополнительные процедуры и функции
- •Пример 17
- •Компонент tmainmenu
- •Указатели
- •Пример 18
- •Динамические структуры данных
- •Однонаправленные списки
- •Двунаправленные списки
- •Стеки, очереди
- •Бинарные деревья
- •Пример 19
- •Процедурный тип
- •Программные единицы dll
- •Пример 20
- •Технологии программирования
- •Потоки данных
- •Пример 21
- •Пример 22
- •Интерфейс drag and drop
- •Пример 23
- •Технология drag and dock
- •Пример 24
- •Использование функций windows api при работе с файлами
- •Пример 25
- •Использование отображаемых файлов
- •Пример 26
- •Программные потоки
- •Приоритеты потоков
- •Класс tthread
- •Пример 27
- •Использование блокировки в примере 27
- •Многопоточное приложение в примере 28
- •Проблемы синхронизации потоков
- •Список используемых в примерах компонентов
- •Список используемых компонентов и других классов
- •Библиографический список
- •Оглавление
Унарная операция not (отрицание)
-
Значение операнда X
Результат операция not X
True
False
False
True
Результат вычисления логической операции получается также логического типа. Определяются эти операции специальными таблицами (табл. 7, табл. 8). Имеются четыре логические операции: одна унарная операция not и три бинарные: and – логическое И (конъюнкция), or – логическое ИЛИ (дизъюнкция), xor – ИСКЛЮЧАЮЩЕЕ ИЛИ.
Таблица 8
Логические операции and, or, xor
Значения операндов |
Результаты операций |
|||
X |
Y |
X and Y |
X or Y |
X xor Y |
True |
True |
True |
True |
False |
False |
True |
False |
True |
True |
True |
False |
False |
True |
True |
False |
False |
False |
False |
False |
Cуществуют 2 варианта, задаваемые директивой {$B}, вычисления логических выражений: полное {$B+} и укороченное {$B-}. Полное вычисление означает, что выполняются все запрограммированные действия, даже если на промежуточном этапе становится известным значение всего выражения. При укороченном вычислении все расчеты прекращаются, как только становится известным значение заданного выражения. Например, если в выражении (A and B) or (X xor Y) значение (A and B) равно true (операция or даёт true, если (A and B) или (X xor Y) равно true), то при укороченной форме, вычисления прекращаются.
Операции с битами выполняются над целыми числами. Существуют следующие битовые операции:
not X - инверсия всех битов числа X;
X and Y – побитовое логическое умножение чисел X и Y;
X or Y - побитовое логическое ИЛИ над X и Y;
X xor Y - побитовое исключающее ИЛИ над X и Y;
X shr J - сдвиг содержимого числа X на J бит вправо;
X shl J - сдвиг числа X на J бит влево.
Операции сдвига часто используются для умножения и деления целых чисел на 2, 22, 23 и т. д. Например, пусть X = 3 - в двоичной форме 0011. Выполним X shl 1 – 0011 сдвигаем влево на 1 разряд, - получим 0110. Двоичное число 0110 равно 6 в десятичной системе, т. е. выполнено умножение на 2.
Операции отношения предназначены для сравнения двух величин. Величины должны быть сравнимых типов, например простых типов. Результат сравнения имеет логический тип. Существуют шесть операций:
= - равно, > - больше,
<> - не равно, <= - меньше или равно,
< - меньше, >= - больше или равно.
Адресная операция @ позволяет определить адрес расположения переменной, типизированной константы, подпрограммы и некоторых других программных элементов в памяти.
Остальные операции будут рассмотрены далее.
Функции
Функция представляет собой специальную подпрограмму, предназначенную для вычисления какого-либо параметра, исходя из значений аргументов этих функций. Имеется большое количество встроенных стандартных функций, например перечисленных в табл. 5. Возможно создание собственных функций, которые используются наряду со стандартными. Любая функция задаётся своим именем с указанием после него в круглых скобках перечня параметров, например sin(X), которые эта функция использует в качестве аргументов.