русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Теоретичні відомості


Дата додавання: 2014-11-27; переглядів: 825.


Обчислення суми кінцевого ряду є задачею, що використовує цикл з відомою кількістю повторень.

У цьому випадку доцільно скористатися оператором циклу for. Хоча можливо організувати цикл і з допомогою операторів циклу while або repeat.

Параметром циклу може бути змінна простого дискретного типу. Розглянемо цей цикл якщо параметром є змінна цілого типу.

Загальний вигляд оператора циклу з параметром FOR:

- При збільшенні значення параметра:

for i: = M1 to M2 do S;

- При зменшенні значення параметра:

for i: = M1 downto M2 do S;

де i - параметр циклу (не може бути величиною дійсного типу);

M1 і M2 - початкове і кінцеве значення параметра циклу відповідно. Значення M1 і M2 можуть бути записані константами або виразами, співпадаючими за типом з параметра циклу.

S - тіло циклу, що складається з простого або складеного оператора.

У тому випадку, якщо крок зміни параметра відмінний від одиниці або заздалегідь невідоме число повторень тіла циклу, необхідно застосовувати один із двох інших операторів циклу: while або repeat.

Обчислення суми ряду полягає в отриманні в результаті циклічного процесу послідовності s1, s2, ..., sn. Кожен член суми аі обчислюється за формулою загального члена ряду. Якщо у формулу загального члена суми входять ступені змінних або факторіали, то для зменшення витрат часу на обчислення поточного члена ряду доцільно використовувати рекурентну формулу.

Для отримання рекурентної формули необхідно використати відношення поточного члена ряду до попереднього: к=ai/ai-1. Тоді поточний член ряду обчислюється так: ai=k*ai-1.

Якщо в програмі ідентифікатором а позначений елемент ряду, то оператор присвоювання а:=а*k, який знаходиться всередині циклу, дозволяє обчислити поточний член ряду з попереднього.

Приклад. Для заданого ряду необхідно знайти суму N елементів ряду (з використанням оператора FOR).

Виконаємо це завдання для n=9 і x=0.6.

 

Для отримання рекурентної формули використовуємо відношення поточного члена до попереднього ряду: .

Тоді (4.1)

 

program lab;

const

n=9; {кількість елементів ряду}

x=0.6;

var

s:real; {сума}

q:real; { коефіцієнт рекурентності}

a:real; { елемент ряду}

i:integer; {лічильник елементів ряду}

begin

s:=1; {початкове значення суми}

a:=1; {0-й елемент}

for i:=1 to n do

begin

q:=-x/i; {i-й коефіцієнт рекурентності}

a:=a*q; {наступний елемент ряду}

s:=s+a {підсумовування}

end;

Writeln(' S=',s:8:4); {виведення результату}

end.

 

Коефіцієнт рекурентності можна не позначати окремим ідентифікатором. Тоді елемент ряду обчислюється так: a:=-a*x/i.

Для того, щоб програма стала більш універсальною, кількість елементів ряду та значення х можна описати не як константи, а як змінні і ввести їх на етапі виконання програми:

var

x,a, s:real;

n, i:integer;

begin

writeln(‘введіть х та кількість елементів ряду’);

readln(x,n);

s:=1; {початкове значення суми}

a:=1; {0-й елемент}

for i:=1 to n do

begin

a:=-a* x/i; {наступний елемент ряду}

s:=s+a {підсумовування}

end;

Writeln(' S=',s:8:4); {виведення результату}

end.

 


<== попередня лекція | наступна лекція ==>
Варіанти завдань | Варіанти завдань


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн