Одним з властивостей алгоритму є діскретность- можливість розчленування процесу обчислень, запропонованих алгоритмом, на окремі етапи, можливість виділення ділянок програми з визначеною структурою. Можна виділити і наочно уявити графічно три найпростіші структури:
· Послідовність двох або більше операцій;
Будь-обчислювальний процес може бути представлений як комбінація цих елементарних алгоритмічних структур. Відповідно, обчислювальні процеси, що виконуються на ЕОМ за заданою програмою, можна розділити на три основних види:
Лінійним прінятоназивать обчислювальний процес, в якому операції виконуються послідовно, в порядку їх запису. Кожна операція є самостійною, незалежною від будь-яких умов. На схемі блоки, що відображають ці операції, розташовуються в лінійній послідовності.
Лінійні обчислювальні процеси мають місце, наприклад, при обчисленні арифметичних виразів, коли є конкретні числові дані і над ними виконуються відповідні умові завдання дії. На рис. 1, а показаний приклад лінійного алгоритму, що визначає процес обчислення арифметичного виразу
Мал. 1. Приклади алгоритмів: а) лінійний алгоритм; б) розгалужених алгоритм
Обчислювальний процес називається ветвящимся, якщо для його реалізації передбачено кілька напрямків (гілок). Кожне окреме напрям процесу обробки даних є окремою гілкою обчислень. Розгалуження в програмі - це вибір однієї з кількох послідовностей команд при виконанні програми. Вибір напрямку залежить від заздалегідь певної ознаки, який може ставитися до вихідних даних, до проміжних або кінцевих результатів. Ознака характеризує властивість даних і має два або більше значень.
Розгалужених процес, що включає в себе дві гілки, називається простим, більш двох гілок - складним. Складний розгалужених процес можна уявити за допомогою простих розгалужених процесів.
Напрямок розгалуження вибирається логічної перевіркою, в результаті якої можливі дві відповіді: «так» - умова виконана і «ні» - умова не виконана.
Слід мати на увазі, що, хоча на схемі алгоритму повинні бути показані всі можливі напрямки обчислень в залежності від виконання певної умови (або умов), при одноразовому проходженні програми процес реалізується тільки по одній гілці, а решта виключаються. Кожна галузь, по якій здійснюються обчислення, повинна приводити до завершення обчислювального процесу.
На рис. 11.1, б показаний приклад алгоритму з розгалуженням для обчислення наступного виразу:
Y = (а + b), якщо Х <0;
Циклічними називаються програми, що містять цикли. Цикл - це багаторазово повторюваний ділянку програми.
В організації циклу можна виділити наступні етапи:
· • підготовка (ініціалізація) циклу (І);
· • виконання обчислень циклу (тіло циклу) (Т);
· • перевірка умови закінчення циклу (У).
Порядок виконання цих етапів, наприклад, Т і М. може змінюватися. Залежно від розташування перевірки умови закінчення циклу розрізняють цикли з нижнім і верхнім закінченнями (рис. 2). Для циклу з нижнім закінченням (рис. 11.2, а) тіло циклу виконується як мінімум один раз, так як спочатку виробляються обчислення, а потім перевіряється умова виходу з циклу. У разі циклу з верхнім закінченням (рис. 11.2, б) тіло циклу може не виконатися жодного разу в разі, якщо відразу дотримується умова виходу.
Мал. 2. Приклади циклічних алгоритмів
Цикл називається детермінованим, якщо число повторень тіла циклу заздалегідь відомо або визначено. Цикл називається ітераційним, якщо число повторень тіла циклу заздалегідь невідомо, а залежить від значень параметрів (деяких змінних), що беруть участь в обчисленнях.
На рис. 3 показаний приклад циклічного алгоритму обчислення суми десяти чисел.
Мал. 3. Алгоритм знаходження суми 10-ти чисел