Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatika.doc
Скачиваний:
14
Добавлен:
16.09.2019
Размер:
937.47 Кб
Скачать

26. Алгоритми з розгалудженнями. Оператори розгалудження у Pascal.

Уявіть собі, що ви за кермом автомобіля і перед вами стоїть вибір дальшого руху: або їхати поганою, але коротшою доро­гою, або ж гарною, але довшою. Звичайно, що ваш вибір буде залежати від певних умов: по-перше, чи є у вас зайвий час, по-друге, хто господар автомобіля?

Подібну проблему завжди вирішують оператори розгалуження.

Загальний вигляд повної форми оператора умовного пе­реходу:

if <логічний вираз> then Р1 else Р2,

де логічний вираз - це вираз, який може набувати одного з двох значень true або false, Р1 та Р2 - це оператори або процедури.

Робота оператора умовного переходу не викликає ніяких труднощів. Цей оператор використовує результат обчислення логічного виразу для вибору того чи іншого шляху наступного виконання алгоритму - виконання оператора Р1 або оператора Р2. Після цього робота алгоритму продовжується далі за вказаними операторами. Схема алгоритму повного оператора умовного переходу показана на малюнку 8.

Схема алгоритму наочно демонструє, що після аналізу значення логічного виразу буде вибраний лише один з наступних напрямків виконання алгоритму (Р1 або Р2), після чого цей ал­горитм буде виконуватися далі.

Загальний вигляд скороченої форми оператора умовного

переходу:

if <логічний вираз> then Р,

де значення вказаних параметрів такі самі, як і в повній формі. Схема алгоритму скороченої форми оператора умовного пе­реходу дуже схожа на попередню (мал. 9).

На схемі алгоритму добре видно відмінність між двома фор­мами умовного оператора: в першій - повній - незалежно від значення логічного виразу якісь дії обов'язково будуть вико­пані, а вже потім продовжено виконання алгоритму далі, у

другій - скороченій - у випадку, коли логічний вираз набуде значення true, будуть виконані якісь дії, а потім продовження виконання алгоритму, а у випадку, коли логічний вираз набуде значення false, алгоритм відразу буде продовжено далі. Розширимо поняття оператора в Pascal. А що робити, коли після службових слів then або else нам потрібно вказати не один тільки оператор, а кілька? Для такого випадку в Pascal введене поняття складеного оператора.

Складеним оператором називають послідовністщ кількох операторів або викликів процедур, розділених символом «;» та взятих в операторні дужки begin ... end

Тепер уже час переходити до прикладів. Розглянемо алго­ритм пошуку найбільшого з двох заданих чисел А та В.

program max_A_B;

var a, b, max: real; begin

write ('Задайте два будь-які числа: '); readln (a, b);

if a > b

then

begin

writeln ('Перше число більше за друге.');

max := а

end

else

begin

writeln ('Друге число більше або дорівнює першому');

max := b

end writeln ('Це число -' , max:10:5);

readln

end. Розглянемо детальніше наведену програму. По-перше, у ній чітко спостерігається принцип «вкладеності» операторів, тоб­то сходинкова структура. Наочність такої програми явно ви­грає! Для цього в ній навіть з'єднані вертикальними лініями оператори різного рівня. По-друге, перед закриваючою опера­торного дужкою (end) не стоїть символ «;». І справді, ви ж не ставите кому в тексті перед закриваючою дужкою, коли пе­релічуєте в ньому в дужках декілька слів. Хоча в Pascal це не є помилкою.