
- •Будова й налагодження систем програмного управління
- •1 Процес підготовки і рішення задачі на еом
- •1.1 Постановка завдання
- •1.2 Розробка опису завдання
- •1.3 Алгоритмізація завдання
- •1.4 Опис алгоритму
- •1.5 Процеси, що гілкуються
- •1.6 Циклічні процеси
- •1.7 Ітераційний цикл
- •3.2 Приклади складання бса і програм
- •3.3 Робота еом із зовнішнімі пристроями
- •4 Завдання до самоконтролю
1.6 Циклічні процеси
Вирішення багатьох завдань полягає в багатократному повторенні обчислень по одних і тих же формулах кожного разу з новими числовими даними. Багато разів виконувану частину обчислювального процесу називають циклом.
Розрізняють цикли з лічильником і ітераційні цикли.
Цикл з лічильником.
Розглянемо завдання: «обчислити суму цілих позитивних чисел від 1 до 100». Вочевидь, потрібно обчислити s = 1 + 2 + 3 ... + 100; перш ніж складати блок-схему алгоритму, потрібно продумати хід обчислень.
Можна передбачити введення всіх доданків 1, 2, 3, 100 і послідовне збільшення їх один до одного.
Але, що таке в даному випадку складове? Це величина, яка набуває значень 1, 2, 3, 100 при кожній черговій операції складання. Величину, значення якої міняється в процесі виконання обчислень, називають змінною. Аби звертатися до змінних, їм призначають імена.
Призначимо додатку ім'я К. Приписуване змінним конкретних значень зазвичай виробляється за допомогою операції присвоювання, яка записується так: «хай К = ...».
Наприклад, «хай К = 0». У загальному випадку змінної можна привласнити і значення, що обчислюється якимсь виразом, тобто праворуч від знаку рівності може бути записане не лише якесь число, але і формула.
Наприклад, «хай К = К + 1». Вас не повинно бентежити, що цей запис зроблений не по правилах алгебри. Так прийнято писати в інструкціях для ЕОМ і розуміти цю операцію треба так: спочатку в одній інструкції змінної До привласнюється якесь початкове значення, наприклад: «хай К = 0». Якщо далі в іншій інструкції записати «хай До = До + 1». то це означатиме просто «хай К = 1» (адже До дорівнювало 0). Якщо ми знову після цього запишемо «хай К = К + 1», то це означатиме «хай К = 2» (адже К стало вже рівним 1) і т. д., тобто запис «хай К = К + 1» означає, що поточне значення К треба збільшити на одиницю і набутого нового чисельного значення привласнити (приписати) змінній К.
Ввівши в машину лише одне початкове значення змінної К (введення К = 0), ми далі за допомогою операції привласнення «хай К=К+1» можемо формувати (отримувати) послідовно всі додатки: 1, 2, 3, 100.
Введемо в розгляд ще одну змінну з ім'ям S, початкове значення якої дорівнює 0 (ввод S = 0). Тоді, записавши після операції «хай К = К + 1» операцію «хай S = S + К», ми набудемо нового значення S, рівного сумі початкового значення S (S = 0) і першого додатку (К = 0 + 1 = 1) Після цього потрібно сформувати новий доданок («хай К = К + 1») і додати його до нового значення S («хай S=S + К») і. т.д. Інакше рішення нашої задачі можна описати так.
1. Введення К = 0, S = 0
2. Хай До = К + 1 (здобуття 1-го додатку)
3. Хай S= S + К (збільшення 1-го додатку, рівного 1)
4. Хай К = К + 1 (здобуття 2-го додатку, рівного 2)
5. Хай S = S + К (збільшення 2-го додатку)
200 хай К = K+1 (здобуття 100-го додатку, рівного 100)
201 хай S = S + К (збільшення 100-го додатку)
202 виведення S
203 кінець
Ну а якщо нам потрібно знайти суму цілих чисел в діапазоні від 0 до 1000?
Записати пару операцій 1000 разів?
Частину обчислювального процесу, що повторюється, оформляють як цикл, зазвичай за допомогою операції умовного переходу.
В даному випадку ми знаємо точно, скільки разів потрібно повторювати цикл (100 разів). Такий цикл називається цикл з лічильником.
Роль лічильника (число циклів) в даному випадку грає змінна К: потрібно цикли виконувати до тих пір, поки К буде менше або рівна 100. Переставивши для зручності інструкції 2 і 3 і додавши умовний перехід, отримаємо :
1) Введення К=0, S=0
2) Хай S=S+K
3) Хай K=K+1
4) Якщо К
100,
йти до 2
5) Виведення S
6) Кінець
Блок-схема такого процесу представлена на рисунок 3.
Рисунок 3 Блок-схема цикала з лічильником
При зміні діапазону чисел, наприклад до 1000, нам буде потрібно лише інакше сформулювати четверту інструкцію, а саме записати: якщо К 1000, йти до 2.