Базовая структура ВЕТВЛЕНИЕ
Такая форма организации действий, при которой в зависимости от выполнения или невыполнения некоторого условия совершается либо одна, либо другая последовательность действий. Каждый из путей ведет к общему выходу. Структура ветвление существует в четырёх основных вариантах
§ если – то;
§ если – то – иначе;
Оператор ВЕТВЛЕНИЯ (условный оператор)
Оператор ветвления (условный оператор) имеет следующий формат:
If < логическое выражение > then < оператор 1 > else < оператор 2 >;
Здесь if, then и else — служебные слова (если, то, иначе).
Условный оператор работает следующим образом:
1) вычисляется логическое выражение;
2) если оно имеет значение true (истина), то выполняется <оператор 1>;
3) если имеет значение false (ложь), то выполняется <оператор 2>.
Ветвь else может быть опущена.
Если в качестве оператора должна выполниться серия операторов, то они заключаются в операторные скобки Begin – End;
Неполная форма оператора ветвления:
If < логическое выражение > then < оператор >;
Пример. Вычислить квадратные корни из двух чисел x и y.
Var x, y: real;
Begin
write (‘введите значения x, y ’);
read(x,y);
if (x>0) and (y>0) then begin x:=sqrt(x); y:=sqrt(y);
writeln(‘x= ‘, x, ‘y= ‘, y);
end
else writeln(‘корни извлечь нельзя’);
end.
Внутри условного оператора точка с запятой не ставится. После операторов then и else выполняется только один оператор. Если необходимо выполнить 2 и более, используют операторные скобки begin…end. Эта конструкция называется составным оператором.
Пример. Найти max – максимальную из величин A, B, C.
If A>B then if A>C then max:=A Else max:=C
Else if B>C then max:=B Else max:=C;
В данном примере в каждой из двух ветвей используется условный оператор повторно. Такое многократное вложение условных операторов затрудняет чтение программы, поэтому желательно выбирать, когда возможно, варианты с меньшей глубиной вложения, даже если это увеличивает время программы. Альтернативный вариант решения задачи в последнем примере может выглядеть, например, так.
max:=a;
min:=a;
if max<b then max:=b;
if max<c then max:=c;
if min>b then min:=b;
if min>c then min:=c;
или так
If (C>A) and (C>B) then max:=C;
If (B>A) and (B>=C) then max:=B;
If (A>=B) and (A>=C) then max:=A;
Задания:
1. Из двух данных вещественных чисел выбрать наибольшее.
2. Большее из двух данных вещественных чисел возвести в квадрат, а меньшее – в куб.
3. Написать программу, проверяющую, принадлежит ли число, введенное с клавиатуры, интервалу [0,5].
4. Написать программу решения квадратного уравнения
ах2 + bх + с = 0.
5. Даны целые числа а, b, с. Если а b c, то все числа заменить их квадратами, если а > b > c, то каждое число заменить меньшим из них, в противном случае сменить знак каждого числа.
6. Дано двузначное число. Определить:
а) является ли сумма его цифр двузначным числом:
б) больше ли числа а сумма его цифр.
7. Дано двузначное число. Определить:
а) кратна ли трем сумма его цифр:
б) кратна ли сумма его цифр числу а.
8. Дано трехзначное число. Выяснить, является ли оно палиндромом («перевертышем»), т. е. таким числом, десятичная запись которого читается одинаково слева направо и справа налево.
9. Даны три числа. Написать программу для подсчета количества чисел, равных нулю.
10. Вывести на экран номер четверти, которой принадлежит точка с координатами (х,у), при условии, что х≠0 и у≠0.