Арифметичний цикл - студопедія
Арифметичні називається циклічний процес, в якому кількість повторень відомо в момент входу в цикл. У мові Паскаль для реалізації цього виду циклів рекомендується використовувати оператор FOR ... DO. який отримав назву оператор циклу з параметром.
До першого входження в тіло арифметичного циклу відомо, скільки разів його необхідно повторити, наприклад, N раз. В арифметичних циклах обов'язково повинен бути присутнім лічильник (параметр) циклу, який показує, скільки разів до заданого моменту часу повторилося тіло циклу. Спочатку він приймає початкове значення, а при кожному проходженні тіла він змінюється на величину приросту, і так відбувається до тих пір, поки його значення або не перевищить кінцеве значення, рівне N (для випадку позитивного значення збільшення) або не стане менше N (для випадку від'ємного значення приросту), потім відбувається вихід з циклу.
Арифметичний цикл служить основою для алгоритмізації процесу, в якому кількість повторень відомо заздалегідь, тому при використанні такого процесу необхідно чітко усвідомити, яка змінна є лічильником циклу, який діапазон її зміни (початковий і кінцевий значення), чому дорівнює її приріст за один прохід циклу.
Найчастіше алгоритм арифметичного циклу будується на основі циклу з передумовою (ЦИКЛ - ДО), шаблон такого циклу для позитивного значення збільшення лічильника циклу наведено на рис. 2.5. У блоці завдання початкових умов вказуються початковий і кінцевий значення лічильника циклу і його приріст, при цьому лічильник циклу отримує своє початкове значення, потім перевіряється умова повторення циклу (лічильник циклу не більше кінцевого значення лічильника), в залежності від виконання якого тіло циклу виконується ще раз (по гілці ДА) або відбувається вихід з циклу (по гілці НІ), потім слід тіло циклу. Після виконання тіла циклу лічильник циклу збільшує своє значення на величину приросту, а потім здійснюється перехід на перевірку умови повторення.

Мал. 2.5 Шаблон арифметичного циклу
Арифметичні цикли використовуються, як правило, для вирішення наступних завдань:
· Обчислення суми N доданків;
· Обчислення добутку N сомножителей;
· Табулювання функції на кінцевому інтервалі в N точках.
Розглянемо докладніше приклади розв'язання таких задач.
Обчислення суми доданків.
Нехай необхідно обчислити
Вихідними даними алгоритму є значення змінної N. яке необхідно ввести, а вихідними даними алгоритму є значення змінної S. яке треба обчислити і вивести.
В даному прикладі лічильником циклу є змінна i. яка приймає значення від 1 до N з кроком 1.
Уявімо процес обчислення суми S як послідовне обчислення часткових сум:
;
;
;
Виходячи з цього, початкове значення суми S приймається рівним 0, потім, на кожному кроці поточне значення S збільшується на величину i -го доданка:
Заповнимо таблицю імен об'єктів:
Ім'я об'єкта в завданні
Ім'я об'єкта в блок-схемі
При складанні програми по блок-схемі блоку "Початок" поставимо у відповідність заголовок програми PROGRAM, блоку опису використовуваних в програмі змінних відповідає розділ опису змінних VAR декларативною частини блоку. У цьому розділі містяться два опису. змінні I і N оголошуються цілими, а змінні S і A речовими.
Далі слід виконавча частина блоку, що є складовою оператор. Вона починається з відкриває операторної дужки BEGIN. За нею йдуть оператори програми. Блоку введення ставимо у відповідність виклик процедури виведення інформації на екран дисплея WRITELN для виведення запрошення до введення і виклик процедури введення інформації з клавіатури READLN для введення вихідних даних алгоритму - значення N.
Далі програмуємо оператори присвоювання для завдання сумі S початкового значення 0, і параметру циклу I початкового значення 1, ставлячи кожному блоку у відповідність один оператор, потім переходимо до програмування циклу з передумовою за допомогою оператора WHILE. У тілі циклу міститься більше одного оператора, тому необхідно використання операторних дужок BEGIN END. У тілі циклу послідовно обчислюються значення А, S і значення лічильника циклу збільшується на величину приросту.
По виходу з циклу висновок інформації програмуємо за допомогою виклику процедури виведення інформації на екран дисплея WRITELN, блоку "кінець" ставимо у відповідність закриває операційну дужку END.
В результаті виходить наступна програма:
VAR I, N: INTEGER;
WRITELN ( 'ВВЕДИ ЗНАЧЕННЯ N');