Вложенные операторы условия (If then else If then else)

Если <оператор1> или <оператор2> является условным оператором, то такая конструкция называется вложенным условным оператором.

Пример №1: Расчет функции

Вложенные операторы условия (If then else If then else) - student2.ru

Program yslovie;

Var x,y: real;

Begin

Write (‘x=’);

Readln (x);

If x<0 then y:=x+3

else

If x>4 then y:=exp(x-6)

else y:=sqr(x);

Writeln (‘y‘,x:8:2);

Readln ;

End.

Пример №2: Расчет функции

Вложенные операторы условия (If then else If then else) - student2.ru

Programyslovie;

Var x,y: real;

Begin

Write (‘x=’);

Readln (x);

If x<-1 then y:=1/x^2

Else

If x<=2 then y:=x^2

else y:=4;

Writeln (‘y‘,x:8:2);

Readln ;

End.

Практикум. Вычисление корней квадратного уравнения.

Составим программу для нахождения корней квадратного уравнения AX2 + ВХ + С= 0.

1.Уравнение является квадратнымтолько при А ¹ 0.

Тогда оно имеет 2 корня, которые в некоторых случаях могут быть равными.

2. При А=0 уравнение переходит в линейное.

3. При А=В=0 уравнение вырождается, то есть вообще не содержит неизвестного. (отсутствует член с X).

Для нахождения корней квадратного уравнения необходимо исследовать знак дискри­минанта уравнения D.

1. Если D>0, то имеются два корня,

2. Если же D<0, то действи­тельных корней нет.

3. Учитывая сказанное, построим алгоритм решения в виде блок-схемы с ветвлениями (рис. 65.1).

Вложенные операторы условия (If then else If then else) - student2.ru

Программа может иметь следующий вид: Вложенные операторы условия (If then else If then else) - student2.ru

Наберите программу и проверьте ее работу при различных наборах коэф­фициентов (а, b, с), например, (0, 1, 2); (0, 0, 5); (1, 1, -6) и т.д.

Задачи и упражнения

Составить программу нахождения действительных корней квадратного уравнения

Ax2 +Bx2 - c

Корни квадратного уравнения находятся по формуле

Вложенные операторы условия (If then else If then else) - student2.ru

при этом могут возникнуть три случая:

1. D=b2-4ac>0, тогда оба корня уравнения действительны и различны, т.е.,

Вложенные операторы условия (If then else If then else) - student2.ru Вложенные операторы условия (If then else If then else) - student2.ru

2. D=b2-4ac=0, тогда оба корня уравнения действительны и равны между собой, т.е.,

Вложенные операторы условия (If then else If then else) - student2.ru

3. D=b2-4ac<0, тогда уравнение не имеет действительных корней

Вложенные операторы условия (If then else If then else) - student2.ru

Program discriminant;

Uses CRT;

Var a,b, c, x1, x2, D,: real;

Begin

CLRSCR;

Write (‘введите коэффициент при старшей степени’);

Readln (a);

Write (‘введите коэффициент при младшей степени степени’);

Readln (b);

Write (‘введите свободный член’);

Readln (с);

If a<>0 then

Begin

D:=sqr(b)-4*a*c;

If D<0 then

writeln (‘нет действительных корней, D<0’);

else

Begin

x1:=sqr((-b)+scrt(D))/(2*a);

x2:=sqr((-b)-scrt(D))/(2*a);

writeln (‘x1=’,x1:6:2, x2=’,x2:6:2);

end;

end;

If b<>0 then

writeln (‘x=’, -c/b:6:2);

else

If c<>0 then

writeln (‘нет решения’);

else

writeln (‘бесконеч. множ. решений’);

End.

Операторы выбора case

Условный оператор if ...then обеспечивает ветвление только с двумя ва­риантами выбора.

Если нужно описать действия, которые связаны с множествен­ными ветвлениями, то необходимо использовать более мощный оператор - опера­тор выбора.

Оператор состоит:

1. из выражения (селектора)

2. и списка вариантов.

Формат записи оператора выбора:

Вложенные операторы условия (If then else If then else) - student2.ru

Оператор служит для выбора одного из помеченных вариантов действия (операторов), в зависимости от значения "параметра". Оператор имеет вид:

Из "списка помеченных операторов" выполняется оператор с меткой, включающей значение "параметра", иначе оператор после слова Else. Конструкция Else "оператор" может отсутствовать.

Схема работы оператора case такова:

1. Сначала вычисляется значение селек­тора, следующего за словом case.

2. Затем выполняется оператор с константой вы­бора равной значению селектора.

3. Если ни одна из констант не равна текущему значению селектора, то исполняется оператор, стоящий после слова else.

Часть else <оператор> в тексте программы можно опустить. Тогда, если среди констант селектора отсутствует нужное значение, выполнение оператора case ни к чему не приведет.

Используем оператор case для вычисления функции

Y = (1 + Х + Х2) , в которой N принимает целые значения (1, 2, 3).

Вложенные операторы условия (If then else If then else) - student2.ru

В этом примере на экран выводится запрос на ввод значения аргумента Х и показателя степени N.

Введенный показатель используется затем как значение селектора.

В зависимости от значения селектора реализуется тот или иной вариант расчета функции Х1:

- если N=1 - то вариант, помеченный как 1,

- если N=2 - то вариант с меткой 2 и т.д.

- Если в качестве N в начале работы программы будет введено число, не значащееся среди констант выбора (например, 9), то на экран будет выведено сообщение «Нет данных».

Мы рассмотрели пример, когда каждому оператору в списке case предшест­вует только одна константа выбора (1, 2 или 3).

Однако в общем случае перед каждым оператором может быть список констант (<список 1>, <список 2> в записи формата оператора case).

Кроме того, может быть указан интервал изме­нения констант. Такой интервал обозначается двумя точками «..».

Приведем простой пример селектора, содержащего списки констант выбора.

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

Вложенные операторы условия (If then else If then else) - student2.ru

Вложенные операторы условия (If then else If then else) - student2.ru

В качестве констант выбора могут использоваться:

1. целые числа (integer),

2. символы (char),

3. логические значения (boolean),

4. а также пользовательский тип.

Пример операторов для определения порядка целого числа N от 0 до 999:

Case N of

0..9: writeln('однозначное');

10..99: writeln('двузначное');

Writeln('трехзначное')

else writeln('Число "N" не входит в указанный диапазон') end;

Приведем пример программы случайного предсказания одного из десяти вариантов ближайшего будущего с вероятностью 1/20, в остальных случаях - вы "неудачник".

PROGRAM FUTURE;

var N: word;

Begin

writeln('ПРЕДСКАЗАНИЕ БУДУЩЕГО');

Randomize; N:=Random(20)+1;{ N - случайное число от 1 до 20 }

writeln; write('Вас ожидает _');

Case N of

1: writeln('счастье'); 6: writeln('здоровье');

2: writeln('пятерка'); 7: writeln('деньги');

3: writeln('дорога'); 8: writeln('любовь');

4: writeln('двойка'); 9: writeln('встреча');

Наши рекомендации