Файл: Лр операторы и выражения Delphi.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.01.2024

Просмотров: 270

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

ЛР 1. Операторы и выражения Delphi

Оператор присваивания

Арифметические операторы

Оператор конкатенации строк

Логические операторы

Операторы поразрядного сдвига

Операторы отношения

Операторы множеств

Оператор-селектор case

Оператор перехода goto

Организация циклов

ЛР 2. Структурные типы

Множества

Записи

Массивы

ЛР 3. Объекты и классы

Проектирование класса

Управление жизненным циклом объекта

Опережающее объявление класса

Ограничение видимости членов класса

Свойства объекта

Особенности объявления методов

Поля класса и методы класса

Иерархия наследования

Полиморфизм

ЗАДАНИЕ

ЛР4. Опорные классы VCL

Класс TControl

Принадлежность к родительскому контейнеру

Размещение и размеры элемента управления

Видимость и активность элемента управления

Задание

ЛР5. Обработка клавиатурных событий и событий мышки

Щелчки кнопками мыши

Перемещение указателя мыши

Вращение колесика мыши

Операция перетаскивания drag and drop

Задание

ЛР 6. Классы потоков данных

Прототип потоков данных, класс TStream



Языки программирования





ЛР 1. Операторы и выражения Delphi


После знакомства с основами объявления переменных и констант и построения простейших структур нам предстоит перейти на очередной уровень освоения языка — научиться использовать в программах операторы и выражения Delphi.

В терминах программирования под выражением понимается логически законченный фрагмент исходного кода программы, предоставляющий способ получения (вычисления) некоторого значения. Простейшим примером выражения может стать строка кода X:=Y+Z, возвращающая результат суммирования двух значений. Предложенное выражение содержит три операнда (X, Y и Z) и два оператора: := и +.

Перечень операторов входящих в состав языка Delphi весьма обширен, при классификации операторов можно выделить следующие группы:

  • оператор присваивания;

  • арифметические операторы;

  • оператор конкатенации строк;

  • логические операторы;

  • операторы поразрядного сдвига;

  • операторы отношения;

  • операторы множеств;

  • строковые операторы;

  • составной оператор;

  • условные операторы.



Оператор присваивания


Едва ли не самый популярный среди всех операторов Delphi — оператор присваивания нам уже хорошо знаком. Комбинация символов ":=" уже неоднократно встречалась на предыдущих страницах книги, с ее помощью мы передавали значения в переменные. Например,

X:=10; //присвоить переменной X значение 10

Благодаря оператору := в переменной X окажется новое значение.

Арифметические операторы


Как и следует из названия, арифметические операторы необходимы для осуществления математических действий с целыми и вещественными типами данных. Помимо известных еще из курса начальной школы операторов сложения
, вычитания, умножения и деления, Delphi обладает еще двумя операторами целочисленного деления (табл. 1.1).

Таблица1.1.АрифметическиеоператорыDelphi

Операто р

Операция

Входные значения

Результат операции

Пример

Результ ат

+

Сложение

integer, double

integer, double

X:=3+4;

7

-

Вычитание

integer, double

integer, double

X:=10-3.1;

8.9

*

Умножение

integer, double

integer, double

X:=2*3.2;

4.4;

/

Деление

integer, double

double

X:=5/2;

3.5;



div

Целочисленно е деление

integer

integer

X:=5 div 2;

2

mod

Остаток от деления

integer

integer

X:=5 mod 2;

1


При объявлении участвующих в расчетах переменных следует учитывать тип данных, возвращаемый в результате выполнения того или иного оператора. Допустим, нам следует разделить число 4 на 2 (листинг 1.1).


Листинг 1.1. Операция деления возвращает вещественное число




var {X:integer; - неподходящий тип данных} X:extended;{- правильно}

begin



X:=4/2; //результат должен быть передан в переменную вещественного типа WriteLn(X);

end.
Даже ученик начальной школы знает, что 4/2=2, другими словами в результате деления мы получим целое число. Однако Delphi обязательно забракует код, если мы попытаемся поместить результат операции деления в целочисленную переменную, и уведомит об этом программиста сообщением, о несовместимости типов.
Примечание

Операторы + и могут применяться не только для сложения и вычитания, но и для определения знака значения. Например: X:=-5.


Оператор конкатенации строк


Оператор конкатенации строк позволяет объединять две текстовые строки в одну. Для простоты запоминания еще со времен языка Pascal в качестве объединяющего оператора используется тот же самый символ, что и для сложения двух числовых величин — символ плюса + (листинг 1.2).


Листинг 1.2. Конкатенация строк




const S1='Hello';
var S:String='World'; CH:Char='!';

begin

S:=S1+', '+S+CH;

WriteLn(S); //'Hello, World!' ReadLn;

end.
Обратите внимание, что оператор конкатенации может быть применен не только для типа данных

String, но и к символьному типу Char.

Логические операторы


В табл. 1.2 представлены четыре логических (булевых) оператора, осуществляющих операции логического отрицания, логического "И", логического "ИЛИ" и исключающего "ИЛИ". В результате выполнения любой из логических операций мы можем ожидать только одно значение из двух возможных: истина (true) или ложь (false).

Таблица1.2.ЛогическиеоператорыDelphi


Оператор

Операция

Пример

Результат

NOT

Логическое отрицание

var x: boolean = NOT true;

false

x:= NOT false;

true

AND

Логическое умножение (конъюнкция, логическое "И") для двух выражений

x:=true AND true;

true

x:=true and false;

false

x:=false AND true;

false

x:=false AND false;

false

OR

Выполняет операцию логического "ИЛИ" (сложения) для двух выражений

x:=true OR true;

true

x:=true OR false;

false

x:=false OR true;

true

x:=false OR false;

false

XOR

Выполняет операцию исключающего "ИЛИ" для двух выражений

x:=true XOR true;

false

x:=true XOR false;

true

x:=false XOR true;

true

x:=false XOR false;

false



Логические операции разрешено проводить с целыми числами. Если вы не забыли порядок перевода чисел из десятичной системы счисления в двоичную и наоборот, то вам наверняка покажется интересным листинг 1.3.


Листинг 1.3. Логические операции с целыми числами




var X,Y,Z : byte;

begin

{******* логическое умножение *******} X:=5; //в бинарном виде 0101

Y:=3; //в бинарном виде 0011

Z:=X AND Y; // 0101 AND 0011 = 0001 {десятичное 1} WriteLn(X,' AND ',Y,'=',Z);

{******* логическое сложение *******} X:=1; //в бинарном виде 0001 Y:=2; //в бинарном виде 0010

Z:=X OR Y; // 0001 OR 0010 = 0011 {десятичное 3} WriteLn(X,' OR ',Y,'=',Z);

{******* исключение или *******} X:=5; //в бинарном виде 0101

Y:=3; //в бинарном виде 0011

Z:=X XOR Y; // 0101 XOR 0011 = 0110 {десятичное 6} WriteLn(X,' XOR ',Y,'=',Z);

{******* отрицание *******}

X:=1; //в бинарном виде 00000001

Z:=NOT X; // NOT 00000001 = 11111110 {десятичное 254} WriteLn('NOT ',X,'=',Z);

ReadLn;

end.