Условные операторы являются неотъемлемой частью любого языка программирования. Условные конструкции используются тогда, когда нужно выполнить действие в зависимости от какого-либо условия. В Паскале предусмотрены два вида условных конструкций.
1)Конструкция if .. then .. else.
Это наиболее часто используемая конструкция. Она имеет следующий синтаксис:
Code
If (логическое выражение) then
<оператор>
Else if (логическое выражение) then
<оператор>
Else
<оператор>;
Если логическое выражение принимает значение true, то оператор выполняется, иначе будет проверяться следующее условие. Если истинных выражений не было, то выполнится оператор, стоящий за итоговым Else. В случае его отсутствия не выполнится ни один оператор.
Обратите внимание, что перед зарезервированным словом Else никогда не ставится точка с запятой!
На месте оператора может находиться и составной оператор, для этого его нужно заключить его в операторские скобки begin .. end.
Code
If a=5 then
Begin
A:=7;
Exit;
End;
На месте логического выражения может стоять любое логическое выражение, в том числе и составное.
Code
If (a=5) and (odd(c)) or (a+c=9) then
Exit;
По умолчанию в ТП не используются «быстрые булевы операции», т.е. генерируется код для вычисления сразу всего логического выражения. Использовать так называемые «быстрые булевы операции» нужно при условии, что у вас очень много условий (больше 8) и вы уверены, что скорее всего одно из первых выражений будет ложным или если для вычисления одного условия требуется много системных ресурсов. Включаются они директивой {$B-}.
2)Конструкция case .. of.
Данная конструкция имеет следующий синтаксис:
Code
Case <порядковая переменная> of
Значение1:
<оператор>;
Значение2:
<оператор>
Else
<оператор>;
Это эквивалентно выражению
Code
If <порядковая переменная> = Значение1 then
<оператор>
Else if <порядковая переменная> = Значение2 then
<оператор>
Else
<оператор>;
Используется для сокращения записи, например при опросе мыши или клавиатуры. Задачи на закрепление материала.
1)Даны 3 переменные A,B,C типа byte. Поместите в переменную Result(тип тот же) наибольшее из них.
2)Максимально упростите код:
Code
If (not(A<=0) and not (B>=0)) then
n:=A-((A shl 6) shr 6)
else if(not A and B<>0) then
n:=(5*A*B) mod 4
else
n:=A and $3f;
Ответы:
1)If (A>B) and (A>C) then
Result:=A
Else if (B>A) and (B>C) then
Result:=B
Else
Result:=C;
2)n:=A and 63;