Програма складається з головного блоку, шести процедур:
- VVID_INTERVAL;
- INIT_GAUS;
- INIT_CHEB;
- CALCULATION;
- VYVID_REZ;
- INFORM.
Запуск програми здійснити двома способами:
- з головного меню інтегрованого середовища Turbo Pascal шляхом вибору опції Run (попередньо програма повинна бути завантажена в ОП - F10, File, Open, INTEGRALY.PAS);
- з середовища операційної оболонки Norton Commander шляхом запуску INTEGRALY.EXE (попередньо програма повинна буди відкомпільована з опцією Destination To Memory).
Програма виводить на дисплей головного меню, котре пропонує користувачеві вибір однієї з опцій:
- ВВІД
- ОБЧИСЛЕННЯ
- РЕЗУЛЬТАТИ
- ІНФОРМАЦІЯ
- ВИХІД.
При виборі певної опції активізується відповідна процедура. Завершення роботи програми і повернення в середовище системи програмування Turbo Pascal здійснюється при натисканні клавіші Esc, що відповідає вибору опції "ВИХІД". Програма знаходить розв’язки систем лінійних рівнянь з двома та трьома невідомими, виводить обчислені визначники та знайдені розв’язки на дисплей, або інформує користувача про відсутність розв’язків.
Опишемо процедури програми INTEGRALYS.PAS.
Процедура VVID_INTERVAL. Призначення - ввід лівої та правої меж інтегрування (інтервалу інтегрування). Процедура викликається з головного меню програми при виборі пункту "ВВІД" шляхом натискання функціональної клавіші F2.
Після вводу меж інтегрування процедура припиняє роботу і повертає керування в програму. Процес виконання процедури представлено екранною копією (див. додаток 1).
Процедура INIT_GAUS. Призначення - визначення (ініціація) значень елементів
квадратурної формули Гауса. Виклик процедури здійснюється процедурою CALCULATION.Процедура INIT_CHEB. Призначення - визначення (ініціація) значень елементів
квадратурної формули Чебишева. Виклик процедури здійснюється процедурою CALCULATION.Процедура CALCULATION. Призначення - обчислення визначеного інтеграла з допомогою квадратурних формул‚ розглянутих в попередньому розділі. Процедура викликається з головного меню програми при виборі пункту "ОБЧИСЛЕННЯ" (функціональна клавіша F3). Обчислені різними методами значення визначеного інтеграла зберігаються в масиві змінних. Після обчислення інтегралів процедура передає керування головному блокові програми.
Блок схема процедури представлена в додатку 3.
Процедура VYVID_REZ. Призначення - форматований вивід результатів обчислення визначеного інтеграла на дисплей. Процедура викликається з головного меню програми при виборі пункту "РЕЗУЛЬТАТИ" (функціональна клавіша F4). Результат роботи процедури представлено не екранній копії (див. додаток 5). Для отримання друкованого результату потрібно натиснути клавішу PrtScr (при роботі в режимі MS DOS) або комбінацію клавіш Shift+PrtScr (при роботі з ОС Windows 3.xx, Windows 9x).
Процедура INFORM. Призначення - ввід короткої інформації про методи чисельного інтегрування та квадратурні формули. Процедура викликається з головного меню програми при виборі пункту "ІНФОРМАЦІЯ" шляхом натискання функціональної клавіші F1.
Після вводу текстової інформації на екран дисплею процедура організовує паузу в роботі і повертає керування в програму при натисканні довільної клавіші. Результат виконання процедури представлено екранною копією (див. додаток 1).
Головний блок програми реалізовано у вигляді вертикального меню з використанням функціональних клавіш. Вибір опції меню здійснюється за допомогою натискання відповідної функціональної клавіші‚ вихід з меню (а тим самим і з програми) здійснюється при натисканні клавіші Esc. Блок-схема головного блоку програми подано в додатку 2.
Програма складена‚ відкомпільована і відлагоджена в середовищі Turbo Pascal 6.0.
На початку програми, відповідно до вимог технології програмування, знаходиться вступний коментар до програми, а решта операторів програми мають таке призначення:
Оператор | Призначення оператора |
001 | Заголовок програми |
002 | Підключення зовнішнього модуля управління виводом на дисплей (Crt) |
003-008 | Опис глобальних змінних програми |
009-011 | Опис підінтегральної функції |
012 | Заголовок процедури Init_Gauss |
013 | Початок процедури |
014 | Визначення кількості вузлів інтегрування |
015-022 | Ініціалізація абсцис інтегрування та коефіцієнтів формули Гауса |
023 | Кінець процедури Init_Gauss |
024 | Заголовок процедури Init_Cheb |
025 | Початок процедури |
026 | Визначення кількості вузлів інтегрування |
027-032 | Ініціалізація абсцис інтегрування та коефіцієнтів формули Чебишева |
033 | Кінець процедури Init_Cheb |
034 | Початок процедури Vvid_Interval |
035 | Опис локальної змінної |
036 | Початок процедури |
037 | Очистка вікна виводу |
038-040 | Вивід екранної форми для вводу даних |
041-042 | Ввід меж інтегрування |
043 | Кінець процедури Vvid_Interval |
044 | Заголовок процедури Calculation |
045 | Початок процедури |
046-047 | Присвоєння значення 0 масиву integral [1..5] |
048-051 | Обчислення наближеного значення інтегралу за формулою прямокутників і присвоєння цього значення змінній integral[1] |
052-055 | Обчислення наближеного значення інтегралу за формулою трапецій і присвоєння цього значення змінній integral[2] |
056-064 | Обчислення наближеного значення інтегралу за формулою Сімпсона і присвоєння цього значення змінній integral[3] |
065 | Виклик процедури Init_Gauss |
066-069 | Обчислення наближеного значення інтегралу за формулою Гауса і присвоєння цього значення змінній integral[4] |
070 | Виклик процедури Init_Cheb |
071-076 | Обчислення наближеного значення інтегралу за формулою Чебишева і присвоєння цього значення змінній integral[5] |
077 | Заголовок процедури Vyvid_Rez |
078 | Початок процедури |
079-089 | Вивід на дисплей екранної форми для виводу результатів обчислень |
090-093 | Вивід масиву вихідних наближених значень інтегралу‚ обчислених різними методами |
094 | Організація паузи в роботі програми |
095 | Кінець процедури Vyvid_Rez |
096 | Початок процедури Inform |
097-098 | Опис локальних змінних процедури |
098 | Початок процедури |
099-104 | Очистка вікна виводу |
105-128 | Вивід короткої інформації про чисельне інтегрування та про методи‚ що використовуються для наближеного обчислення визначених інтегралів |
129 | Організація паузи в роботі програми |
130 | Кінець процедури Inform |
131 | Початок головного блоку програми |
132 | Організація циклу виводу меню програми |
133 | Початок тіла циклу |
134 | Очистка екрану |
135-136 | Визначення основного та фонового кольорів |
137 | Оголошення вікна виводу |
138-162 | Вивід головної екранної форми програми та меню |
163 | Очікування натискання довільної клавіші і присвоєння коду цієї клавіші змінній choise |
164-165 | Зміна основного та фонового кольорів |
166-174 | Заголовок оператора вибору(аналіз коду клавіші) |
167 | Виклик процедури Vvid_Interval‚ якщо користувачем натиснуто клавішу F2 (код клавіші 6016) |
168-170 | Виклик процедури Calculation‚ якщо користувачем натиснуто клавішу F3 (код клавіші 6116) |
171 | Виклик процедури Vyvid_Rez‚ якщо користувачем натиснуто клавішу F4 (код клавіші 6216) |
172 | Виклик процедури Inform‚ якщо користувачем натиснуто клавішу F1 (код клавіші 5916) |
173 | Кінець роботи програми при натисканні користувачем клавіші Esc (код клавіші 2716) |
174 | Кінець дії оператора вибору |
175 | Кінець тіла циклу |
176 | Кінець програми. |
Випробування будь-якої системи є найбільш відповідальним і пов’язаний з найбільшими труднощами і найбільшими втратами часу. Відладка і тестування - найважливіші етапи життєвого циклу програм. Не можна робити висновок про правильність програми лише на тій підставі, що програма повністю протрансльована (відкомпільована) і видала числові результати. Все, чого досягнуто в даному випадку - це отримання деякої вихідної інформації, необов’язково правильної. В програмі все ще можуть міститись логічні помилки. Тому необхідно здійснювати "ручну" перевірку результатів‚ отриманих внаслідок машинного експерименту.
Існує кілька способів перевірки правильності машинних результатів:
1) обчислення результатів вручну;
2) отримання результатів з довідкової літератури, документації або сукупності таблиць;
3) отримання результату з допомогою іншої програми.
Контрольний приклад для перевірки правильності розробленої програми виконано вручну. Для перевірки роботи програми в нормальних умовах розглянемо визначений інтеграл‚ обчислення якого не викликає жодних труднощів‚ а саме
.Обчислення цього інтегралу здійснимо‚ використовуючи формулу Ньютона-Лейбніца: