
- •Основні поняття 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.
,
.