Вложенные и последовательные условные операторы
вложенное ветвление:
if логическое условие then оператор 1
else if логическое условие then оператор 2
else оператор 3;
последовательное ветвление:
if логическое условие then оператор 1
else оператор 2;
if логическое условие then оператор 3
else оператор 4;
Часто одну и ту же задачу можно реализовать разными способами: с помощью вложенного ветвления и с помощью последовательного ветвления.
Например, в задаче: Дано x. Найти F по формуле:
1 способ: фрагмент программы с вложенным ветвлением:
if x<=0 then F:=5*x*x
else if x<=5 then F:=1/x
else F:=4*x+7;
2 способ: фрагмент программы с последовательным ветвлением:
if x<=0 then F:=5*x*x;
if (x>0) and (x<=5) then F:=1/x;
if x>5 then F:=4*x+7;
Обратите внимание как изменились условия!
Задание 1. Чему равен F(x) после выполнения следующих операторов?
для x=4; 5; 3; 2;
if x>=3 then if x<5 then F:=0
else F:=x*x
else F:=4+x
Чему равен R после выполнения следующих операторов?
R:= -10; 0; 5
if R<0 then R:=R*R;
if R=0 then R:=R+10;
if R>0 then R:=R-100;
Задание 2. Составить программу вычисления стоимости покупки с учетом скидки. Скидка в 3% предоставляется, если сумма покупки больше 500 руб, в 5% - если сумма больше 1000 руб.
Задание 3. Составьте программу для решения следующей задачи.
Введите с клавиатуры три числа: А, В, С. Если все они четные, то найдите и выведите на экран их сумму. Если все они нечетные и A>B>C, то определите и выведите значения наибольшего и наименьшего из чисел. Иначе, выведите числа без изменения.
Фрагмент программы:
if (a mod 2 = 0) and (b mod 2 = 0) and (c mod 2 = 0) then begin S:=a+b+c;
writeln('сумма равна ', S);
end;
if (a mod 2 <> 0) and (b mod 2 <> 0) and (c mod 2 <> 0) and (a>b) and (b>c)
then begin writeln('наибольшее число ', A);
writeln('наименьшее число ', C);
end
else writeln('a= ',a,' b= ', b, ' c= ',c);
Задание 4. Составьте программу для решения следующей задачи. Дано четырехзначное число. Определить делится ли это число на все свои цифры.