До даного часу у всіх розглядуваних нами прикладах та задачах всі дії виконувались строго одна за одною, але в реальному житті такі випадки бувають не досить часто. Згадайте, як в дитячій казці братику–Іванку говорила сестриця–Оленка “Не пий з калюжі водиці – козликом станеш!” Тобто, Іванко був поставлений перед можливістю вибору: пити або не пити водичку і необхідністю його здійснити: або послухатись сестричку і не пити водичку, або ж вгамувати спрагу і стати козликом. Ви всі знаєте який вибір здійснив Іванко, але головне, що нам хотілося б підкреслити у наведеному прикладі, це те, що у нашому повсякденному житті з необхідністю здійснювати вибір ми зустрічаємось майже кожної миті, навіть не усвідомлюючи цього. І якщо людина буде робити свій вибір завжди підсвідомо, то вона може наробити такого, що навіть в самій страшній казці не описати. Людина саме тому і є людиною, що вона повинна замислюватись і замислюється над тим, що ж і як їй потрібно зробити, щоб досягнути певного результату, як тимчасового – при вирішені конкретного завдання так і більш довготривалого – ким стати, що робити, на кого бути схожим і т.д.
Відповідно до цього і при розв’язуванні задач з допомогою ПЕОМ може постати необхідність здійснити вибір. Якщо у нас є дві можливості для подальших дій, то кажуть, що має місце розгалуження, а якщо багато можливостей на даному етапі – то має місце вибір.
Наведемо приклад: нехай нам потрібно скласти програму для розв’язання наступної задачі.
Задача 51. 51. Знайти корені квадратного рівняння ax2 + bx + c = 0.
Розв’язання: Опишемо розв’язок математично. Спочатку знаходимо дискримінант квадратного рівняння: . У нас D може набувати трьох значень: більше нуля, дорівнювати нулеві і бути меншим нуля. Якщо дискримінант D>0, то маємо два корені: і інакше, якщо D=0, то один корінь: інакше, якщо D<0, то коренів взагалі не існує. Кінцеву програмну реалізацію ми приведемо трохи пізніше.
§ 5.1 Структура “якщо... то... інакше...”
Описана вище структура називається структурою розгалуження, або структурою “якщо... то... інакше...” і на алгоритмічній мові описується так:
...
якщо D > 0
то відповідь:= “Два корені”
інакшеякщо D = 0
то відповідь:= “Один корінь”
інакше відповідь:= “Коренів не існує”
Все
Все
...
Дана структура є однією з головних в довільній алгоритмічній мові, а до таких мов, як ви вже знаєте, і відноситься мова Pascal. Як її описувати на розглядуваній мові – трошки пізніше, а поки що пояснимо, як працює дана структура. А працює вона наступним чином: спочатку перевіряється умова, якщо вона виконуються, то виконання алгоритму йде по гілці то, а якщо не виконуються – то виконання йде по гілці інакше. Для кращого засвоєння даного дуже важливого поняття рекомендуємо вам самостійно розв’язати декілька квадратних рівнянь, користуючись даною схемою, а також декілька інших задач (див. задачі в кінці розділу).
Ми ж, використовуючи команди розгалуження, розв’яжемо наступну задачу.