ПОБУДОВА ПРОСТИХ ТА СКЛАДНИХ ЦИКЛІЧНИХ АЛГОРИТМІЧНИХ ПРОЦЕСІВ
Мета: Навчитись складати алгоритми простих та складних циклічних алгоритмічних процесів, будувати блок-схеми циклів з параметром, передумовою та післяумовою.
ТЕОРЕТИЧНІ ВІДОМОСТІ
Алгоритми, в яких певна послідовність команд повторюється декілька разів з новими вхідними даними, називаються циклічними.
Необхідність у використанні циклічних команд виникає, коли треба декілька разів використовувати одні й ті ж формули з різними значеннями змінних, або якісь інші однотипні команди.
Є два типи повторення: з передумовою та з післяумовою (див. рис. 1, рис. 2). Тіло циклу – це послідовність команд, що повторюються при виконанні циклу.
При виконанні циклу з передумовою спочатку перевіряється умова (обраховується деякий логічний вираз) і, у випадку, коли це значення правдиве, виконуються команди тіла циклу. Виконання буде проводитися по циклу до тих пір, поки умова зберігає значення TRUE. Як тільки умова стане FALSE, виконання циклу припиниться і управління передасться наступній за циклом команді.
При виконанні циклу з післяумовою спочатку виконуються команди, потім перевіряється умова (обчислюється деякий логічний вираз). У випадку, коли результат FALSE, виконується тіло циклу ще раз. В протилежному випадку управління передається наступній команді, яка розташована відразу після циклу.
Якщо наперед відома кількість повторень, то часто використовують цикл з параметром. Блок-схема циклу з параметром зображена на рис. 3. Змінна i є параметром циклу, вона виконує роль лічильника. Цикл буде виконуватись стільки разів, скільки різних значень набуде параметр циклу, змінюючись від початкового значення (ip) до кінцевого (ik) з заданим кроком. За замовчуванням крок дорівнює 1.
ПОБУДОВА АЛГОРИТМІВ ЦИКЛІЧНИХ ОБЧИСЛЮВАЛЬНИХ ПРОЦЕСІВ
Приклад 1
Скласти блок-схему алгоритму обчислення середньомісячного прибутку фірми за рік відповідно до значень щомісячних прибутків, які вводяться з клавіатури.
Методичні рекомендації
1. Проаналізувати поставлене завдання.
Для реалізації поставленого завдання потрібно по черзі зчитати прибуток за кожен місяць та просумувати його. Потім отриману загальну суму розділити на кількість місяців – 12. Щоб здійснити таке обчислення, доцільно використати цикл з параметром, оскільки наперед відома кількість повторень, тобто скільки раз потрібно зчитати суму прибутку в місяць та додати до загальної суми (за рік). Так як рік має 12 місяців, то і кількість повторень також 12.
2. Скласти блок-схему розв’язку задачі.
Розв’язок
Блок-схема розв’язку поставленої задачі має вигляд, зображений на рис. 4.
Рис. 4. Блок-схема алгоритму 1
Приклад 2
Скласти блок-схему алгоритму обчислення середньомісячного прибутку фірми за деякий період, межі якого (номери місяців) вводяться користувачем. Передбачити перевірку коректності вводу номера місяця. Значення прибутку за кожен місяць вводиться з клавіатури.
Методичні рекомендації
1. Проаналізувати індивідуальне завдання.
На відміну від попередньої, в даній задачі наперед невідомо, скільки разів потрібно зчитувати суму за місяць та сумувати загальну. В таких випадках використовують цикли з передумовою або післяумовою. Спочатку в алгоритмі потрібно зчитати номер початкового та кінцевого місяця, потім – перевірити, чи зчитані значення належать проміжку [1:12], якщо ні – вивести повідомлення, якщо так – розпочати цикл. Цикл буде повторюватися доки, починаючи з початкового, не дійдемо до кінцевого місяця, до того ж, у випадку, коли кінцевий менший за початковий, цикл жодного разу не повинен виконуватися. Отже, для вирішення цієї задачі доцільно застосувати цикл з передумовою.
2. Скласти блок-схему розв’язку задачі.
Розв’язок
Блок-схема розв’язку даної задачі має вигляд, зображений на рис. 5.
Рис. 5. Блок-схема алгоритму 2
Приклад 3
Скласти блок-схему алгоритму обчислення кількості місяців, починаючи з першого, загальна сума прибутку за які у фірми досягне 100 тис. грн. Якщо такої суми не буде досягнуто і до 12-го місяця, вивести відповідне повідомлення. Значення прибутку за кожен місяць вводиться з клавіатури.
Методичні рекомендації
1. Проаналізувати індивідуальне завдання.
Для вирішення цієї задачі потрібно скористатися командою циклу з післяумовою, оскільки, по-перше, кількість повторень наперед невідома, по-друге, потрібно спочатку просумувати значення прибутку, а потім порівняти отриману суму з 100 тис. і так повторювати, доки сума не досягне зазначеної величини або доки кількість місяців не досягне 12. В другому випадку потрібно вивести на екран повідомлення про те, що ця фірма за рік не отримала такого прибутку.
2. Скласти блок-схему розв’язку задачі.
Розв’язок
Блок-схема розв’язку даної задачі має вигляд, зображений на рис. 6.
Рис. 6. Блок-схема алгоритму 3
Завдання
Скласти блок-схеми розв’язку задач циклічних алгоритмічних процесів згідно варіанта.
Варіанти завдань
Рівень А
Ввести необхідні дані (відповідно до варіанту) та виконати необхідні дії (див. таб.1).
Таблиця 1. Варіанти завдань
№ |
Завдання |
1 |
Знайти суму перших N натуральних чисел. |
2 |
Знайти необхідну кількість натуральних чисел, починаючи з одиниці, щоб їх сума дорівнювала N2. |
3 |
Підрахувати суму натуральних чисел від одиниці до числа, квадрат якого більше за N. |
4 |
Знайти найбільший спільний дільник двох натуральних чисел. |
5 |
Знайти факторіал числа N. |
6 |
Знайти суму чисел, які послідовно вводяться з клавіатури. Підрахунок зупинити під час вводу наступного числа, рівного нулю. |
7 |
Перевірити, чи можна задане число N записати у вигляді квадрата простого числа. |
8 |
Визначити, чи задане число N є простим. |
9 |
Знайти всі прості числа, що знаходяться в заданому діапазоні. |
10 |
Визначити, чи можна записати задане число N у вигляді добутку двох простих чисел. |
11 |
Знайти суму дільників натурального числа N. |
12 |
Знайти наступне просте число відносно іншого заданого простого числа N. |
13 |
Записати програму вгадування попередньо заданого числа. Вихід з програми здійснити лише при вгадуванні, при цьому необхідно вказати кількість спроб. |
14 |
Записати програму розкладу натурального числа N на прості множники. |
15 |
Знайти середнє арифметичне чисел, послідовно введених з клавіатури. Підрахунок зупинити після вводу наступного числа, рівного нулю. |
16 |
Знайти суму чисел, які послідовно вводяться з клавіатури. Підрахунок зупинити під час вводу наступного числа, рівного нулю. |
17 |
Визначити, чи задане число N є простим. |
18 |
Знайти найбільший спільний дільник двох натуральних чисел. |
19 |
Знайти необхідну кількість натуральних чисел, починаючи з одиниці, щоб їх сума дорівнювала N2. |
20 |
Знайти наступне просте число відносно іншого заданого простого числа N. |
21 |
Записати програму розкладу натурального числа N на прості множники. |
22 |
Знайти найбільший спільний дільник двох натуральних чисел. |
23 |
Знайти необхідну кількість натуральних чисел, починаючи з одиниці, щоб їх сума дорівнювала N2. |
24 |
Підрахувати суму натуральних чисел від одиниці до числа, квадрат якого більше за N. |
25 |
Знайти суму перших N натуральних чисел. |
Рівень Б
Знайти суму перших N членів ряду для значення X (N, X зчитуються з клавіатури). Формула загального члена ряду має вигляд, представлений у таблиці 2.
Таблиця 2. Варіанти завдань
№ |
Функція |
№ |
Функція |
1 |
|
14 |
|
2 |
|
15 |
|
3 |
|
16 |
|
4 |
|
17 |
|
5 |
|
18 |
|
6 |
|
19 |
|
7 |
|
20 |
|
8 |
|
21 |
|
9 |
|
22 |
|
10 |
|
23 |
|
11 |
|
24 |
|
12 |
|
25 |
|
13 |
|
|
|
Рівень В
Вивести таблицю значень заданої функції (див. таб.3) для аргументу на інтервалі від Хпоч до Хкін та з постійним кроком H, значення яких зчитуються з клавіатури. Підрахувати середнє арифметичне виведених значень функції, а також найбільше та найменше її значення на зазначеному проміжку.
Таблиця 3. Варіанти завдань
№ |
Функція |
№ |
Функція |
1 |
|
14 |
|
2 |
|
15 |
|
3 |
|
16 |
|
4 |
|
17 |
|
5 |
|
18 |
|
6 |
|
19 |
|
7 |
|
20 |
|
8 |
|
21 |
|
9 |
|
22 |
|
10 |
|
23 |
|
11 |
|
24 |
|
12 |
|
25 |
|
13 |
|
|
|
Висновки
ВИМОГИ ДО ЗВІТУ
У звіті з практичної роботи повинні бути відображені:
КОНТРОЛЬНІ ЗАПИТАННЯ
1