Алгоритмічний мову pascal

Оператори циклу

Цикл з параметром

Оператор циклу застосовується при виконанні розрахунків або інших дій, що повторюються певну кількість разів. Оператор має вигляд: або Тут i - параметр циклу (змінна порядкового типу), N1, N2 - початкове і кінцеве значення параметра циклу i. N1, N2 можуть бути константами, змінними або виразами порядкового типу. Нагадаємо, що "оператор" може мати вигляд: Begin "оператори" end; Схема виконання оператора циклу з параметром має вигляд:


У разі зв'язки "To" цикл виконується за умови N1 = N2 і відбувається з одиничним зменшенням параметра циклу i від N1 до N2. В операторі циклу не дозволяється присвоювати параметру циклу будь-яке значення. Після закінчення циклу значення параметра циклу "i" невизначено. Оператор циклу часто застосовується для підсумовування значень деякої послідовності чисел або значень функції при відомому числі операцій підсумовування. Нагадаємо деякі визначення, пов'язані з розрахунком суми послідовності. Сума членів послідовності величин

називається кінцевою сумою

Для деяких послідовностей відомі формули розрахунку кінцевих сум, наприклад: при an = an -1 + d; Sn = (a1 + an) * n / 2; - арифметична прогресія, при an = an -1 * q; Sn = (a1 - an * q) / (1-q); - геометрична прогресія, де d і q - постійні числа. Тут N-ий член послідовності виражається через (N-1) -ий член. Такі залежності називаються реккурентное. Кінцева сума послідовності може бути невідома, тоді для її розрахунку застосовується алгоритм підсумовування членів послідовності в циклі від 1 до N. Наведемо приклад розрахунку кінцевої суми послідовності: 12 + 32 + 52 +. + (2 * N-1) 2; Sn = N * (4 * N2 -1) / 3; У деяких випадках "N" -ий член послідовності визначається через суму попередніх членів, наприклад,

і кінцеву суму можна розрахувати за формулою:

де "S0" - початкова сума. Розглянемо програму обчислення кінцевої суми грошового вкладу в банк через N місяців при щомісячній процентною ставкою "pr" (5% Відповідне pr = 5). Часто застосовуються вкладені оператори циклу. Наприклад, якщо необхідно провести всі варіанти розрахунку при зміні декількох параметрів в заданих діапазонах. Складемо програму розрахунку функції y = A * sin (x) - cos (x) / A; при зміні аргументу "x" в діапазоні від 0 до Pi з кроком Pi / 100 і при зміні параметра "A" в діапазоні від 1 до 3 з кроком 0.5.

Оператори циклу з умовою

У Турбо-Паскалі застосовуються два оператора циклу з умовою: - цикл з передумовою: перевірка умови перед кожним виконанням "оператора", - цикл з умовою поста: перевірка умови після кожного виконання "операторів". Тут "умова" - вираз логічного типу (Boolean).

Схема виконання операторів має вигляд:


У циклі While "оператор" виконується якщо умова вірна (True), якщо умова помилкова (False), то цикл закінчується, т. Е. Цикл While повторюється поки виконується умова. Цикл While починається перевіркою умови, тому, якщо початкова умова помилкова, то "оператор" не виконується жодного разу. Для включення в тіло циклу кількох операторів застосовується складовою оператор: Begin "оператори" end. Цикл Repeat повторюється, якщо умова помилкова (False), і закінчується, якщо умова вірна (True), т. Е. Цикл Repeat повторюється до виконання умови. Цикл Repeat закінчується перевіркою умови, тому "оператори" виконуються не менше ніж один раз. У тілі циклу може записуватися більше одного оператора. Цикли з умовою зазвичай використовуються в тих випадках, якщо кількість повторень блоку операторів заздалегідь не відомо, наприклад, при розрахунку суми членів нескінченної низки із заданою похибкою. Сума членів нескінченної послідовності

називається нескінченним рядом і записується у вигляді:

Тут an - загальний член ряду. Сума кінцевого числа членів ряду називається частковою сумою і позначається "Sn". Якщо сума членів нескінченної низки має кінцевий межа "S", то ряд називається збіжним. Для деяких рядів отримані формули розрахунку суми членів ряду. Наприклад, сума членів числового ряду:

1 + 1/32 + 1/52 +. + 1 / (2 * N-1) +.

має межа S = Pi 2/8 і загальний член an = 1 / (2 * N-1) 2. де N = 1, 2, 3. Для сходиться ряду обчислюється послідовність часткових сум із заданою похибкою. Абсолютна похибка розрахунків визначається за формулою Eps = abs (S-Sn), або Eps = abs (an), якщо значення S невідомо. Відносна похибка розрахунків визначається за формулою Eps_o = abs ((S-Sn) / S), або Eps_o = abs (an / Sn). Часткові суми обчислюються за формулою: Sn = Sn-1 + an Для знакозмінного ряду слід додати k1 = -1, а в циклі: k1: = - k1, an = k1 * an. У деяких випадках "N" -ий член ряду виражається через "N-1" -ий, наприклад, для ряду:

1 + 1/2! + 1/4! + 1/6! +. + 1 / (2 * N)! +. ; N = 0, 1, 2.

загальний член ряду обчислюється за формулою: an = an-1 * k; Параметр k = an / an-1 - коефіцієнт зростання обчислюється попередньо (до написання програми). Для даного ряду

Тут N! = 1 * 2 * 3 *. * N; - обчислення факторіала числа "N", причому 0! = 1. Розрахунок часткових сум проводиться в циклі з умовою, наприклад, для даного ряду операторами:

Оператори обмеження і переривання циклу

Дані оператори застосовуються всередині операторів циклу з параметром або умовою. Оператори мають вигляд: Оператори Continue і Break дозволяють виробляти дії не для всіх операторів усередині циклу. Дія оператора Continue полягає в передачі управління на початок циклу, при цьому контролюється умова виходу з циклу. Дія оператора Break полягає в передачі управління оператору, наступного за останнім оператором циклу, при цьому не контролюється умова виходу з циклу. У вкладених циклах оператори Continue і Break діють тільки на цикл в якому вони записані. Наведемо приклад використання операторів для блокування несанкціонованого доступу до програми.