Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции информатика.doc
Скачиваний:
60
Добавлен:
11.04.2015
Размер:
2.47 Mб
Скачать

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

Реализует алгоритмическую конструкцию «развилка».

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

if <условие> then <оператор 1> else <оператор 2>;

Условие должно иметь логический тип. Если значение условия равно true, то выполняется Оператор 1, если условие равно false, то Оператор 2. Перед else точка с запятой не ставится.

if a>b then max:=a else max:=b;

Например, если a=3, b=7, то выполнится оператор max:=a; в противном случае, т.е.

если a=7, b=3, то выполнится оператор max:=b; .

Часть условного оператора, начинающаяся со слова else, может отсутствовать. Тогда, если условие истинно, выполняется оператор1, если ложно, то выполняется оператор, следующий за условным.

if x=0 then writeln(‘ошибка’);

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

if a>b then

begin max:=a; min:=b; end

else begin min:=a; max:=b; end;

Например, если a=3, b=7, то выполнятся операторы max:=a; min:=b; в противном случае, т.е.

если a=7, b=3, то выполнятся операторы min:=a; max:=b; .

Для схематической записи алгоритмов решения задач существует язык блок-схем. Приведем основные элементы блок-схемы:

Действие

Блок

Начало процесса

Ввод данных

Присваивание

Проверка условия

Заголовок цикла

Вывод результатов

Конец процесса

Блок-схема нахождения корней квадратного уравнения

Схемы условного оператора:

полного сокращенного

вложенного:

if <условие 1> then <оператор 1>

else if <условие 2> then <оператор 2>

else <оператор 3>

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

if <условие 2> then <оператор 1>

else <оператор 2>;

Условные операторы могут быть вложенными друг в друга. В этом случае else связывается с ближайшим к нему if:

if (a>b) and (a>c) then max:=a

else if (b>c) then max:=b

else max:=c;

Например, если a=7, b=2, c=4, то выполнится оператор max:=a; , т.к. (a>b) and (a>c)=True (истина);

в противном случае, т.е. если (a>b) and (a>c)=False (ложь), выполнится оператор

if (b>c) then max:=b

else max:=c;

если, например, a=2, b=7, c=4, то выполнится оператор max:=b;

если, например, a=2, b=4, c=7, то выполнится оператор max:=с;.

Пример:

var i,j: integer;

ok: boolean;

begin

writeln(‘Введите i и j > 0’);

readln(i,j);

ok:=(i>0) and (j>0);

if (not ok) then begin

writeln(‘Неверный ввод’);

halt;

end;

end.