Назад Зміст Вперед

Задачі на обчислення елементів послідовності з заданою точністю

Ми обчислювали елементи послідовності трьома способами:

  1. Підставляли номер елемента послідовності у формулу. Наприклад,
  2. Використовували значення одного попереднього елемента. Наприклад,
  3. Використовували значення двох попередніх елементів. Наприклад,

Але ми завжди знали, скільки елементів послідовності потрібно обчислити та надрукувати, тому використовували оператор FOR.

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

Ясно, що для реалізації цього алгоритму потрібно використовувати цикл while, бо спочатку потрібно перевірити значення обчисленого елементу, а потім, в залежності від значення, або друкувати цей елемент та обчислювати наступний, або завершувати цикл.

Приклад 1

Для послідовності написати такі програми:

  1. Дано дійсне число e. Друкувати елементи послідовності, поки ai >=e
  2. Дано дійсне число e. Знайти суму єлементів послідовності, які ai >=e
  3. Дано дійсне число e. Знайти перший елемент послідовності та його порядковий номер, який < e
  4. Дано дійсне число e. Друкувати елементи послідовності, поки ai-1- ai >=e

У цій задачі елементи послідовності обчислюються підставленням їх номера (i) у формулу. Підставимо та отримаємо:

a1=2.0000 a2=1.5000 a3=1.3333 a4=1.2500 a5=1.2000...

Результат роботи програми 1

Дано дійсне число e. Друкувати елементи послідовності, поки ai >=e
Ввід Вивід
e=1.2 2.0000 1.5000 1.3333 1.2500 1.2000

Програма 1

Результат роботи програми 2

Дано дійсне число e. Знайти суму єлементів послідовності, які ai >=e
Ввід Вивід
e=1.2 s=7.2833

Програма 2

Результат роботи програми 3

Дано дійсне число e. Знайти перший елемент послідовності та його порядковий номер, який < e
Ввід Вивід
e=1.2 a=1.1667 i=6

Програма 3

Програма 4

Дано дійсне число e. Друкувати елементи послідовності, поки ai-1- ai >=e

Ця задача відрізняється від задачі у прикладі 1 тим, що елементи послідовності обчислюються та виводяться на екран тоді, коли різниця між „попереднім” та „наступним” елементами досить велика та перевищує введене число e.

Тобто потрібно додатково використовувати вже відомий алгоритм: для зберігання елементів послідовності використовувати дві змінних – „попереднє” (a1) та „наступне” (a2). Причому, кожний елемент послідовності (окрім першого та останнього) на одному витку циклу є „наступним”, а на другому витку „попереднім”.

Результат роботи програми

Ввід Вивід
0.03 2.0000 1.5000 1.3333 1.2500 1.2000 1.1667
0.02 2.0000 1.5000 1.3333 1.2500 1.2000 1.1667 1.1429

Змінні:

Вхідні:

Вихідні:

Проміжні:

Алгоритм

  1. Введемо з клавіатури значення e.
  2. Оскільки ми будемо порівнювати різницю між „попереднім” та „наступним” елементами послідовності та число e, та використовувати цикл з передумовою while, то до початку циклу потрібно:
  3. Нам потрібно друкувати елементи послідовності, різниця між якими >=e. Тому у заголовку циклу while будемо перевіряти цю умову:
  4. У тілі циклу, у фігурних дужках будемо виконувати такі дії:

Програма 4

Приклад 2

Для послідовності Фібоначчи написати такі програми:

  1. Дано натуральне число e. Обчислювати елементи послідовності, поки ai <=e
  2. Дано натуральне число e. Знайти суму єлементів послідовності, які ai <=e.
  3. Дано натуральне число e. Знайти перший елемент та його порядковий номер, який > e
  4. Дано натуральне число n. Чи є воно елементом цієї послідовності ?

У цій задачі кожний елемент послідовності обчислюється через два попередніх. Отримаємо:

f1=1 f2=1 f3=2 f4=3 f5=5 f6=8...

Результат роботи програми 1

Дано натуральне число e. Обчислювати елементи послідовності, поки ai <=e
Ввід Вивід
e=10 1 1 2 3 5 8

Програма 1

У цьому прикладі до циклу присвоюємо значення двом першим елементам послідовності та перший елемент виводимо на екран.

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

Результат роботи програми 2

Дано натуральне число e. Знайти суму єлементів послідовності, які ai <=e.
Ввід Вивід
e=10 s=20

Програма 2

Для обчислення суми елементів можна використовувати програму обчислення елементів послідовності. У цій програмі замість виводу елементу на екран, написати оператор додавання цього елемента до суми. Обчислену суму вивести на екран після завершення циклу.

Результат роботи програми 3

Дано натуральне число e. Знайти перший елемент та його порядковий номер, який > e
Ввід Вивід
e=10 f=13 i=7

Програма 3

Для рішення цієї задачі теж можна використовувати програму обчислення елементів послідовності. Але щоб знайти перший ai > е, потрібно обчислювати елементи aі <= e. Оператор виводу елементу на екран потрібно виконати після завершення циклу.

Результат роботи програми 4

Дано натуральне число n. Чи є воно елементом цієї послідовності?
Ввід Вивід
15 no
13 yes

Алгоритм

  1. Введемо з клавіатури значення n
  2. До початку циклу потрібно присвоїти початкові значення першим двом змінним (f1, f2).
  3. Далі, у циклі, будемо обчислювати елемент f3 до тих пір, поки його значення не стане більшим або рівним введеному числу n. Тобто цикл завершиться при f3>=n. Можливі два випадки: цикл завершився при f3>n , тобто всі наступні елементи послідовності більше n і такого числа у послідовності немає, або цикл завершився при f3=n, тоді таке число є у послідовності.
  4. Оскільки ми спочатку будемо обчислювати f3, а потім порівнювати його з n, краще використовувати цикл do while
  5. У циклі будемо обчислювати елементи послідовності Фібоначчі таким чином:
  6. Перевіримо умову завершення циклу:
  7. Після завершення циклу потрібно перевірити, як завершився цикл:

Програма 4

Варіанти задач

  1. Дано дійсне число e. З чотирма знаками після крапки друкувати числа i=2,3... поки ai >=e.
  2. Дано дійсне число e. З чотирма знаками після крапки друкувати числа i=1,2,3... поки ai <=e.
  3. Дано дійсне число e. З чотирма знаками після крапки друкувати числа i=2,3... поки ai<=e.
  4. Дано дійсне число e. З трьома знаками після крапки знайти суму всіх чисел ai>=e, якщо числа i=1,2,3...
  5. Дано ціле число e. Знайти суму всіх чисел ai<=e, якщо числа i=1,2,3...
  6. Дано дійсне число e. Знайти серед чисел i=1,2,3... перше число ai< e і його номер i.
  7. Дано дійсні числа e, z(0< z <1), q(q >e). Знайти серед чисел i=2,3... перше число ai< e і його номер i.
  8. Дано дійсне число e. Знайти серед чисел i=2,3... перше число ai>e і його номер i.
  9. Дано натуральні числа e, x. Друкувати числа i=1,2,3... поки ai-ai-1<=e
  10. Дано дійсне число e. З трьома знаками після крапки друкувати числа i=2,3... поки .
  11. Дано дійсне число e. З 7 знаками після крапки знайти суму всіх чисел , i=2,3... , у яких
  12. Дано дійсне число e. З 7 знаками після крапки знайти суму всіх чисел , i=2,3..., у яких
  13. Дано дійсне число e та натуральне число x. Знайти серед чисел i=1,2,3... перше число ai і його номер i , таке що .
  14. Дано дійсні додатні числа e, x, b. Знайти серед чисел i=1,2,3... , перше число ai і його номер i , таке що .
  15. Дано натуральні числа e, z (z>1), q (q< e). Чи є серед чисел i=2,3... , число e?
  16. Дано натуральне число b. Чи є це число серед чисел послідовності i=3,4...?
  17. Дано натуральні числа x, b, c, d, q, r. Чи є число x серед чисел послідовності i=3,4...? Якщо ні, то надрукувати перше число ai і його номер i , таке що ai> x.

Назад Зміст Вперед