Операторы ветвления
Ветвление - такая форма организации действий, при которой в зависимости от выполнения некоторого условия совершается одна или другая последовательность действий
КОМАНДА ВЕТВЛЕНИЯ
ИМЕЕТ ПОЛНУЮ (1)
ИЛИ СОКРАЩЕННУЮ ФОРМУ(2)
Нет
Да
Нет
Да
Условие
Условие
Серия 1
Серия 2
Серия 1
1
2
Ветвление в полном варианте
B ? A - максимальное В - максимальное " width="640"
Да
Нет
A B ?
A - максимальное
В - максимальное
B THEN max:=A ELSE max:=B ; Сложные условия составляют из простых с помощью логических операций ( OR, AND, NOT) IF (AB)AND(AC) THEN max:=A ELSE max:=100 ; " width="640"
Оператор ветвления в полном варианте
IF ( условие ) THEN ( операторы ) ELSE ( операторы ) ;
условие
- записывается с помощью знаков сравнения
и принимает два значения: да или нет
IF AB THEN max:=A ELSE max:=B ;
Сложные условия составляют из простых с помощью логических операций ( OR, AND, NOT)
IF (AB)AND(AC) THEN max:=A ELSE max:=100 ;
Ветвление в неполном варианте
B ? B:=B*2 " width="640"
Да
Нет
A B ?
B:=B*2
B THEN B :=В*2 ; " width="640"
Оператор ветвления в неполном варианте
IF ( условие ) THEN ( операторы ) ;
IF AB THEN B :=В*2 ;
Обратите внимание на то, что в Then - и Else - части стоит только один оператор. Но что делать, чтобы решить задачу, в которой по выполнению или невыполнению условия нужно совершить не одно, а несколько действий? Здесь приходит на помощь уже известный вам составной оператор. В операторные скобки можно заключить любое количество операторов.
Вариант условного оператора в этом случае: If Then Begin end Else Begin end;
Знак "точка с запятой" не ставится перед служебным словом Else, но операторы в группах, естественно, отделяются друг от друга этим знаком.
=0 Пример 1 . У= X 2 , если x Начало Ввод Х Х =0 да нет Y=x 2 Y=x+1 Конец " width="640"
Х+1 ,если х=0
Пример 1 .
У=
X 2 , если x
Начало
Ввод Х
Х =0
да
нет
Y=x 2
Y=x+1
Конец
=0 Then y:=x+1 Else y := x*x ; Writeln ( ‘y=‘,y ); End . " width="640"
Program z1 ; Var x,y: real ;
Begin
Writeln ('Введите х'); Readln ( x ); If x=0 Then y:=x+1 Else y := x*x ; Writeln ( ‘y=‘,y );
End .
B Then C:=A Else C:=B; {Если AB, то результат - A, иначе результат - B} Writeln (C); {Выводим результат на экран} End. " width="640"
Пример 2 : "Из двух чисел выбрать наибольшее".
Program Example ; Var A,B,C : Real ; {A,B - для хранения аргументов, C - результат} Begin
Writeln ('Введите два числа'); Readln (A,B); {Вводим аргументы с клавиатуры} If AB Then C:=A Else C:=B; {Если AB, то результат - A, иначе результат - B} Writeln (C); {Выводим результат на экран}
End.
Пример 3 : "По заданным коэффициентам решить квадратное уравнение".
Program z3 ; Var A, B, C, D, X1, X2 : Real; Begin
Writeln ('Введите коэффициенты квадратного уравнения'); Readln (A,B,C); D:=B*B-4*A*C; If DThen Writeln ('Корней нет! ') Else Begin
X1:=(-B+SQRT(D))/2/A; X2:=(-B-SQRT(D))/2/A; Writeln ('X1=', X1:8:3, ' X2=',X2:8:3)
End
End.
Пример 4. Пусть для двух целых чисел надо определить, являются они четными или нет .( Для проверки четности используем условие: остаток от деления на 2 четного числа равен 0) Program z 4 ; Var a,b: integer ;
Begin
Writeln ('Введите два целых числа'); Readln ( a,b ); If a mod 2 =0 Then writeln (‘a -четное ’)
Else w riteln (‘a - нечетное ’) ;
If b mod 2 =0 Then writeln (‘b - четное ’)
Else w riteln (‘b - нечетное ’) ;
readln;
End .
c) and (b+ca) and (a+cb) Then writeln (‘ существует ’) Else w riteln (‘ не существует ’) ; readln; End . " width="640"
Пример 5. определения существования треугольника со сторонами.( Условие существования треугольника известно из геометрии: сумма двух любых сторон должна быть больше третьей)
Program z5 ; Var a,b,c: real ;
Begin
Write (‘ треугольник со сторонами ’, a,b,c);
Readln ( a,b,c );
If (a+bc) and (b+ca) and (a+cb)
Then writeln (‘ существует ’)
Else w riteln (‘ не существует ’) ;
readln;
End .
b then max:=a else max:=b; If maxWriteln(‘max=‘,max); Readln; end. " width="640"
Пример 6. Найти наибольшее из трех чисел
Program z4;
Var a,b,c,max:real;
Begin
Writeln(‘a,b,c’);
Readln(a,b,c);
If ab then max:=a else max:=b;
If max
Writeln(‘max=‘,max);
Readln;
end.

Язык программирования Паскаль "Оператор ветвления" (274.5 KB)

