Добавил:
sofyvits@ya.ru на позитиве Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
470
Добавлен:
10.01.2016
Размер:
919.04 Кб
Скачать

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

Составной оператор– это последовательность произвольных операторов программы, заключенная в операторные скобки – зарезервированные слова begin ... end. Операторы разделяются точкой с запятой ;.

Исполняемая часть программы является составным оператором такого рода.

Составной оператор служит, в первую очередь, для того, чтобы несколько операторов синтаксически объединить в один. Это часто требуется там, где нужно выполнить несколько операторов, когда допустим лишь один. Понятие составного оператора позволяет с помощью команд begin и end объединить несколько операторов и рассматривать их с точки зрения синтаксиса как один оператор. На характер операторов, входящих в составной оператор, не накладывается никаких ограничений. Среди них могут быть и другие составные операторы.

begin

.........

begin

............

begin

............

............

............

end;

............

end;

............

end;

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

begin begin

read(i); read(i);

write(i); write(i)

end. end.

Обе записи верны, поскольку можно считать, что между write(i); и end находится пустой оператор. Пустой оператор– оператор, который не выполняет никаких операций и ничего не изменяет в данных и в программе. Пустому оператору соответствует отсутствие записи на том месте, где по правилам должен быть какой-нибудь оператор. После него можно ставить символ точки с запятой, например:

A := B;

R := 2;

;

K := 7.2;

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

А, В, С, Д.

Если эти элементы объединить в одну группу, заключив их в круглые скобки (А, В, С, Д), то запятая ставится опять-таки между элементами: после открывающей и перед закрывающей скобками запятая не указывается. Если эта группа элементов входит в состав другой группы, то запятая ставится и между группами, например:

((А, В, С, Д), (К, М), Е, (Х, У))

Подобная система введена и в языке Паскаль, только в нем роль круглых скобок выполняют операторные скобки BEGIN – END, вместо запятой ставится точка с запятой, а вместо элементов – операторы.

Условный оператор

Условный оператор позволяет проверить некоторое условие и в зависимости от результата выполнить то или иное действие. С помощью этого оператора программируются алгоритмы разветвляющейся структуры.

Структура условного оператора:

IF <условие> THEN <оператор1> ELSE <оператор2>,

где IF, THEN, ELSE – зарезервированные слова (если, то, иначе);

<условие> – произвольное выражение логического типа;

<оператор1>,<оператор2> – любые операторы языка.

Условный оператор работает по следующему алгоритму. Вначале вычисляется условное выражение <условие>. Если результат есть TRUE (истина), то выполняется <оператор1>, а <оператор2> пропускается; если результат есть FALSE (ложь), наоборот, <оператор1> пропускается, а выполняется <оператор2>. Например:

var

x, y, max : real;

.................

if x > max

then y := max

else

y := x;

Этот условный оператор читается: если условие x > max выполняется, то y := max, иначе y := x.

Часть ELSE <оператор2>условного оператораможет быть опущена. Тогда при значении TRUE условного выражения выполняется <оператор1>, в противном случае этот оператор пропускается.

Если требуется выполнить после then или else несколько операторов, они обрамляются командами begin и end, образуя тем самым составной оператор. Перед else никогда не ставится точка с запятой (поскольку это еще не конец оператора if).

Задача. Пусть задана функция

Y=0, если x<=0

Y=X3, если x>0

Написать программу вычисления значения Y по значению X.

Программа может выглядеть так:

program task2; {заголовок программы}

var x, y : real; {описание переменных}

begin {начало исполняемой части}

readln(x);

if x <= 0 then y:= 0 else y := x*x*x;

write(y)

end. { конец исполняемой части }

<Оператор1> и <Оператор2> по определению любой оператор языка, следовательно и условный.

Задача. Пусть значение Y зависит от значения X.

Сocтавить программу вычисления значения Y по значению X.

Программа

program task;

var x, y : real;

begin

read(x);

if x < 2 then

y := x

else

if x < 3 then

y := 2

else

y := –x+5;

write(y)

end.

Если удовлетворено условие х < 2, то y получит значение, равное значению х, это значение затем будет выведено. Если условие х < 2 не удовлетворяется, то значение y будет определено выполнением условного оператора

if x < 3 then y := 2 else y := –x + 5

Если else отсутствует, а после оператора then вновь стоит оператор if, то возникает неоднозначность трактовки условий. Эта неоднозначность решается следующим образом: любая встретившаяся часть else соответствует ближайшей к ней “сверху” части then условного оператора. Приведенное высказывание понимается так

if <условие1> then

begin

if < условие2> then

< оператор1>

else

< оператор2>

end

Задача. Написать программу вычисления функции Z

Программа

program task4;

var X, Z : real;

begin

readln (x);

if x < 1 then

Z := sin(x)

else

if x < 2 then

Z := cos(x)

else

Z := cos(x)/2;

write (‘Z= ‘, Z:5:3)

end.

Для того чтобы выделить три ветви решения, достаточно двух условных операторов if x< 1 then Z := sin(x) else <условный оператор 2>.

<Условный оператор 2>: if x<2 then Z := cos(x) else Z:=sin(x)/2.

Следует обратить внимание на оператор (будем условно называть так процедуру в этом случае) вывода write. В операторе write (‘Z= ‘, Z:5:3) дана команда на вывод константы ‘Z= ‘ и переменной Z с форматом вывода: пять позиций на все число, из них три на дробную часть.

Соседние файлы в папке Лекции Информатика и программирование