- •Основні поняття Object Pascal
- •Label { Розділ опису міток } Const { Розділ опису констант }
- •Лабораторна робота № 1 Створення простої програми у середовищі Delphi
- •Упорядкування і пошук даних
- •Лабораторна робота № 2 Упорядкування і пошук даних
- •Структуровані типи даних. Множини
- •Лабораторна робота № 3 Множини
- •Лабораторна робота № 4 Процедурні типи
- •Теоретичні відомості для виконання лабораторної роботи
- •1. Формула середніх прямокутників
- •2. Формула трапецій
- •3. Формула Сімпсона (формула парабол)
- •Pозв’язування рівнянь. Розв’язування рівнянь виду
- •Рекурсивні процедури і функції Рекурсія – це такий спосіб організації обчислювального процесу, при якому підпрограма в ході виконання звертається сама до себе.
- •Лабораторна робота № 5 Рекурсивні процедури і функції
- •Динамічні структури даних
- •Дані, які використовуються у програмі, поділяються на статичні й динамічні.
- •Вказівник може бути у трьох станах:
- •Лабораторна робота № 6 Динамічні структури даних
- •Лабораторна робота № 7 Розв’язання задачі з побудовою віконного інтерфейсу і підключенням форм Delphi
- •Лабораторна робота № 8 Розв’язання задачі з побудовою віконного інтерфейсу, підключенням форм Delphi та використанням графіки
- •Лабораторна робота № 9 Побудова проекту, що складається з декількох форм
Лабораторна робота № 4 Процедурні типи
Мета роботи:
-
Засвоєння процедурних типів.
2. Отримання практичних навиків передачі процедур і функцій як параметрів при зверненні до інших процедур і функцій.
Теоретичні відомості для виконання лабораторної роботи
Обчислення інтегралів. Для обчислення інтегралів використовуються формули наближеного інтегрування.
1. Формула середніх прямокутників
,
де – кількість точок розбиття відрізка на рівні частини, – крок розбиття, , , .
2. Формула трапецій
,
де – кількість точок розбиття відрізка на рівні частини, – крок розбиття, , , , .
3. Формула Сімпсона (формула парабол)
,
де – кількість точок розбиття відрізка на рівні частини, – крок розбиття, , , ,.
Обчислення інтегралів за згаданими формулами здійснюється з заданою точністю . Для досягнення заданої точності побудуємо процес обчислення значень інтеграла , , подвоюючи на кожному кроці кількість точок розбиття відрізка , тобто , де – початкова кількість точок розбиття, наприклад . Якщо виконується умова , то процес завершується, а вважається значенням інтеграла з точністю .
Pозв’язування рівнянь. Розв’язування рівнянь виду
, (1)
складається з двох етапів: відокремлення коренів, тобто встановлення проміжків , , в кожному з яких міститься тільки один корінь; уточнення коренів, тобто їх обчислення з наперед заданою точністю . Для відокремлення коренів використовуються аналітичні або графічні методи. Для уточнення коренів використовуються ітераційні методи. Розглянемо деякі методи уточнення коренів.
1. Метод поділу проміжку навпіл. Якщо функція неперервна і набуває на кінцях проміжку значень різних знаків, тобто , то корінь рівняння (1) можна обчислити з наперед заданою точністю . Побудуємо обчислювальний процес. Обчислимо середину проміжку . Оскільки , то буде: , або , або . Якщо , то знайдено точне значення кореня і процес завершується. При корінь міститься на проміжку , покладемо , при корінь міститься на проміжку , покладемо . Якщо довжина проміжку більша за , то знову обчислюється середина проміжку і т. д. Якщо довжина проміжку менша за , то процес обчислень завершується, а вважається наближенням кореня з точністю .
2. Метод ітерацій. Нехай на проміжку рівняння (1), де неперервна на функція, має єдиний корінь . Замінимо рівняння (1) еквівалентним йому рівнянням так, щоб , , а всі значення належали проміжку при .
Починаючи з деякого початкового наближення знаходимо послідовні наближення за формулою , . (2)
Обчислення завершуються при виконані умови
, (3)
при цьому вважається наближеним значенням кореня з заданою точністю .
Рівняння (1) завжди можна подати у вигляді так, щоб виконувалися вище наведені умови, наприклад,
, (4)
де – стала. При рівняння (4) і (1) еквівалентні. Сталу добирають так, щоб в околі кореня було тобто, щоб виконувались умови . Отже стала повинна мати той самий знак, що й , і задовольняти умову . Процес збігається тим швидше, чим ближче до нуля. Отже, слід добирати так щоб добуток був по можливості ближчий до для всіх .
3. Метод хорд (січних). Якщо функція двічі неперервно диференційовна на проміжку , похідні відмінні від нуля і зберігають знак на цьому проміжку, а , то за методом хорд наближене значення кореня знаходять як абсцису точки перетину хорди, що проходить через точки , з віссю .
Послідовні наближення кореня знаходять за формулою
, , (5)
де якщо , або якщо . Обчислення завершуються при виконанні умови
, (6)
де – задана точність, , , при цьому вважається наближеним значенням кореня з заданою точністю .
4. Метод дотичних (Ньютона). Якщо функція задовольняє ті ж умови, що і в методі хорд, то за методом дотичних наближене значення кореня знаходять як абсцису точки перетину дотичної до кривої в одній із точок чи з віссю .
Послідовні наближення кореня знаходять за формулою
, , (7)
де якщо , або якщо . Обчислення завершуються при виконані умови
, (8)
де – задана точність, , , при цьому вважається наближеним значенням кореня з заданою точністю .
5. Комбінований метод. Якщо функція задовольняє ті ж умови, що і в методі хорд, і в методі дотичних, то для уточнення кореня зручно комбінувати метод хорд і метод дотичних. При цьому одержуються оцінки кореня зверху і знизу.
Послідовні наближення кореня знаходять за формулами
, (9)
, , (10)
де якщо , або якщо .
Обчислення завершуються при виконанні умови
, де (11)
– задана точність, при цьому вважається наближеним значенням кореня з заданою точністю .
Завдання:
Розробити програму обчислення таблиці значень інтеграла з заданою точністю для , що змінюється на інтервалі з кроком . Для обчислення значення інтеграла використати одну із формул наближеного інтегрування для завдань: 1-4 – прямокутників; 5-9 – трапецій; 10-14 – Сімпсона. У програмі використати підпрограму обчислення інтеграла за вказаною формулою, в яку передати підінтегральну функцію як параметр. Результати обчислень надрукувати у вигляді таблиці, в кожному рядку якої розмістити значення і відповідне йому значення інтеграла.
1. , , , . 2. ,, , .
3. , , , . 4. , , ,.
5. , , , .
6. , , ,. 7. , , , .
8. , , , . 9. , , , . 10. , , , . 11. , , , .
12. , , , . 13. , , , .
14. , , , .
Розробити програму уточнення коренів рівняння на відрізку з точністю . Для уточнення коренів рівняння використати один із ітераційних методів для завдань: 15-18 – поділу відрізка пополам; 19-21 – ітерацій; 20-25 – хорд; 26-30 – дотичних; У програмі використати підпрограму уточнення коренів рівняння за вказаним методом, в яку передати як параметр функцію обчислення . Результати обчислень надрукувати у вигляді таблиці, у кожному рядку якої розмістити значення і відповідне йому значення кореня.
-
, . 16. , .
17. , . 18. , .
19. , . 20. , .
21. , . 22. , .
23. , . 24. , .
25. , . 26. , .
27. , . 28. , .
29. , . 30. , .