Оператор условного перехода IFв программах представляется в одном из двух форматов:
IFлогическое выражение THEN1 блок инструкций
ELSE2 блок инструкций;
или
IFлогическое выражение THEN1 блок инструкций; .
Здесь IF, THEN и ELSE- ключевые слова; логическое выражение - оператор сравнения или сложное логическое выражение; блок инструкций (1 и 2) – любые исполняемые операторы языка или блоки операторов, заключенные в операторные скобки (BEGIN ... END).
При выполнении условного оператора IF вначале анализируется результат логического выражения и в зависимости от его значения управление передается одному из операторов (блоку операторов), следующему за ключевым словом THEN или ELSE. Если значение результата TRUE «истина», то выполняется оператор (блок операторов), следующий за ключевым словом THEN. В противном случае (значение результата FALSE «ложь») выполняется оператор (блок операторов), следующий за ключевым словом ELSE. Далее в любом случае выполняется оператор, следующий в программе непосредственно за оператором IF. Ниже приведен фрагмент программы, поясняющий действие рассматриваемого оператора:
IFА <= ВTHEND := 2*DELSED := ABS(D);
В укороченном операторе IF отсутствует ключевое слово ELSE и блок инструкций, следующий за ним. Действия такой конструкции аналогичны рассмотренной выше. Если значение результата логического выражения TRUE, то выполняется оператор (блок операторов), следующий за ключевым словом THEN. При значении результата FALSE блок инструкций – 1 не выполняется, а сразу же выполняется блок инструкций, непосредственно следующий за оператором IF. Пример использования усеченного логического оператора IF :
IF А <= В THEN BEGIN D := 2*D; GOTO 10 END;
В последнем фрагменте пришлось после THEN вводить не один оператор, а так называемый составной оператор(блок операторов), который заключен в операторные скобкиBEGIN...END;Формат такого составного оператора имеет вид:
BEGIN
1 оператор;
2 оператор;
N оператор
END;
В операторе условного перехода любой из операторов блоков инструкций, в свою очередь, может быть оператором условного перехода, образуя так называемую вложенную конструкцию операторов IF. Создавая подобную конструкцию, следует руководствоваться принятым в Паскале соглашением о том, что инструкция ELSE всегда относится к ближайшему предшествующему IF. С учетом этого правила вложенная конструкция IF должна иметь следующий вид:
IF1логическое выражениеTHEN1 блок инструкций
ELSE IF 2 логическое выражение
THEN2блок инструкций
ELSE 3 блок инструкций.
Пример 4.1.Определить значение функции У(х).
Program Project1; //заголовок программы
var x,y: real; //раздел описания переменных
begin //начало раздела операторов
writeln('Введите значение х'); //вывод текста на экран
write('х=');
readln(х); // ввод значения x
if х < 0.25 then y := sqrt(abs(x+35+exp(x-1)))
else y := x + sqr(sin(2.6*x));
writeln('при x = ',x : 6 : 2 , ' y = ', y : 6 : 2); //вывод результата
readln; //задержка экрана
end.
Пример 4.2.Рассчитать значение функции У(х), значение х вводится с клавиатуры. При вводе значения х, для которого функция не определена, должно выводиться сообщение «Функция не определена».
Program Project2; //заголовок программы
var x,y: real; //раздел описания переменных
begin //начало раздела операторов
writeln('Введите значение х'); //вывод текста на экран
write(‘х=’);
readln(х); // ввод значения x
//1 логическое условие
if х < 1 then y := sin(2*x+4.2)/cos(2*x+4.2)-2*x else
//2 логическое условие
if (2<=x) and (x<=5) then y := sin(x)+sqrt(6*x) else
//3 логическое условие
if x>7 then y:= 3.56+(2+x)/(1+sqrt(x)) else
begin writeln('При х=', х, 'функция не определена');
readln;
exit;
end;
writeln('при x = ',x : 6: 3, ' y = ', y : 6 : 2); //вывод результата
readln; //задержка экрана
end.
Варианты заданий из табл. 6 (2 задания).
Рассчитать значение функции У(х). Значение аргумента вводится с клавиатуры. При вводе значения х, для которого функция не определена, должно выводиться сообщение «Функция не определена».
Таблица 6
1.1
1.2
2.1
2.2
3.1
3.2
4.1
4.2
5.1
5.2
6.1
6.2
7.1
7.2
8.1
8.2
9.1
9.2
10.1
10.2
11.1
11.2
12.1
12.2
13.1
13.2
14.1
14.2
15.1
15.2
Контрольные вопросы
1. Что такое алгоритм с ветвлением?
2. Как записывается условный оператор (оператор ветвления) в Паскале?
3. Что такое полная и сокращенная записи условного оператора?
4. Что используется в качестве условий в операторе ветвления?
5. Какие знаки отношений можно использовать при составлении условий?
6. Что такое составное условие?
7. Каковы правила записи составных условий?
8. Какие вы знаете логические операции?
9. Какие действуют правила старшинства логических операций?
10. Что располагается после служебных слов THENи ELSE?
11. Что такое составной оператор? Какую структуру он имеет?
12. B каких случаях используется составной оператор?