Питання для самоперевірки знань
Які основні переваги та недоліки має словесно-формульний спосіб опису алгоритмів?
У чому полягають основні переваги графічних способів опису алгоритмів?
Які позначення використовують у блок-схемах алгоритмів?
Завдання для самостійного виконання
Скласти блок-схему алгоритму обчислення значення виразу:
Скласти блок-схему обчислення значення виразу:
1.2.4. Основні алгоритмічні структури
Алгоритми довільного рівня складності можуть містити лише три основні структури: лінійну, розгалужену та циклічну.
Алгоритми з лінійною структурою. В таких алгоритмах вказівки виконуються послідовно у порядку їхнього запису. На рис. 1.2.3 наведено приклад блок-схеми лінійного алгоритму обчислення значення виразу y=ax-sin2ax.
Рис. 1.2.3. Блок-схема лінійного алгоритму
Спочатку здійснюється введення значень a та x, які потім перемножуються, і одержаний результат присвоюється зміннійt. Далі від значення t віднімається значення sin2t і одержаний результат присвоюється змінній y. Завершується виконання алгоритму виведенням результату.
Алгоритми з розгалуженою структурою. В цих алгоритмах виконуються одні вказівки або інші, залежно від результату перевірки певної умови (або сукупності умов). Є два основних типи таких алгоритмів. Одноальтернативнерозгалуження визначає таку послідовність дій: якщо умова В істинна, виконується інструкція S, інакше вона не виконується (рис. 1.2.4, a). Двоальтернативне розгалуження задає таку послідовність дій: якщо умова В істинна - виконується інструкція S1, інакше - S2 (рис. 1.2.4, б).
Зазначимо, що гілки структури розгалуження можуть, у свою чергу, містити інші розгалуження. За допомогою таких структур можна перевірити складену умову або кілька простих умов.
Рис. 1.2.4. Блок-схема алгоритмічної конструкції розгалуження: одноальтернативне розгалуження (a); двоальтернативне розгалуження (б)
Приклад. Побудуємо блок-схему алгоритму обчислення значення виразу
Блок-схема алгоритму зображена на рис. 1.2.5. Цей алгоритм є прикладом алгоритму з перевіркою складної умови: якщо x>0, здійснюється перевірка умови a<0. Якщо умова x>0 не виконується, змінній y присвоюється значення 0.
Рис. 1.2.5. Блок-схема алгоритму обчислення значення складеного умовного виразу
Алгоритми з циклічною структурою. Це такі алгоритми, у яких одні й ті самі вказівки (команди) виконуються багаторазово для різних значень одних і тих самих змінних.
Побудуємо блок-схему алгоритму обчислення значення функції y=xn, де n – натуральне число (рис. 1.2.6). Праворуч від блок-схеми вказані значення, яких набувають змінні для n=4. Найпростіший спосіб обчислення значення даної функції полягає в послідовному множенні значення y на y, що має виконуватися n разів.
Початковим значенням добутку буде одиниця, тобто y0=1.
З блок-схеми видно, що обчислення значення заданої функції здійснюється за такою схемою: yi=yi-1·x, де i=1,2,3, ... ,n; y0=1, тобто на першому кроці y=1*x, на другому – y=x*x, на третьому – y=x2*x і т.д. На рис. 1.2.6 праворуч проілюстровано процес виконання алгоритму для n=4.
У циклічних структурах виділяють такі основні частини: підготовчу, робочу і керівну. Підготовча частина містить вказівки (надалі будемо їх ототожнювати з операторами), які визначають початкові значення змінних.
Рис. 1.2.6. Блок-схема та процес виконання циклічного алгоритму
У розглянутому прикладі підготовчу частину зображує блок 3, в якому змінним x та y присвоюються одиниці. Робочу частину (яку ще називають тілом циклу) утворюють вказівки, що визначають основні обчислення. В алгоритмі, блок-схема якого зображена на рис. 1.2.6, тілом циклу є блок 4, а блоки 5 та 6 здійснюють керування циклом. У керівній частині відбувається перевірка умови завершення циклу. Якщо ця умова істинна, виконання циклу припиняється, інакше – триває далі. В алгоритмі, зображеному на рис. 1.2.6, умовою завершення циклу є вираз i ≤ n. У цій умові перевіряється значення лічильника, яким у даному випадку є змінна i.
Лічильник – це змінна, значення якої вказує на те, скільки разів було виконано тіло циклу.
