
- •ЛР 1. Операторы и выражения Delphi
- •Оператор присваивания
- •Арифметические операторы
- •Оператор конкатенации строк
- •Логические операторы
- •Операторы поразрядного сдвига
- •Операторы отношения
- •Операторы множеств
- •Составной оператор begin..end
- •Условный оператор if..then..else
- •Оператор-селектор case
- •Оператор перехода goto
- •Оператор with..do
- •Организация циклов
- •Цикл с параметром for..do
- •Инструкция in в цикле for..do
- •Цикл с предусловием while..do
- •Цикл с постусловием repeat..until
- •Вложенные циклы
- •Операторы break и continue
- •ЗАДАНИЕ
- •Вариант 1.
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •ЛР 2. Структурные типы
- •Множества
- •Записи
- •Вариантные поля
- •Усовершенствованная запись
- •Массивы
- •Объявление массива
- •Обращение к ячейкам массива
- •Динамический массив
- •ЗАДАНИЕ
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •ЛР 3. Объекты и классы
- •Проектирование класса
- •Управление жизненным циклом объекта
- •Опережающее объявление класса
- •Ограничение видимости членов класса
- •Свойства объекта
- •Особенности объявления методов
- •Поля класса и методы класса
- •Иерархия наследования
- •Полиморфизм
- •ЗАДАНИЕ
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •ЛР4. Опорные классы VCL
- •Класс TObject
- •Класс TPersistent
- •Основа компонента, класс TComponent
- •Владение компонентом
- •Класс TControl
- •Принадлежность к родительскому контейнеру
- •Размещение и размеры элемента управления
- •События, связанные с изменением размеров
- •Выравнивание элемента управления в контейнере
- •Видимость и активность элемента управления
- •Задание
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант5
- •Совет
- •ЛР5. Обработка клавиатурных событий и событий мышки
- •Щелчки кнопками мыши
- •Перемещение указателя мыши
- •Вращение колесика мыши
- •Операция перетаскивания drag and drop
- •Обработка событий клавиатуры
- •Задание
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •ЛР 6. Классы потоков данных
- •Прототип потоков данных, класс TStream
- •Потоки с дескриптором, класс THandleStream
- •Файловый поток данных, класс TFileStream
- •Пример работы с файловым потоком данных
- •Задание
- •Вариант 1.
- •Вариант 2.
- •Вариант 3.
- •Вариант 4.
- •Вариант 5.

Языки программирования
Оператор with..do
Оператор with..do значительно упрощает процесс написания кода программы, обеспечивая ускоренный доступ к полям записей и объектов. Каким образом? Допустим, что наша программа использует переменную-запись вида, предложенного в листинге 1.11.
Листинг 1.11. Стандартный способ обращения к полям записи
var DemoRecord : record //объявление записи
I : integer; R : real;
B : boolean; end;
begin
DemoRecord.I:=-41;
DemoRecord.R:=0.48;
DemoRecord.B:=True;
Как видите, для обращения к полям записи мы вынуждены писать код, повторяющий из строки в строку имя владельца полей — DemoRecord. А если таких полей несколько десятков? Никчемное и рутинное занятие. Разработчики Delphi предложили конструкцию, исключающую необходимость многократных повторов имени объекта (записи, переменой и т. д.):
with <объект> do begin
<действие с полем 1 объекта>
. . .
<действие с полем N объекта> end;
Оператор with..do значительно упрощает труд программиста. Теперь обращение к полям записи происходит без многократного упоминания имени самой записи (листинг 1.12).
Листинг 1.12. Пример работы с оператором with..do
with DemoRecord do begin
I:=-41;
R:=0.48;
B:=true; end;
Встретив конструкцию with..do, компилятор понимает, что далее идет речь только о конкретном объекте (в нашем случае это запись DemoRecord), и больше не требует упоминания его имени.
Организация циклов
При разработке программ зачастую возникает необходимость повторного выполнения ряда одинаковых действий, например вычислений. В подобной ситуации на помощь приходят циклы. Циклы предназначены для многократного выполнения одного или нескольких выражений. В Delphi предусмотрены три разновидности циклов:
цикл for с параметром;
цикл while..do с предусловием;
цикл repeat..until с постусловием.
На рис. 1.2 представлены структурные схемы всех трех циклов.
9
СКФУ Кафедра компьютерной безопасности