Паскаль: цикл "поки" та його використання, Детальна інформація

Паскаль: цикл "поки" та його використання
Тип документу: Реферат
Сторінок: 9
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 21.5
Скачувань: 1037
Зауважимо, що якщо порядок рекурентного співвідношення k=1, то для обчислення нового члена може виявитися достатнім однієї змінної. Так було в перших задачах, де, наприклад, при виконанні p:=p*a спочатку за старим значенням змінної p обчислювалося нове й потім їй же присвоювалося. Проте далі ми наведемо приклади, де послідовність задається співвідношенням порядку 1, але в умові продовження обчислень використовуються два останніх члени. Тому там будуть потрібні дві змінні.

Використання рекурентних співвідношень дозволяє легко програмувати розв'язання задач, де шукані величини можуть бути виражені як члени рекурентних послідовностей. Треба:

зрозуміти, що розв'язання задачі можна побудувати на використанні рекурентної послідовності;



V

X

\x017D

\x00A8

\x00AA

U

Ue

Oзаписати відповідне рекурентне співвідношення;

визначити перші члени послідовності, що обчислюються без застосування співвідношення;

сформулювати умову, за якої треба продовжувати застосування рекурентного співвідношення.

Після цього згадані вище "деталі конструктора" та порядок їх розташування в алгоритмі стають очевидними.

Програма – це абсолютно точний опис дій, які треба виконати. Її неможливо написати, не сформулювавши чітко й точно, що ж саме повинно бути виконано. Рекурентні співвідношення якраз і дають точне вираження необхідних дій та служать надійною основою для написання програми. Насмілимося запевнити читача, що витрати часу на попереднє формулювання рекурентних співвідношень окупаються при написанні програми і дозволяють уникнути багатьох помилок.

2.2. Системи рекурентних співвідношень

Є чимало задач, у розв'язанні яких використовуються не одна, а кілька рекурентних послідовностей. Члени послідовності можуть залежати від попередніх членів як "своєї", так і інших послідовностей. Ці залежності записуються у вигляді систем рекурентних співвідношень. Насправді, ми вже бачили зв'язані послідовності: члени послідовності 1!, 2!, 3!, … залежать від їх номерів і попередніх членів. Але послідовність номерів сама рекурентна, оскільки кожний номер на 1 більше попереднього.

Задачі

4.* Написати функцію обчислення кількості десяткових цифр натурального числа.

5.* Один із варіантів алгоритму Евкліда обчислення найбільшого спільного дільника чисел a і b (НСД(a,b)) грунтується на обчисленні рекурентної послідовності {p}, де p1=max{a,b}, p2=min{a,b}, pn=pn-2 mod pn-1 при n>2. Шуканим є останнє ненульове значення послідовності. Уточнити алгоритм Евкліда у вигляді функції.

6. Послідовність {xn}, задана співвідношеннями

x1=(a+m-1)/2,

)/m при i > 1,

сходиться до a1/m. Запрограмувати обчислення a1/m при довільному додатному дійсному a з точністю \xF065 , тобто за потрібне число приймається перше xn таке, що | xn-xn-1 |<\xF065 .

4.7. Послідовність сум {sn}, де sn=1+x+x2/2!+…+xn/n!, за умови 0\xF0A3 x<1 "достатньо швидко" сходиться до ex. Запрограмувати обчислення ex при x\xF0CE [0;1) із точністю \xF065 , тобто за потрібне число приймається перше sn таке, що | sn-sn-1 |<\xF065 .

Запрограмувати обчислення ex при довільному x, застосовуючи "формули зведення" – рівності ex=e[x]e{x}, ex=1/e-x, де [x] і {x} позначають цілу й дробову частини x. Обчислити e[x] шляхом множення сталої e=2.7182818 на себе [x] разів.

4.8. Послідовність сум {sn}, де sn=1-x2/2!+…+(-1)nx2n/(2n)!, за умови |x|\xF0A3 \xF070 /4 "достатньо швидко" сходиться до cos(x). Запрограмувати обчислення cos(x) при x\xF0CE [-\xF070 /4; \xF070 /4] з точністю \xF065 , тобто за потрібне число приймається перше sn таке, що | sn-sn-1 |<\xF065 .

Запрограмувати обчислення cos(x) при довільному x, застосовуючи тригонометричні формули зведення.

3. Числа прості й не тільки

The online video editor trusted by teams to make professional video in minutes