
- •Ответы на вопросы
- •Основы визуального программирования. Понятие компонентов. Свойства компонента. Проектирование интерфейсных окон. Компиляция программ.
- •1.1. Краеугольные камни визуального программирования
- •1.3. Первый запуск среды Delphi
- •1.4. Исследуем среду разработки программ
- •Общие свойства компонентов
- •Понятие идентификатора. Зарезервированные (ключевые) слова. Стандартные идентификаторы. Идентификаторы программиста. Комментарии.
- •Комментарии
- •Понятие типа данных. Константы, переменные. Объявление типов, констант, переменных. Понятие типа данных
- •Константы
- •Переменные
- •. Определение новых типов данных
- •Простые типы данных (целочисленные, вещественные, символьные, булевые) Простые типы данных
- •2.3.1. Целочисленные типы данных
- •2.3.2. Вещественные типы данных
- •2.3.3. Символьные типы данных
- •2.3.4. Булевские типы данных
- •Перечисляемые и интервальные типы данных.
- •2.3.6. Перечисляемые типы данных
- •2.3.7. Интервальные типы данных
- •Выражения. Арифметические операции. Операции отношения. Булевские операции. Очередность выполнения операций.
- •2.4.1. Выражения
- •2.4.2. Арифметические операции
- •2.4.3. Операции отношения
- •2.4.4. Булевские операции
- •2.4.5. Операции с битами
- •2.4.6. Очередность выполнения операций
- •Операторы. Оператор присваивания. Оператор вызова процедуры. Составной оператор Операторы
- •2.7.1. Общие положения
- •2.7.2. Оператор присваивания
- •2.7.3. Оператор вызова процедуры
- •2.7.4. Составной оператор
- •Оператор ветвления if Оператор ветвления if
- •Оператор ветвления case . Оператор ветвления case
- •10 . Оператор повтора for.
- •11. Оператор повтора repeat
- •12. Оператор повтора while
- •13. Операторы Continue и Break
- •14. Подпрограммы. Стандартные подпрограммы.
- •2.8.1. Общие положения
- •2.8.2. Стандартные подпрограммы
- •15. Процедуры и функции программиста. Процедуры программиста
- •2.8.4. Функции программиста
- •16. Параметры процедур и функций. Структура модуля. Стандартные модули языка Delphi Параметры процедур и функций
- •Структура модуля
- •2.9.2. Стандартные модули языка Delphi
- •17. Область действия идентификаторов. Область действия идентификаторов
- •18. Строковые переменные. Операции над строками. Стандартные процедуры и функции для работы со строками. Строковые переменные
- •2.10.5. Операции над строками
- •Стандартные процедуры и функции для работы со строками
- •Массивы. Объявление массива. Работа с массивами. Динамические массивы Массивы
- •2.11.1. Объявление массива
- •2.11.2. Работа с массивами
- •Динамические массивы
- •Множества. Операции над множествами . Множества
- •2.12.1. Объявление множества
- •2.12.2. Операции над множествами
- •Записи. Записи
- •2.13.1. Объявление записи
- •2.13.2. Записи с вариантами
- •Файлы. Работа с файлами. Стандартные подпрограммы управления файлами
- •2.14. Файлы
- •2.14.1. Понятие файла
- •2.14.2. Работа с файлами
- •2.14.3. Стандартные подпрограммы управления файлами
- •Формула объекта. Три кита ооп
- •3.1. Краеугольные камни ооп
- •3.1.1. Формула объекта
- •3.1.5. Три кита ооп
- •Классы и объекты
- •3.2. Классы
- •3.3. Объекты
- •Конструкторы и деструкторы
- •3.4. Конструкторы и деструкторы
- •Методы классов
- •3.5. Методы
- •Свойства классов
- •3.6. Свойства
- •3.6.1. Понятие свойства
- •3.6.2. Методы получения и установки значений свойств
- •3.6.3. Свойства-массивы
- •3.6.4. Свойство-массив как основное свойство объекта
- •3.6.5. Методы, обслуживающие несколько свойств
- •28) Наследование
- •29) Перекрытие атрибутов в наследниках
- •30) Совместимость объектов различных классов
- •31) Понятие виртуального метода
- •32) Классы в программных модулях
- •33.Разграничение доступа к атрибутам объектов
- •34)Классы для представления списка строк
- •Свойства:
- •Методы:
- •События:
- •35. Классы для представления потока данных
- •Общие свойства:
- •Общие методы:
- •36. Обрабока исключительных ситуаций
- •4.3.1. Создание исключительной ситуации
- •4.3.2. Распознавание класса исключительной ситуации
- •4.3.3. Пример обработки исключительной ситуации
- •4.3.4. Возобновление исключительной ситуации
- •4.3.5. Доступ к объекту, описывающему исключительную ситуацию
- •37. .Защита выделенных ресурсов от пропадания
- •4.4.1. Утечка ресурсов и защита от нее
- •Сортировка массива методом прямого выбора
- •Сортировка массива методом прямого обмена (пузырьковым методом)
- •Сортировка массива методом прямого включения
- •Шейкерная сортировка
- •Сортировка массива с помощью включений с уменьшающимися расстояниями (метод Шелла)
- •Сортировка разделением (быстрая сортировка)
-
Операторы. Оператор присваивания. Оператор вызова процедуры. Составной оператор Операторы
2.7.1. Общие положения
Основная часть программы на языке Delphi представляет собой последовательность операторов, выполняющих некоторое действие над данными, объявленными в секции описания данных. Операторы выполняются строго последовательно в том порядке, в котором они записаны в тексте программы и отделяются один от другого точкой с запятой.
Все операторы принято в зависимости от их назначения разделять на две группы: простые и структурные. Простые операторы не содержат в себе никаких других операторов. К ним относятся операторы присваивания, вызова процедуры и безусловного перехода. Структурные операторы содержат в себе простые или другие структурные операторы и подразделяются на составной оператор, условные операторы и операторы повтора.
При изучении операторов мы рекомендуем вам обратить особое внимание на наши рекомендации по поводу того, где какой оператор надо применять. Это избавит вас от множества ошибок в практической работе.
2.7.2. Оператор присваивания
Оператор присваивания (:=) вычисляет выражение, заданное в его правой части, и присваивает результат переменной, идентификатор которой расположен в левой части. Например:
X := 4; Y := 6; Z := (X + Y) / 2; |
Во избежании ошибок присваивания необходимо следить, чтобы тип выражения был совместим с типом переменной. Под совместимостью типов данных понимается возможность автоматического преобразования значений одного типа данных в значения другого типа данных. Например, все целочисленные типы данных совместимы с вещественными (но не наоборот!).
В общем случае для числовых типов данных действует следующее правило: выражение с более узким диапазоном возможных значений можно присвоить переменной с более широким диапазоном значений. Например, выражение с типом данных Byte можно присвоить переменной с типом данных Integer, а выражение с типом данных Integer можно присвоить переменной с типом данных Real. В таких случаях преобразование данных из одного представления в другое выполняется автоматически:
var B: Byte; I: Integer; R: Real; begin B := 255; I := B + 1; // I = 256 R := I + 0.1; // R = 256.1 I := R; // Ошибка! Типы данных несовместимы по присваиванию end. |
Исключение составляет случай, когда выражение принадлежит 32-разрядному целочисленному типу данных (например, Integer), а переменная — 64-разрядному целочисленному типу данных Int64. Для того, чтобы на 32-разрядных процессорах семейства x86 вычисление выражения происходило правильно, необходимо выполнить явное преобразование одного из операндов выражения к типу данных Int64. Следующий пример поясняет сказанное:
var I: Integer; J: Int64; begin I := MaxInt; // I = 2147483647 (максимальное целое) J := I + 1; // J = -2147483648 (неправильно: ошибка переполнения!) J := Int64(I) + 1; // J = 2147483648 (правильно: вычисления в формате Int64) end. |