Оператор if

Оператор позволяет организовать ветвление в программе.

Синтаксис оператора if:

if лог_выражение then оператор1 [else оператор2];

Если результатом выражения является значение False и присутствует ключевое слово else, то выполнятся оператор, следующий за ключевым словом else (оператор2). Если ключевое слово else отсутствует, то управление передаётся на следующий оператор, минуя оператор, следующий за ключевым словом then (оператор1).

Замечания:

§ Результат вычисления лог_выражение должен, иметь логический тип (boolean). Если результатом выражения является истинное значение (Тrue), то выполняется оператор, следующий за ключевым словом then (оператор1).

§ Следует обратить особое внимание на то, что после ключевых слов then и else согласно синтаксису может находиться только один оператор.

Рисунок 2 – Блок-схема оператора ветвления:
a) полная форма (с ветвью else); b) сокращённая форма (без ветви else)

В качестве примера использования оператора if приведём решение следующей задачи: Даны три числа. Найти и вывести максимальное из них и среднеарифметическое двух оставшихся.

Для трёх различных входных значений количество разветвлений алгоритма также равно трём. После ввода данных (рис. 3, блок 2) в блоке 3 проверяется условие максимальности значения в переменной а. Если условие верно, т. е. из трёх значений а является максимальным, то управление передаётся блокам 5 и 6. В противном случае остаётся два варианта: либо максимальным является значение в переменной b, либо – в переменной c. Блок 4 выполняет такую проверку и, в зависимости от результата, передаёт управление либо на блок 9 и далее на блок 10, либо на блоки 7 и 8.

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

Рисунок 3 – Блок-схема разветвлённого алгоритма

Реализация алгоритма в программе на языке Pascal:

program vetv;

Var

a,b,c:real;

sr:real;

Begin

writeln('введите три числа');

readln(a,b,c);

if (a>b) and (a>c) then

Begin

sr:=(b+c)/2;

writeln ('максимальное - ',a);

End

Else

if b>c then

Begin

sr:=(a+c)/2;

writeln ('максимальное - ',b);

End

Else

Begin

sr:=(a+b)/2;

writeln ('максимальное - ',c);

end;

writeln('среднеарифметическое - ', sr);

End.

Следует обратить внимание на то, что два оператора, находящиеся в ветке else или then, должны быть заключены в составной оператор (begin...end).

Оператор варианта (case)

Для организации каскада ветвлений может быть использован оператор выбора.

Синтаксис оператора case:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: