ЧАСТЬ 3

ИНФОРМАТИКА

Электронное учебно-методическое пособие

 

 
 

 

Оператор выбора

Оператор выбора является обобщением условного оператора и позволяет сделать выбор из произвольного числа имеющихся вариантов. Он состоит из выражения, называемого селектором, списка вариантов и необязательной ветви else.

Формат:
Case <выражение-селектор> of
<список1>: <оператор1>;
<списокN>: <операторN>
else <оператор>;
end;
выражение-селектор – выражение порядкового типа;
Список – список констант выбора состоит из произвольного количества значений и диапазонов, разделённых запятыми.

При выполнении оператора Case вычисляется значение выражения – селектора, после чего полученный результат сравнивается со всеми константами и значениями из диапазона соответствующего списка.

Если поиск успешный, то выполняется оператор этого варианта. После этого выполнение оператора заканчивается.

Если совпадения не произошло, то выполняется оператор, стоящий за словом else.

Если в операторе выбора Case нет строки else, то в случае несовпадения значений выполняется следующий за Case оператор. Case – единственный оператор, который заканчивается зарезервированным словом end.

Пример:

case N of
1 .. 5: day:= 'Рабочий день ';
6,7 : day:= 'Выходной день ';
else day:=’ ‘
end;


Операторы цикла (For, While, Repeat)

Цикл – это последовательность операторов, которая выполняется более одного раза. Если количество повторов известно, то используется оператор for, если неизвестно – операторы repeat или while.

Цикл for – цикл с параметром.

Формат:
For <параметр цикла >: = <выражение1> to <выражение2 > do
<оператор>;

параметр цикла – переменная порядкового типа, через которую идёт отсчёт количества повторов;

Выражение1 и выражение2 являются соответственно начальным и конечным значениями параметра цикла. Они должны иметь тип, совместимый с типом параметра цикла.

Тело цикла по формату состоит из одного оператора. Если необходимо повторять несколько операторов, то используют составной оператор.

Пример. Циклы с параметром
Var n, k:integer;

S:=0;
For n:=1 to 10 do s:=s+m[n];
For k:=0 to 2 do
For n:=5 to 10 do begin
Arr1[k,n]:=0;
Arr2[k,n]:=1;
End;

Оператор цикла обеспечивает выполнение тела цикла, которым является оператор после слова do до полного перебора всех значений параметра цикла от начального до конечного с соответствующим шагом.

В первом цикле выполняется расчёт суммы из десяти значений массива M.

Во втором случае два цикла вложены один в другой, и в них пересчитываются значения элементов двумерных массивов arr1 и arr2.

Цикл с параметром может быть записан и в другом формате

For <параметр цикла >: = <выражение1> downto <выражение2 > do
<оператор>;

При таком формате переменная цикла изменяется от начального до конечного значения с шагом -1. Отсюда следует, что для выполнения цикла начальное значение должно быть больше конечного значения.

While (пока) – оператор цикла с предусловием.

Формат:
while <условие> do <оператор>;

Здесь условие – логическое выражение.

Тело цикла по формату состоит из одного оператора. Если необходимо повторять несколько операторов, то используют составной оператор.

Работа данного оператора начинается с вычисления выражения, записанного в условии. Если значение выражения равно True, то тело цикла выполняется и снова вычисляется значение выражения, записанного в условии. Цикл завершается, если значение выражения становится равным False.

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

Если при первом вычислении условие принимает значение false, то тело цикла вообще не выполняется.

Например, найти сумму первых 5 натуральных чисел можно с помощью следующих инструкций:


i: =1;
while i < 5 do
begin
S: =S+i;
i: =i+1;
end;


Repeat – оператор цикла с постусловием.


Формат:
Repeat <тело цикла>
until <условие>;

Здесь слова обозначают: Repeat – повторять; until – до тех пор; условие – логическое выражение.

Тело цикла может состоять из любого количества операторов, поэтому использовать составной оператор нет необходимости.

Работа оператора начинается с выполнения тела цикла, после чего вычисляется выражение, записанное в условии. Если значение выражения равно False, тело цикла выполняется и снова вычисляется значение выражения. Цикл завершается, если значение выражения, записанного в условии, становится равным True.

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


Пример, найти сумму первых 5 натуральных чисел можно с помощью следующих инструкций:


i: =1;
Repeat
S: =S+i;
i: =i+1;
until i > 5;


Оператор доступа (With)

При обращении к свойствам и методам объектов в Delphi используются составные имена. Имя объекта и название свойства разделяются точкой, например,

Form1.Label1.Caption.

Оператор доступа With позволяет избежать повторных ссылок на объект в записи кода программы.

Формат:
With <имя объекта> do <оператор>;

В операторе, расположенном после слова do, для обращения к составной части объекта можно не указывать имя этого объекта, которое уже задано после слова with.


Например, запись кода:

Forml.Label1.Left := Forml.Label1.Left +17;
Forml.Label1.Caption := ‘Привет!’;
Forml.Label1.Font.Color := clRed;

может быть сокращена:
With Forml.Label1 do
begin
Left := Left +17;
Caption := ‘Привет!’;
Font.Color := clRed;
end;

 

 


© Сибирская государственная геодезическая академия (СГГА), 2011