Цель работы: уметь программировать ветвления с помощью условного оператора IF и оператора выбора Case.
Алгоритм называется разветвляющимся, если он содержит несколько ветвей, отличающихся друг от друга содержанием вычислений. Выход вычислительного процесса на ту или иную ветвь алгоритма определяется исходными данными задачи в зависимости от значения условия, которое представляет собой логическое выражение. Ветвление изменяет направление вычислительного процесса. Развилка реализуется условным оператором IF условие THEN оператор1 ELSE оператор2.
Пример 1. Вычислите корни квадратного уравнения ax2+bx+c.
Количество
корней уравнения и способ их вычисления зависит от дискриминанта, который
находится по формуле D=b2-4ac. Если D положительный, тогда
существуют 2 корня
. Если D =0, тогда
существует 1 корень
. Выбор способа
нахождения корней уравнения осуществляется условным оператором в зависимости от
значения дискриминанта D. На Рис.13 изображен алгоритм вычисления корней
квадратного уравнения, по которому написана программа.
Program Quad;
var
A,B,C: real; {переменные для хранения коэффициентов}
D, x,x1,x2: real; { переменные дискриминанта и корней}
begin
writeln (' Ввод коэффициентов'); writeln (A,B,C);
D:=Sgr(B) -4*A*C; { вычисление дискриминанта}
if D<0 then writeln('Уравнение не имеет вещественных корней ')
else if D=0 then begin x:=-B / (2*A); {вычисление корня}
{вывод корней} writeln (‘Уравнения имеет один корень x=’,x:6:2);
end {перед ELSE знак ; не ставится}
else begin
x1:= (-B+Sqrt(D)) /(2*A); {вычисление корней}
x2:=(-B-Sqrt(D))/(2*A);
writeln ('Уравнения два корня: x1=', x1:6:2, ' x2=', x2:6:2); {вывод корней}
end;
end.
![]() |
Рис.13. Блок –схема алгоритма нахождения корней квадратного уравнения
Пример 2. Определите номер квартала по введенному номеру месяца.
Выбор осуществляется оператором CASE селектором Dig, значения которого определяются скалярными типами перечисление и диапазон.
Program Digit;
Var Dig: integer;
begin
writeln (‘ Ввод номера месяца ‘); readln (Dig); {ввод селектора месяца }
case Dig of {выбор селектором номера месяца Dig }
1, 2, 3 : writeln(‘ первый квартал’);
4, 5, 6 : writeln(‘ второй квартал’);
7..9 : writeln(‘ третий квартал’);
{ диапазон 7..9 - интервал чисел от 7 до 9; тоже самое, что перечисление 7,8,9.}
10..12: writeln(‘ четвертый канал’);
end;
end.
Пример 3. Разработать программу для вычисления вида:
если
program mypr;
var
a,b,d:real;
begin
writeln(‘Введите исходные данные a,b= ‘);
readln(a,b);
if a*b<0 then d:=Ln(SQR(a*b)) {вычисляется d для отрицательного a*b }
else if a*b>0 then d:=Ln(a*b) {вычисляется d для положительного a*b }
else d:=0; {вычисляется d для нулевого произведения a*b}
writeln(‘ D = ‘,d:10:4); {вывод значения функции d=f(a,b) }
end;
end.
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.