Тема 2. Розгалуження
Алгоритми розгалуження Задача. Ввести два цілих числа і вивести на екран більше з них. Ідея розвязання: потрібно вивести на екран перше число, якщо воно більше другого, або друге, якщо воно більше першого. Особливості: дії виконавця залежать від деяких умов (якщо … інакше …). Алгоритми, в яких послідовність кроків залежить від виконання деяких умов, називаються розгалуженими.
Варіант 1. Блок-схема початок max:= a; ввести a,b вивести max a > b? max:= b; кінець так ні повна форма розгалуження блок «логічний вираз» Якщо a = b? ?
Варіант 1. Програма program qq; var a, b, max: integer; begin writeln(Ввести два цілих числа'); read ( a, b ); if a > b then begin end else begin end; writeln (Більше число ', max); end. max := a ; max := b ; повна форма умовного оператора
Умовний оператор if then begin {що робити, якщо умова правильна} end else begin {що робити, якщо умова неправильна} end; Особливості: перед else НЕ ставиться крапка з комою друга частина ( else …) може бути відсутня (неповна форма) якщо в блоці один оператор, можна забрати слова begin і end
Що неправильно? if a > b then begin a := b; end else b := a; end; if a > b then begin a := b; else begin b := a; end; if a > b then begin a := b; end; else begin b := a; end; if a > b then begin a := b; end else b > a begin b := a; end; begin end begin end
Варіант 2. Блок-схема неповна форма розгалуження початок max:= a; ввести a,b вивести max max:= b; кінець так ні b > a?
Варіант 2. Програма program qq; var a, b, max: integer; begin writeln(Ввести два цілих числа'); read ( a, b ); max := a; if b > a then writeln (Більше число ', max); end. max := b ; неповна форма умовного оператора
Варіант 2Б. Програма program qq; var a, b, max: integer; begin writeln(Ввести два цілих числа'); read ( a, b ); max := b; if ??? then ??? writeln (Більше число ', max); end. max := a; a > b
Що неправильно? 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 else begin b := a; end; if a > b then a := b; else b := a; end; a := b end a := b if b >= a then b := a;
Завдання "4": Ввести три числа і знайти найбільше з них. Приклад: Ввести три числа: Найбільше число 15 "5": Ввести пять чисел і знайти найбільше з них. Приклад: Ввести пять чисел: Найбільше число 56