Операторы ветвления в паскале
К операторам, позволяющим из нескольких возможных вариантов выполнения программы (ветвей) выбрать только один, относятсяif и case.
Т.е. эти операторы позволяют изменить естественный порядок выполнения операторов программы.
Формат:
if <условие> then < оператор 1 >
else <оператор 2> ;
Пример:
if a>=b then Max:=a else Max:=b;
В операторе if по обеим ветвям (then и else) может выполняться только один оператор!
При необходимости выполнения нескольких требуется использовать операторные скобки begin-end.
Пример задачи на операторы ветвления в паскале. Ввести два целых числа и вывести на экран наибольшее из них.
Идея решения: надо вывести на экран первое число, если оно больше второго, или второе, если оно больше первого.
Особенность: действия исполнителя зависят от некоторых условий (если … иначе …).
program qq;
var a, b, max: integer;
begin
writeln('Введите два целых числа');
read ( a, b );
if a > b then max:=a else max:=b;
writeln ('Наибольшее число ', max);
end.
Сложные условия
Сложное условие – это условие, состоящее из нескольких простых условий (отношений), связанных с помощью логических
операций:
•not – НЕ (отрицание, инверсия)
•and – И (логическое умножение, конъюнкция,
одновременное выполнение условий)
•or – ИЛИ (логическое сложение, дизъюнкция,
выполнение хотя бы одного из условий)
•xor – исключающее ИЛИ (выполнение только
одного из двух условий, но не обоих)
Простые условия (отношения)
< <= > >= = <>
Порядок выполнения (приоритет = старшинство)
•выражения в скобках
•not
•and
•or, xor
•<, <=, >, >=, =, <>
Особенность – каждое из простых условий обязательно заключать в скобки.
Оператор выбора case
Оператор case позволяет сделать выбор между несколькими вариантами.
Оператор варианта состоит
Øиз выражения, называемого селектором,
Øи списка операторов, каждый из которых отмечен константой того же типа, что и селектор.
Селектор должен относиться только к порядковому типу данных, но не к типу longint.
Селектор может быть переменной или выражением.
Список констант может задаваться как явным перечислением, так и интервалом или их объединением. Повторение констант не
допускается.
Тип переключателя и типы всех констант должны быть совместимыми.
Формат:
Case < выражение {селектор}> of
<список констант 1> : < оператор 1>;
. . .
< список констант K> : < оператор K>;
[else < оператор K+1> ]
end
Выполнение оператора case происходит следующим образом:
1)вычисляется значение селектора;
2)полученный результат проверяется на принадлежность к тому или иному списку констант;
3)если такой список найден, то дальнейшие проверки уже не производятся, а выполняется оператор, соответствующий
выбранной ветви, после чего управление передается оператору, следующему за ключевым словом end, которое закрывает всю
конструкцию case;
4)если подходящего списка констант нет, то выполняется оператор, стоящий за ключевым словом else; если else-ветви нет,
то не выполняется ничего.
В операторе ветвления case по всем ветвям может выполняться только один оператор!
При необходимости выполнения нескольких требуется использовать операторные скобки begin-end.
Пример:
case Index mod 4 of
0 : x:= y*y + 1;
1 : x:= y*y – 2*y;
2, 3 : x:= 0
end;
А теперь, после прочтения статьи, попробуйте написать какую-нибудь простенькую программу на паскале использующую операторы ветвления:)