1 Программирование на языке Паскаль Тема 2. Ветвления © К.Ю. Поляков,
2 Разветвляющиеся алгоритмы Задача. Ввести два целых числа и вывести на экран наибольшее из них. Идея решения: надо вывести на экран первое число, если оно больше второго, или второе, если оно больше первого. Особенность: действия исполнителя зависят от некоторых условий (если … иначе …). Алгоритмы, в которых последовательность шагов зависит от выполнения некоторых условий, называются разветвляющимися.
3 Вариант 1. Блок-схема начало max:= a; ввод a,b a > b? max:= b; конец да нет полная форма ветвления блок "решение" Если a = b? ? Вывод max
4 Вариант 1. Программа max := a max := b ; полная форма условного оператора program qq; var a, b, max: integer; begin writeln('Введите два целых числа'); read ( a, b ); if a > b then else writeln ('Наибольшее число ', max); end.
5 Условный оператор if then {что делать, если условие верно} else {что делать, если условие неверно}; if then {что делать, если условие верно} else {что делать, если условие неверно}; Особенности: перед else НЕ ставится точка с запятой вторая часть ( else …) может отсутствовать (неполная форма) если в блоке then или else более одного оператора, нужно добавить слова begin и end
6 Вариант 2. Блок-схема неполная форма ветвления начало max:= a; ввод a,b max:= b; конец да нет b > a? Вывод max
7 Вариант 2. Программа program qq; var a, b, max: integer; begin writeln('Введите два целых числа'); read ( a, b ); max := a; if b > a then max := b; writeln ('Наибольшее число ', max); end. неполная форма условного оператора
8 Вариант 2Б. Программа program qq; var a, b, max: integer; begin writeln('Введите два целых числа'); read ( a, b ); max := b; if ??? then ??? writeln ('Наибольшее число ', max); end. max := a; a > b
9 Что неправильно? if a > b then begin a := b; else b := a; if a > b then begin a := b; else b := a; if a > b then begin a := b; end; else b := a; if a > b then begin a := b; end; else b := a; if a > b then else begin b := a; end; if a > b then else begin b := a; end; if a > b then a := b; else b := a; end; if a > b then a := b; else b := a; end; a := b end a := b if b >= a then b := a; if b >= a then b := a;
10 Задания "4": Ввести три числа и найти наибольшее из них. Пример: Введите три числа: Наибольшее число 15