Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КТП_н_посібник2.doc
Скачиваний:
11
Добавлен:
11.11.2019
Размер:
27.54 Mб
Скачать

3.3. Алгоритми основних видів обчислювальних процесів

3.3.1. Загальні положення

Помічено, що алгоритм розв'язки будь-якої задачі можна уявити як комбінацію базових алгоритмів (обчислювальних процесів). До таких процесів належать:

прості (лінійні) обчислювальні;

розгалужені обчислювальні;

циклічні обчислювальніи.

3.3.2. Простий (лінійний) нерозгалужений обчислювальний процес

Алгоритми простих нерозгалужених процесів не передбачають жодного етапу, який мав би більше більш одного спадкоємця, тобто алгоритми реалізуються шляхом виконання простой послідовності операцій.

Приклад 3.1. Записати алгоритм обчислення значення величини Y за такою формулою:

Y = 150 + a·x. Схема алгоритму подано на рис. 3.1.

3.3.3. Розгалужені обчислювальні процеси

Алгоритми розгалужених обчислювальних процесів включають принаймні один етап, який має більше одного спадкоємця. Необхідність уведення такого етапу зумовлюється виконанням певної умови. Іншими словами задача має кілька шляхів розв'язку, які вибираються у залежності від виконання тієї чи іншої умови. Таким чином, алгоритм повинен не тільки описувати, але й вибирати потрібний хід розв'язку з урахуванням вхідних даних або проміжних результатів. Напрями, за якими може відбуватись обчислювальний процес, називаються його гілками.

Прикладам такого процесу є відбір і розрахунок вузлів і механізмів із різних деталей.

Рис. 3.1. Схема алгоритму простого (лінійного) процесу

Приклад 3.2. Записати у вигляді схеми такий алгоритм обчислення:

S = {

k·x + 2 ·t, якщо t >= 0

k·- 4·t, якщо t < 0

При записі алгоритмів розгалужених обчислювальних процесів необхідно дотримуватись таких вимог:

● у різних гілках можна використовувати й ті самі позначення змінних величин;

● обчислення або процеси, що повторюються в різних гілках схеми алгоритму, виносяться за межі розгалуження (у нашому прикладі це обчислення виразу k · х ( і);

● складні умови обчислень розбиваються на ряд простих.

Розв'язок задачі буде мати вигляд, поданий на рис. 3.2.

Рис. 3.2. Схема алгоритму простого розгалуженого

обчислювального процесу

3.3.4. Циклічні обчислювальні процеси

Більшість практичних задач розв'язуються на ЕОМ за допомогою циклічних алгоритмів. У таких алгоритмах мають місце ділянки обчислень, що являють собою багаторазове повторення однієї і тієї самої послідовності операцій.

Наприклад, при обчисленні виразу у = аx, операція множення повторюється х раз. Якщо х = 5 , то операція множення повторюється 5 разів, тобто у = а·а·а·а·а, а коли х = 100, то множення повторюється 100 разів.

Таким чином, циклічний обчислювальний процес – це послідоність дій, яка передбачає повторювані n разів етапи обробки інформації.

Цикл повинен тривати доти, поки не виконається деяка умова виходу з нього.

Приклад 3.3. Скласти схему алгоритму для обчислення такого виразу

,

при цьому параметр циклу змінюється до xп із кроком h. Такі обчислення значень заданої функції називаються табулюванням.

Виконуючи табулювання, необхідно послідовно перебрати всі значення параметра циклу х у зазначеному діапазоні його величин. Як тільки цю умова буде порушено, слід припинити обчислення. Схема алгоритму подається на рис. 3.3.

Рис. 3.3. Схема алгоритму простого циклічного обчислювального процесу

При уважному розгляді схеми алгоритму видно, що основою її розрахункової частини є робочі формули. Вони й дозволяють обчислювати результат з огляду на задану кількість циклів. Виходить, що перш ніж зображувати блок-схему, необхідно скласти робочі формули. Пошук робочих формул для всіх типів циклів виконується за єдиною методикою. Зміст робочих формул дозволяє визначити послідовність розрахунків, методи трансформації змінних величин (параметрів) циклу.

Крім того, варто звернути увагу, що в перший символ уводяться окремі змінні, а кілька однотипних операцій уведення або виведення даних мають входити в цикл як багаторазово повторювані

Циклічні процеси можна класифікувати залежно від кількості й складності вхідних циклів на прості (один цикл) і складні (цикл у циклі або розгалуження в циклі). У свою чергу прості цикли поділяються залежно від способу виходу із циклу на арифметичні й ітераційні. Розглянемо кожен з таких циклів.