Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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




С помощью условного оператора и оператора выбора варианта реализуется операция ветвления алгоритма. С помощью этих операторов проверяется условие ветвления и, в зависимости от его результатов выбирается одно из возможных направлений дальнейших вычислений.

Условный оператор IF позволяет выбрать одно из двух направления расчёта в зависимости от некоторого условия, при этом одна из ветвей может отсутствовать. В качестве условия выбора используется значение логического выражения. Оно может быть простым или сложным. Сложные условия организуются при помощи логических операций AND, OR, NOT.

Формат оператора IF имеет вид:

if <выражение> then

<оператор1>

[else <оператор2>]

Примечание. Выражения в квадратных скобках могут отсутствовать. Вычисления выражения получается логическое значение типа Boolean. Если результатом является значение TRUE (Истина), то выполняется оператор1, следующий за служебным словом Then (тогда). Если же в результате выполнения получается значение FALSE (Ложь), то выполняется оператор2, следующий Else (иначе). Если часть условного оператора в квадратных скобках (со словом Else) отсутствует, то управление автоматически передается следующему оператору программы.

Условные операторы IF могут быть вложены друг в друга, количество вложений неограниченно. Следует отметить, что использование в операторе IF после служебного слова then второго оператора IF приводит с синтаксически неоднозначной конструкции вида:

if <выражение1> then

if <выражение2> then

<оператор1>

else

<оператор2>

Компилятор Турбо Паскаль разрешает подобную неоднозначность, интерпретируя этот фрагмент следующим образом:

if <выражение1> then

begin

if <выражение2> then

<оператор1>

else

<оператор2>

end;

То есть, служебное слово else всегда ассоциируется с ближайшим по тексту служебным словом if, которое еще не связано со служебным словом else.

Пример 1:

if X>Y then Если X>Y, то переменной Max

Max:=X присваивается значение Х,

еlse если нет, то значение Т

Max:=T;

 

Пример 2:

if X>0 then Если Х>0, то Y вычисляется как

Y:=Sqrt(X); квадратный корень из Х

 

Пример 3:

if Ch=1 then Если переменная Ch=1,

begin

X:=Sin(X); то X вычисляется как sinX

WriteLn(‘Sin(x)= ’,X); и выводится на экран,

end

else если нет (Ch≠1), то

begin

X:=Cos(X); X вычисляется как cosX и

WriteLn(‘Cos(x)= ’,X); выводится на экран

end;

Пример 4 Найти y=max(a,b,c), a,b,c – даны.

if а>b then Если a>b, то переменной max

max:=a присваивается значение a,

еlse если нет, то значение b. Далее вместо

max:=b; а и b используется наибольшая из них -max

if max>c then Если max>c, то переменной

y:=max y присваивается значение max,

еlse если нет, то значение с

y:=c;

Write(‘y= ’,y);

 

2 Оператор варианта CASE

Оператор Case (case – случай) производит ветвление программы на произвольное множество ветвей. Из этого множества либо выбирается единственная ветвь, отвечающая одному из заданных условий, либо ни одной, если ни одно из условий не выполняется.

Оператор варианта состоит из выражения (селектора) и списка операторов, каждому из которых предшествует одна или более констант (они называются константами выбора) или ключевое слово else. Селектор должен иметь порядковый тип данных. Строковый тип и длинный целый тип данных являются недопустимыми типами селектора. Все константы выбора должны быть уникальными и иметь порядковый тип данных, совместимый с типом селектора.

Формат оператора Case:

case <селектор> of

<константа_выбора1>: <оператор1>;

<константа_выбора2>: <оператор2>;

...

<константа_выбораN>: <операторN>;

[else <оператор>]

end;

Оператор Сase сравнивает значение селектора со всеми константами (или диапазонами) выбора и,в случае их выполняет следующий за константой оператор. Если такой константы выбора или такого диапазона выбора не существует и присутствует ветвь else, то выполнятся оператор, следующий за ключевым словом else. Если же ветвь else отсутствует, то никакой оператор конструкции Case не выполняется, а программа автоматически переходит к своему следующему оператору.

Пример 5:

case Ch of

‘A’..’Z’: WriteLn(‘Латинский алфавит’);

‘А’..’Я’: WriteLn(‘Русский алфавит’);

end;

В случае, когда переменная Ch является одной из A…Z, то на печать выводится "Латинский алфавит", а когда Ch является одной из A…Я, то на печать выводится "Русский алфавит".

 

Пример 6:

case I of

0, 2, 4, 6, 8: Writeln('Четная цифра');

1, 3, 5, 7, 9: Writeln('Нечетная цифра');

else

Writeln('Цифра не принадлежит диапазону 0..9!');

end;

Если переменная I равна 0, 2, 4, 6, 8, то выводится текст "Чётная цифра", если переменная I равна 1,3,5,7,9, то выводится текст "Нечётная цифра"

Примечание. Во всех примерах оператор end; означает завершение данного блока операторов, а не всей программы. Конец программы Pascal записывается оператором end. (end с точкой).

 

3 Контрольные вопросы

1 Назначение условного оператора и оператора варианта.

2 Формат и действие оператора IF.

3 Формат и действие оператора Case.

 

Задание

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...