- •Лекція №11. Цикли та підпрограми
- •Зміст лекції
- •1. Алгоритмічна конструкція повторення та її різновиди: безумовні цикли, цикли з після умовою та з передумовою.
- •Цикл за лічильником
- •Цикл за вхідним значенням
- •Цикл за вихідним значенням
- •2. Розв’язування задач на використання різних типів циклів (обчислення сум, добутків, середніх значень наборів чисел, найбільшого та найменшого значення функції).
- •3. Оператори циклів Арифметичний цикл для
- •Ітераційний цикл поки
- •Ітераційний цикл до
- •Процедура типу Function і процедура типу Sub
2. Розв’язування задач на використання різних типів циклів (обчислення сум, добутків, середніх значень наборів чисел, найбільшого та найменшого значення функції).
Цикл з накопиченням характерний тим, що при черговому виконанні циклу нове значення вихідної змінної залежить від значення цієї ж змінної, визначеної на попередньому витку циклу. Накопичуватися може або сума значень, або добуток.
Задача 7. Визначити суму чисел натурального ряду доти, доки остаточне значення суми не перевищить 1000.
Вивести значення отриманої суми і кількість ітерацій (повторень циклу).
Основний цикл буде складатися з трьох типів: цикл з накопиченням (накопичується значення суми), цикл по вхідному значенню (перше значення натурального ряду є одиницею, а кожне наступне значення більше від попереднього на один) і цикл по вихідному значенню (ітераційний цикл продовжується, доки отримане значення суми не перевищить 1000). Переважаючим є тип циклу по вихідному значенню тому, що саме за вихідним значенням цикл або продовжується, або ні.
Алгоритм розв’язування задачі
1. Задати початкове значення накопичувача суми S (0).
2. Задати початкове значення числа натурального ряду n (1).
3. Провести накопичення суми (S + п).
4. Провести перевірку значення накопиченої суми.
5. Якщо отримане значення суми менше або дорівнює 1000, збільшити значення числа натурального ряду (п + 1) і цикл повторити з блоку № 3.
6. Якщо отримане значення суми більше за 1000, цикл припинити.
7. Вивести значення суми S.
8. Вивести кількість повторень (n).
Нижче показана блок-схема алгоритму розв'язання задачі.
Цикл з накопиченням
Задача 8. Серед заданих десяти значень х = {2, 8, 0, -6, -4, 22, 5, -9, 13, —12} обчислити суму додатних чисел.
Даний цикл організовується як цикл по лічильнику. За накопичувач суми вибирається змінна S. Перед першим виконанням циклу початкове значення S вибирається рівним нулю (це проводиться з тієї причини, що при додаванні нуля до будь-якого значення результат не зміниться).
Алгоритм розв’язування задачі
1. Задати початкове значення накопичувача суми S (0).
2. Задати початкове значення лічильника п (1).
3. Ввести поточне значення х.
4. Провести перевірку, чи введене значення х є додатнім.
5. Якщо результатом перевірки умови є ИСТИНА, то провести накопичення суми (S + х), і значення лічильника збільшити на одиницю (п + 1).
6. Якщо результат перевірки умови — ЛОЖЬ, то накопичення суми не приводити а значення лічильника збільшити на одиницю (п + 1).
7. Провести перевірку стану лічильника циклу. Якщо значення лічильника перевищує кількість заданих значень х (10), цикл припинити і вивести значення суми.
8. Якщо значення лічильника дорівнює або менше за кількість заданих х (10), цикл повторити з блоку № 4.
Нижче подана блок-схема алгоритму розв'язання задачі.
У наведеному прикладі використовується цикл з післяумовою (перевірка умови виконання циклу — в кінці).
Аналогічно можна побудувати алгоритм для накопичення добутку, лише як початкове значення добутку треба використати одиницю, виходячи з того, що при множенні будь-якого числа на одиницю результат не зміниться.
Обчислення в циклі з декількома параметрами, що змінюються одночасно.
Складні алгоритми можуть містити сукупності перелічених вище циклів. Цикл з декількома параметрами, що змінюються одночасно, організується за аналогічною схемою організації циклу з одним параметром. Для інших параметрів перед циклом необхідно задати їх початкове значення, а в середині циклу обчислити їх поточне значення.
Задача 9.Обчислити значення функції , де x змінюється від 1 з кроком 0,25, а y змінюється від 1 до 10 з кроком 1 .
Алгоритм розв’язування задачі
1. х=1,
2. для y=1;10;1
3. обчислити z за формулою
4. вивести z
5. збільшити значення x=x+0,25
6. перейти до п.2
7. кінець
***САМОСТІЙНО зобразити алгоритм розв’язування Задачі №9 у вигляді блок-схеми.
Знаходження найбільшого та найменшого значення.
Знаходження найбільшого чи найменшого значення функції здійснюється за умовною математичною формулою:
Аналогічно, для найменшого значення:
Задача 10. Знайти найменше значення функції
якщо х змінюється від 0 до С з кроком h.
Алгоритм розв’язування задачі
ввести a, b, c,
присвоїти ymin=1019
для х від 0 до С крок зміни h
обчислити y за формулою
перевірити y < ymin, якщо так, то ymin= y,
інакше перейти на п.3.
після виходу з циклу вивести ymin
кінець.
***САМОСТІЙНО зобразити алгоритм розв’язування Задачі № 10 у вигляді блок-схеми.
Використати алгоритмічну конструкцію повторення з блоком модифікація: