Оператор ветвления на Паскале
В языке Паскаль имеется оператор ветвления. Другое его название - условный оператор. Формат полного оператора ветвления следующий:
if <логическое выражение> then <оператор1> else <оператор2> ;
Здесь if - "если", then - "то", else - "иначе".
Можно также использовать не полную форму ветвления:
if <логическое выражение> then <оператор1>;
Можно также использовать не полную форму ветвления:
if <логическое выражение> then <оператор1>;
! Признаком завершения алгоритма ветвления является "точка с запятой". Перед словами then и else знаки препинания не ставятся.
При составлении условий в ветвящихся алгоритмах используются операции отношений и логические операции.
Примеры реализации программ имеющие ветвления.
- Простые условия.
1-й вариант | 2-й вариант |
var a,x:real; begin writeln('Введите число '); read(a); x:=Round(a); if a=x then write('Число а целое ') else write('Число а дробное '); end. | var a,x:real; begin writeln('Введите число '); read(a); x:=Frac(a); if x<>0 then write('Число а дробное ') else write('Число а целое '); end. |
- Составные(сложные ) условия.
Решение:
var a,b,c:real;
begin
writeln('Введите размеры отрезков');
read(a,b,c);
if (a<b+c) and (b<a+c) and (c<a+b) or ((a<>0) and (b<>0) and (c<>0)) then write('Образуют') else write('Не образуют');
end.
Вложенные операторы if .
! При использовании вложенных операторов if слово else относится к последнему if, у которого нет еще else.
Задача 3. Определить количество корней квадратного уравнения по дискриминанту. Решение: var a,b,c,d:real; begin writeln('Введите коэффициенты a, b и c '); read(a,b,c); d:=sqr(b) - 4*a*c; if d>=0 then if d>0 then write('Два вещественных корня ') else write('Один вещественный корень') else write('Нет вещественных корней'); end. | ![]() Блок-схема алгоритма, определяющая количество корней квадратного уравнения по дискриминанту. |
Блоки операторов .
Пример:Если требуется выполнить последовательность действий(несколько операторов подряд), то ее заключают в блок образуемый операторами begin и end.
Пример:
if x > 3 then begin s1, s2, s3, s4 end; (здесь s1-s4 символически обозначают операторы).
Эта группа (begin s1, s2, s3, s4 end;) называется составным оператор, или операторной скобкой. Она как бы говорит компилятору, что данный блок операторов нужно рассматривать как единое целое.
Задача 4. Вычислить корни квадратного уравнения.
Решение:
var a,b,c,d:real;
x1,x2:real;
begin
writeln('Введите коэффициенты a, b и c ');
read(a,b,c);
d:=sqr(b) - 4*a*c;
if d<0 then write('Уравнение не имеет вещественных корней ') else
if d=0 then write('У уравнения один корень', -b/(2*a):6:2 )
else {ниже идет составной оператор}
begin
x1:=(-b + sqr(d))/2*a;
x2:=(-b - sqr(d))/2*a;
write(' Первый корень ', x1:6:2,' Второй корень ', x2:6:2);
end;
end.
Пример:
if x > 3 then begin s1, s2, s3, s4 end; (здесь s1-s4 символически обозначают операторы).
Эта группа (begin s1, s2, s3, s4 end;) называется составным оператор, или операторной скобкой. Она как бы говорит компилятору, что данный блок операторов нужно рассматривать как единое целое.
Задача 4. Вычислить корни квадратного уравнения.
Решение:
var a,b,c,d:real;
x1,x2:real;
begin
writeln('Введите коэффициенты a, b и c ');
read(a,b,c);
d:=sqr(b) - 4*a*c;
if d<0 then write('Уравнение не имеет вещественных корней ') else
if d=0 then write('У уравнения один корень', -b/(2*a):6:2 )
else {ниже идет составной оператор}
begin
x1:=(-b + sqr(d))/2*a;
x2:=(-b - sqr(d))/2*a;
write(' Первый корень ', x1:6:2,' Второй корень ', x2:6:2);
end;
end.
Ветвления по ряду условий. Оператор Case.
Используя несколько операторов if , можно производить ветвления по ряду условий. Так же, для этой цели можно использовать оператор Case.
Задача 4. Преобразование введенного введенного числа из диапазона (0..4) в его словесное представление.
Решение:
С оператором if | С оператором Сase |
var Num:integer; begin writeln('Введите число: '); read(Num); if Num = 0 then writeln(' Нуль '); if Num = 1 then writeln(' Один '); if Num = 2 then writeln(' Два '); if Num = 3 then writeln(' Три '); if Num = 4 then writeln(' Четыре '); else write('Введено другое число') end. | var Num:integer; begin writeln('Введите число: '); read(Num); case Num of 0: writeln(' Нуль '); 1: writeln(' Один '); 2: writeln(' Два '); 3: writeln(' Три '); 4: writeln(' Четыре '); else write('Введено другое число') end; end. |
<<