200 likes | 493 Vues
Ветвление. определение. Разветвляющимся называется процесс, в котором естественный порядок выполнения нарушается в зависимости от условия. ОПЕРАЦИИ ОТНОШЕНИЯ. Для описания условия (логического выражения) используются следующие операции отношения:
E N D
определение Разветвляющимся называется процесс, в котором естественный порядок выполнения нарушается в зависимости от условия.
ОПЕРАЦИИ ОТНОШЕНИЯ Для описания условия (логического выражения) используются следующие операции отношения: > больше = равно < меньше >< <> не равно >= больше или равно <= меньше или равно
ЛОГИЧЕСКИЕ ОПЕРАЦИИ Not – НЕ (отрицание) And – И (логическое умножение) Or – ИЛИ (логическое сложение) Xor- выбор
Логический блок Логич. Выраж. да нет
ВЕТВЬ Каждое направление вычисления называется ветвью. Каждая ветвь должна заканчиваться в блоке «конец».
условие условие действие2 действие1 Блок-схемы ветвлений Неполное ветвление Полное ветвление ДА НЕТ ДА НЕТ действие IF <условие> THEN<оператор>; IF<условие>THEN<оператор1> ELSE <оператор2>;
ПРИМЕРЫ • If x>1 THEN y:=sqr(x)+1 ELSE y:=x-3; • If a>b then c:=a else c:=b; • If x<0 then x:=sqr(x);
РАБОТА ПОЛНОГО УСЛОВНОГО ОПЕРАТОРА Если условие после слова IF выполняется , то выполняется <оператор 1> после слова THEN, что соответствует ветви «ДА» на блок-схеме. Если условие не выполняется, товыполняется < оператор2>, что соответствует ветви «НЕТ» на блок-схеме.
РАБОТА КОРОТКОГО УСЛОВНОГО ОПЕРАТОРА Если условие после слова IF выполняется , то выполняется < оператор 1> после слова THEN, что соответствует ветви «ДА» на блок-схеме. Если условие не выполняется, то управление программой передается следующему оператору, что соответствует ветви «НЕТ» на блок-схеме.
Определите по блок-схеме значение переменной y,если введено значение х=-4: начало ввод х да нет x<0 y=sqr(x) y=x+5 вывод y конец
Упражнение №1Какое значение будет принимать переменная Х после выполнения фрагмента программы? 1. F:=5;D:=7; If f>=d then x:=f else x:=d; Ответ: Х= 2. a:=3;b:=4; If a>b then x:=a*b else x:=a-b; Ответ: Х= 3. a:=53; b:=14; If a<=b then x:=a+b else x:=2*a-4*b; Ответ: Х= 4. a:=5;b:=4;c:=3; If a>b then x:=a+b else a:=b+c; x:=a-3*b; Ответ: Х=
Упражнение №1Какое значение будет принимать переменная Х после выполнения фрагмента программы? 5. a:=9;b:=8;c:=2; If (a>b) and (b>c) then x:=2*a+b+c else x:=a-b+c; Ответ: Х= 6. a:=1; b:=4; c:=8; If (a<=b) or (a>c) thenx:=5*a-b else x:=4*a*b; Ответ: Х= 7. a:=7; b:=3; c:=6; If (a<b) or (a>c) then x:=4*a-a*b else x:=a-b; Ответ: Х=
начало x, y да нет (x>2) и (y<>1) ‘Аргументы не входят в область допустимых значений’ СЛОЖНЫЕ УСЛОВИЯ ПРИМЕР 1. Вычислить значение выражения для заданных пользователем (или случайно выбранных) значений аргументов: PROGRAM SL_USL; Var x, y, V: Real; BEGIN Write(‘Введите x и y:’); ReadLn(x,y); If (x>2) and (y<>1) ThenBegin V:=(x+y)/sqrt(x-2)+1/abs(y-1); Write(‘V=“,V:8:1); End ElseWriteLn(‘Аргументы не входят в область допустимых значений’); END. V Если в какую-то ветвь ветвления входит более одного действия, в Турбо Паскале эти операторы необходимо заключать в операторные скобки! конец
Примеры выражений и соответствующих условий (a<>0) and (b<>0) and (a>=0.5) (x>=2) and (x<>-1) and (y<>2) (x<>0) and (x<>y) and (y>=2) (y<>0) and (x<>-2) and (y>=-3)
y 1 -1 1 x -1 ПРИМЕР 2.Определить, попадёт ли точка с координатами (x,y) в заштрихованную область: • Область ограничивается четырьмя прямыми: • y=1-x; • y=-1+x; • y=-1-x; • y=1+x. Можно задать в условии их все. Но можно также заметить, что незаштрихованная область соответствует условию Следовательно, заштрихованная область описывается через отрицание данного условия, т.е. Not(abs(x+y)<1)
y x 2 -2 y y y x x x -2 2 1 1 -1 1 1 Примеры областей и соответствующих условий (sqr(x) + sqr (y) <= 4) and (y >=0) (sqr(x)+sqr(y) >= 4) or (y <= 0) или Not((sqr(x)+sqr(y) < 4) and (y > 0) ) (sqr(x)+sqr(y) <= 1) and (x >= 0) ((y>=0) and (y<=1)) and ((x>=y) or ((x>=1) and(x<=3))) или(x>=0) and(x<=3) and(y>=0) and(y<=1) and(x>=y)
Запись логического выражения PROGRAM p1; VAR a:boolean; … BEGIN a:=(sqr(x) + sqr (y) <= 4) and (y >=0); IF a THEN …
Условие 1 ДА ДА НЕТ НЕТ НЕТ ДА действие4 действие1 действие2 действие3 Условие 2 Условие 3 Сложные ветвления IF <усл1>THENif <усл2> then <оператор1> else <оператор2> ELSE if <усл3> then <оператор3> else <оператор4> ;
Задача1 Определить наибольшее из 3-х чисел.Способ 1 Сравним попарно все три числа. ДА НЕТ a<b ДА НЕТ ДА НЕТ b<c a<c M:=c M:=a M:=b M:=c