Первый слайд презентации
Программирование разветвляющихся алгоритмов. Условный оператор. Составной оператор. Многообразие способов записи ветвления НАЧАЛА ПРОГРАММИРОВАНИЯ Урок №27 Не забудьте записать в тетради число, классная работа, тема урока
Слайд 2
Ключевые слова условный оператор полная и краткая формы составной оператор вложенные ветвления
Слайд 3
Ветвление Ветвление - алгоритмическая конструкция, в которой в зависимости от результата проверки условия («да» или «нет») предусмотрен выбор одной из двух последовательностей действий (ветвей). Алгоритмы, в основе которых лежит структура «ветвление», называют разветвляющимися. В программе ветвление реализуется условным оператором.
Слайд 4
Общий вид условного оператора ! Перед else знак «;» не ставится. Полная форма if < условие > then < оператор_1 > else < оператор_2 >; Действие 1 Условие Действие 2 Действие 1 Условие Краткая форма if < условие > then < оператор >; Словесно данный алгоритм можно сформулировать так: Если условие истинно, то выполняется Действие1, если условие ложно, то выполняется Действие 2 Не забудьте делать записи в тетради
Слайд 5
Общий вид условного оператора Простое Сложное Условие – логическое выражение Теперь разберемся в деталях! Константы, переменные, выражения, связанные между собой знаками операций отношения =, <> (не равно), > (больше), < (меньше), >= (больше или равно), <= (меньше или равно) Теперь разберемся в деталях! Простые логические выражения, связанные логическими операциями OR – дизъюнкция, ИЛИ, логическое сложение AND – конъюнкция, И, логическое умножение NOT – отрицание, НЕ, логическое отрицание Например, NOT ( Условие1) (Условие 1) OR (Условие 2) (Условие 1) AND (Условие 2) Оператор ( любой из известных простых операторов) Ввода Вывода Присвоения Теперь разберемся в деталях! Например, readln (A); Например, writeln (‘D=‘, D); Например, Y:=A+5; Не забудьте записать в тетрадь
Слайд 6
Примеры решения задач ( записать в тетрадь) program Z1 ; var x, a, b: real; begin writeln (‘Точка принадлежит отрезку?'); write ('Введите а, b>>'); readln (a, b); write ('Введите x>>'); readln (x); if (x>=a) and (x<=b) then writeln (‘Принадлежит отрезку') else writeln (‘Не принадлежит отрезку’); readln; еnd. Задача 1. Принадлежит ли точка х отрезку [a, b] ? Разберемся в условии задачи: Что дано? ОТВЕТ: х, a, b В каком виде нужно получить результат? ОТВЕТ: Да (принадлежит) или Нет( не принадлежит) Для решения нужно проверить условие a <= x <= b ( условие сложное!) a, b, x (x>=a) and (x<=b) ДА НЕТ да нет конец начало Задача решена с использованием полной формы
Слайд 7
program Z2 ; var y, a, b, c: integer; begin writeln ('Нахождение max(A, B, C) ’ ); write ('Введите а, b, с>>'); readln (a, b, c); y:=a; if (b>y) then y:=b; if (c>y) then y:=c; writeln ('y=', y) ; readln; end. Y:=A B>Y Y:=B Y:=C C>Y да нет да нет Примеры решения задач ( записать в тетрадь) Задача 2. Даны три величины A, B, C. Переменной У присвоить значение большей из них. Разберемся в условии задачи: Понятно, что значения нужно сравнить. Предположим, что наибольшим является значение А – сохраним его в переменной У. Затем сравним с У переменную В. Если В больше по значению – сохрани его в У. Аналогично поступим с переменной С. Выводим значение У. начало А, В, С Y конец Задача решена с использованием двух кратких форм условного оператора
Слайд 8
Составной оператор В условном операторе и после then, и после else можно использовать только один оператор. Если в условном операторе после then или после else нужно выполнить несколько операторов, то используют составной оператор begin список операторов через ; end
Слайд 9
program Z 3; var Р, A, B, C : integer; begin write ('Введите а, b, с>>'); readln (a, b, c); if ( A>=0) and (B>=0) and (C>=0) and (A>B+C) and (B>A+C) and(C>B+A) then begin P := a+ b +c ; writeln (‘Периметр -’, P ) ; end else writeln (‘Данные не корректны') ; readln; end. да нет Примеры решения задач ( записать в тетрадь) Задача 3. Даны три величины. Можно ли построить треугольник с заданными сторонами. Если можно, то найти A, B, C его периметр, иначе вывести сообщение «Данные не корректны». Разберемся в условии задачи: Треугольник можно построить если величины положительны, т.е. A, B, C>=0 и если длина каждой из сторон меньше суммы длин двух других. Таким образом, нужно проверить условие ( A>=0) and (B>=0) and (C>=0) and (A>B+C) and (B>A+C) and(C>B+A) А, В, С начало конец P:=A+B+C P Данные не корректны ( A>=0) and (B>=0) and (C>=0) and (A>B+C) and (B>A+C) and (C>B+A)
Слайд 10
Вложенные ветвления if <условие1> then if <условие2> then <оператор1> else <оператор2> else <оператор3>; else всегда относится к ближайшему оператору if !
Слайд 11
Решение линейного уравнения P rogram Z4 ; var a, b, x: real ; begin writeln ('Решение линейного уравнения'); write ('Введите коэффициенты a, b >>'); readln ( a, b ); if a<>0 then begin x:=-b/a; writeln ('Корень уравнения x= ', x:9:3) end else if b<>0 then writeln ('Корней нет') else writeln ('x – любое число’); readln ; end. Корней нет a, b a<> 0 x b<>0 Любое число нет да да нет Задача 4. C оставим алгоритм решения линейного уравнения ax+b=0 (переменные вещественные). !!!Алгоритм решения задачи представлен на блок-схеме. Какие элементы в блок-схеме отсутствуют? Добавьте их! x:= - b/a
Слайд 12
Блок-схема решения КВУР Конец Вывод «Корни уравнения: х1=», х1, «х2=», х2 х1:= (-b+sqrt(d) ) /2/a Начало Введите коэффициенты a, b, c d : =b*b-4*a*c d < 0 да Вывод «Корней нет» нет d : = 0 да x : =-b/2/a Вывод «Корень уравнения х=», х нет х 2 := (-b-sqrt(d) ) /2/a Задача 5. C оставим алгоритм решения квадратного уравнения ax 2 +bx+c=0 (переменные вещественные).
Слайд 13
begin x1:=(- b+sqrt ( d ))/2/ a ; x2:=(- b-sqrt ( d ))/2/ a ; writeln ('Корни уравнения:'); writeln ('x1=', x1:9:3); writeln ('x2=', x2:9:3) end begin x:=-b/2/a; writeln ('Корень уравнения x= ', x:9:3) end program Z5 ; var a, b, c: real ; var d: real ; var x, x1, x2: real ; begin writeln ('Решение квадратного уравнения'); write ('Введите коэффициенты a, b, c >>'); readln ( a, b, c ); d:=b*b-4*a*c; if d <0 then writeln ('Корней нет') else if d=0 then else end.
Слайд 14
Самое главное При записи на языке Паскаль разветвляющихся алгоритмов используют условный оператор: if <условие> then <оператор_1> else <оператор_2> ; Для записи неполных ветвлений используется неполный условный оператор: if <условие> then <оператор> ; Если при некотором условии требуется выполнить несколько операторов, то их объединяют в один составной оператор, имеющий вид: begin <список операторов>; end
Слайд 15
1. Запишите предложенные конструкции структурировано, исправьте найденные ошибки. Вопросы и задания (оформляются с тетради: число, домашняя работа, фото конспекта классной и домашней работы в личку или на e.l.meznikova@mail.ru) 2.
Слайд 16
3. Составьте блок-схему и программу Вопросы и задания (оформляются с тетради: число, домашняя работа, фото конспекта классной и домашней работы в личку или на e.l.meznikova@mail.ru)
Слайд 17
Опорный конспект Условный оператор if <условие> then <оператор_1> else <оператор_2> if <условие> then <оператор> begin <последовательность операторов> en d Полная форма Краткая форма Составной оператор
Последний слайд презентации: Программирование разветвляющихся алгоритмов. Условный оператор. Составной
Надеюсь, что изложенный материал будет понятен. Прочитайте несколько раз и Вы увидите, что все не так сложно