..

Сайт города Попасная.
 

 

 

Интернет издания:

ПОПАСНЯНСКАЯ ПРАВДА

 



 

 

 

3.3. Составной оператор

Последовательность операторов может быть объединена в группу, рассматриваемую как один оператор или блок. Это выполняется с помощью уже известных нам зарезервированных слов Begin и End.

Begin
Оператор1;
Oператор2;
.
.
ОператорN;
End;

Составной оператор используется в тех случаях, когда по правилам языка допускается использовать только один оператор, а требуется выполнить несколько действий, например, в условном операторе. Рассмотрим программу, находящую корни квадратного уравнения Ах*x+Вх+С=0 по введенным коэффициентам А, В и С. Известно, что при удовлетворении условия неотрицательности дискриминанта: В*B-4АС>0 это уравнение имеет два корня, вычисляемых по формуле: x1,x2=(-B+-sqrl(B*B–4AC))/2A.

Программа 3.2.

Var a,b,o,d,xl,x2:Real;
Begin
Write('Введите коэффициенты А,В,С; А не равно 0 ');
Readln(a,b,с); If a=0 Then
Begin
Writeln ('Коэффициент А не должен быть равен О');
Halt;
End;
d:=sqr(b)-4*a*c;
If d>=0 Then
Begin
xl:=(-b+sqrt(d))/2/a;
x2:=(-b-sqrt(d))/2/a;
Writeln('Корни уравнения: ',xl:6:2,x2:6:2);
End;
Else Writeln('Уравнение не имеет решений');
End.

В программе 3.2 после ввода коэффициентов мы проверяем, не равен ли нулю первый их них. Если это так, то уравнение не является квадратным и коэффициенты введены неверно. В таком случае мы должны вывести сообщение об ошибке и завершить выполнение программы. Эти действия выполняются неполным условным оператором. Вывод сообщения и вызов процедуры Halt объединены в один составной оператор; назначение процедуры Halt состоит в завершении программы и передаче управления DOS. Можно не обращаться к этой процедуре, а включить последующие операторы в состав части Else первого условного оператора, если этот оператор из неполной формы преобразовать в полную форму. Далее выполняется проверка на неотрицательность дискриминанта, и, в зависимости от ее результата, вычисляются корни или выводится диагностическое сообщение. Вычисления и вывод корней также объединены в один блок составным оператором. Формально весь раздел операторов состоит из единственного составного оператора.

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

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

Case селектор Of
метка1:Onepaтop1;
метка2:Oператор2;
.
.
меткаN:OnepaтoрN;
Else Операторы_без_метки;
End;

Слова Case, Of, Else и End являются зарезервированными. Все метки - метка1, метка2, ... меткаN - являются константами того же типа, что и селектор. Исполнение оператора выбора начинается с вычисления значения селектора. Выполняется тот оператор (возможно, составной), значение метки которого совпадает с вычисленным значением селектора. Две одинаковые метки в одном операторе выбора использовать нельзя. Если же вычисленное значение не совпадает ни с одной из меток, то выполняется группа операторов, расположенных после слова Else. В качестве селектора можно использовать выражение только порядкового типа. Если выбор осуществляется целочисленными константами, в метках разрешается применять значения только в пределах типа Integer. Если оператор должен выполняться при нескольких значениях меток, их можно перечислить через запятую в виде списка, в виде диапазона или в их комбинации. Ниже приведена программа, определяющая, какое число из диапазона от 2 до 5 введено - четное или нечетное. Для чисел, выходящих за границы диапазона, выводится диагностическое сообщение.

Программа 3.3.

Var ruShortlnt;
Begin
Write('Введите число в диапазоне от 2 до 5 ');
Readln(n); Case n Of
3,5: Writeln('Bbi ввели нечетное число');
2,4: Writeln('Вы ввели четное число1);
Else Writeln('Число за пределами диапазона');
End;
End.

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

Case n Of
3,5: Write('Вы ввели нечетное число');
2,4: Write('Вы ввели четное число');
End;

и, если n не равно 2, 3, 4 или 5, не будет выполнен ни один из операторов, входящих в состав оператора выбора. Такой оператор представляет собой неполную разновидность оператора выбора.

Программа 3.4.

Var n:Integer;
Begin
Write('Введите число в диапазоне от -200 до 200 ');
Readln(n); Case n Of
-200 ..-6: Wrlteln(O);
-5..-1: Writeln(n+5);
0..3: Writeln(5-n);
4..200: Writeln(l);
Else Writeln('Число за пределами диапазона1);
End;
End.

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

Задания:

1. Составьте программу, аналогичную 3.4, в которой х является вещественным числом.

 

Вернуться к оглавлению

 
Popasnaya.com.ua Web-Source 2003 - 2004 / babelyuk jr / All Rights Reserved