Рефетека.ру / Информатика и програм-ие

Курсовая работа: Інтегрування Нютона-Котеса

ЗМІСТ


Вступ

1. Теоретична частина

1.1 Постановка задачі

1.2 Методи розв'язування задачі

2. Практична частина

2.1 Архітектура програми

2.2 Опис програми

2.3 Контрольний приклад та аналіз результатів машинного експерименту

Висновки

Список використаної літератури

ДОДАТКИ


Вступ


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

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

Для реалізації поставленої задачі вибрано середовище Turbo Pascal. Алгоритмічна мова Паскаль була створена Н.Віртом на початку 70-х років. Завдяки зусиллям розробників ця мова програмування стала потужним інструментом професійних програмістів‚ не втративши простоти і ясності, властивих цій мові від народження.

Розробник системи Turbo Pascal - фірма Borland International виникла в 1984 році і за порівняно короткий час неодноразово дивувала користувачів персональних ЕОМ своїми Turbo системами. Було випущено кілька версій Turbo Pascal: 3.0‚ 4.0‚ 5.0‚ 5.5‚ 6.0‚ 7.0‚ Pascal for Windows, Borland Pascal.

Головні особливості середовища Turbo Pascal:

широкий спектр типів даних‚ можливість обробки рядкових та структурних типів даних;

достатній набір операторів управління розгалуженнями та циклами;

добре розвинутий апарат підпрограм та зручні конструкції роботи з файлами;

великі можливості управління усіма ресурсами ПЕОМ;

різноманітні варіанти стикування з мовою Асемблера;

підтримка ідей об'єктно-орієнтованого програмування (ООП).

Саме з огляду на ці особливості програмна реалізація курсового проекту було здійснено в середовищі Turbo Pascal.

Розробник системи програмування Turbo Pascal - фірма Borland International виникла в 1984 році і за порівняно короткий час неодноразово дивувала користувачів персональних ЕОМ своїми Turbo системами. Було випущено на ринок програмних продуктів декілька версій Turbo Pascal: 3.0, 4.0, 5.0, 5.5, 6.0, 7.0, Pascal for Windows, Borland Pascal.

Курсовий проект складається зі вступу, двох розділів, висновків, списку використаної літератури, графічної частини та додатків. Текст пояснювальної записки набрано та роздруковано з використанням текстового редактора Word. Графічна частина виконана з допомогою графічного редактора Visio.


1. Теоретична частина


Постановка задачі


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

Якщо функція Інтегрування Нютона-Котеса неперервна на відрізку Інтегрування Нютона-Котеса і відома її первинна функція Інтегрування Нютона-Котеса‚ то визначений інтеграл від цієї функції в межах від a до b може бути обчисленим за формулою Ньютона-Лейбніца


Інтегрування Нютона-Котеса (1)


Однак у більшості випадків обчислення інтегралу за формулою (1) є практично неможливим через складність аналітичного визначення первісної функції. В поширеній задачі‚ коли підінтегральна функція задається таблично (масивом значень)‚ поняття первісної втрачає смисл‚ і інтеграл може бути обчисленим лише чисельно.

Задача чисельного інтегрування функції полягає в обчисленні значення визначеного інтегралу на основі ряду значень підінтегральної функції. Графічно інтеграл визначається площею‚ яка обмежена графіком функції Інтегрування Нютона-Котеса.

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

методи Ньютона-Котеса‚ Гауса‚ Чебишева‚ що базуються на так званих квадратурних формулах‚ які одержуються шляхом заміни функції Інтегрування Нютона-Котеса інтерполяційними многочленами;

методи Монте-Карло‚ що базуються на використанні статистичних моделей.


Методи розв'язування задачі


Формули Ньютона-Котеса. Для виведення формул Ньютона-Котеса інтеграл (1) представляють у вигляді


Інтегрування Нютона-Котеса‚ (2)


де Інтегрування Нютона-Котеса - вузли інтерполяції‚ Інтегрування Нютона-Котеса - коефіцієнти‚ залежні від виду формули‚ Інтегрування Нютона-Котеса - погрішність квадратурної формули.

Здійснивши в (2) заміну підінтегральної функції відповідним інтерполяційним многочленом Лагранжа для Інтегрування Нютона-Котеса рівновіддалених вузлів з кроком Інтегрування Нютона-Котеса‚ можна отримати наступну формулу для розрахунку коефіцієнтів Інтегрування Нютона-Котесапри довільній кількості вузлів


Інтегрування Нютона-Котеса (3)


де Інтегрування Нютона-Котеса - приведена змінна.

Зазвичай‚ коефіцієнти Інтегрування Нютона-Котеса називають коефіцієнтами Котеса. При цьому формула (3) набуває такого вигляду


Інтегрування Нютона-Котеса. (4)

В таблиці 1 наводяться значення коефіцієнтів Котеса та оцінки погрішностей для значень Інтегрування Нютона-Котеса від 1 до 8. Оскільки коефіцієнти Котеса при великій кількості ординат є доволі складними‚ то на практиці для наближеного обчислення визначених інтегралів розбивають проміжок інтегрування на велику кількість дрібних проміжків і до кожного з них застосовують квадратурну формулу Ньютона-Котеса з малим числом ординат. Таким чином‚ отримуються формули більш простої структури‚ точність яких може бути довільно високою.


Таблиця 1. Коефіцієнти Котеса.

Інтегрування Нютона-Котеса

Інтегрування Нютона-Котеса

Інтегрування Нютона-Котеса

Інтегрування Нютона-Котеса

Інтегрування Нютона-Котеса

Інтегрування Нютона-Котеса

Інтегрування Нютона-Котеса

Інтегрування Нютона-Котеса

Інтегрування Нютона-Котеса

Інтегрування Нютона-Котеса

Інтегрування Нютона-Котеса

Інтегрування Нютона-Котеса











1 1 1






2
2 1 4 1





6
3 1 3 3 1




8
4 7 32 12 32 7



90
5 19 75 50 50 75 19


288
6 41 216 27 272 27 216 41

840
7 751 3577 1223 2989 2989 3577 3577 751
17280
8 989 5888 -928 10496 -4540 -928 -928 5888 989 28350

Наприклад‚ отримані таким чином формули прямокутників‚ трапецій і Сімпсона (парабол) мають вигляд


Інтегрування Нютона-Котеса(5)

Інтегрування Нютона-Котеса(6)

Інтегрування Нютона-Котеса.(7)


При обчисленні визначених інтегралів слід враховувати похибку знаходження значень Інтегрування Нютона-Котеса. Якщо Інтегрування Нютона-Котеса‚ наприклад‚ будуть задані з однаковою похибкою Інтегрування Нютона-Котеса‚ то сумарна похибка Інтегрування Нютона-Котесастановитиме


Інтегрування Нютона-Котеса.


Якщо використання формул оцінки похибки пов'язано з труднощами‚ обумовленими необхідністю знаходження похідних вищих порядків (четвертого‚ а навіть і п'ятого)‚ то можна використовувати практичний метод екстраполяції Річардсона [1].

Точність квадратурних формул з фіксованим розташуванням рівновіддалених вузлів обмежена можливостями використовуваних методів інтерполяції.

Формула Чебишева. Формула (2) може бути зведена до вигляду


Інтегрування Нютона-Котеса(8)


шляхом заміни змінної


Інтегрування Нютона-Котеса.


При виводі формули Чебишева використовуються наступні умови: коефіцієнти Інтегрування Нютона-Котеса рівні між собою; квадратурна формула (8) є точною для всіх поліномів до степені Інтегрування Нютона-Котеса включно. Враховуючи‚ що Інтегрування Нютона-Котеса і при Інтегрування Нютона-Котеса Інтегрування Нютона-Котеса, отримаємо Інтегрування Нютона-Котеса. Тоді формула (8) матиме вигляд


Інтегрування Нютона-Котеса.(9)


Для знаходження Інтегрування Нютона-Котеса необхідно розв'язати систему нелінійних рівнянь


Інтегрування Нютона-Котеса(10)


Система рівнянь (10) має розв'язок при Інтегрування Нютона-Котеса. Значення абсцис Інтегрування Нютона-Котеса в формулі Чебишева наведено в таблиці 2. Обмежена точність і є принциповим недоліком формули Чебишева.


Таблиця 2. Значення абсцис Інтегрування Нютона-Котеса в формулі Чебишева

Інтегрування Нютона-Котеса

Інтегрування Нютона-Котеса

Інтегрування Нютона-Котеса

Інтегрування Нютона-Котеса

Інтегрування Нютона-Котеса

Інтегрування Нютона-Котеса

2 1; 2

Інтегрування Нютона-Котеса0,577330

6

1;6

2;5

3;4

Інтегрування Нютона-Котеса0,866247

Інтегрування Нютона-Котеса0,422519

Інтегрування Нютона-Котеса0,266635

3

1; 3

2

Інтегрування Нютона-Котеса0,707107

0




4

1; 4

2; 3

Інтегрування Нютона-Котеса0,794654

Інтегрування Нютона-Котеса0,187592

7

1;7

2;6

3;5

4

Інтегрування Нютона-Котеса0,883862

Інтегрування Нютона-Котеса0,529657

Інтегрування Нютона-Котеса0,323912

0

5

1; 5

2; 4

3

Інтегрування Нютона-Котеса0,832498

Інтегрування Нютона-Котеса0,3745413

0





Формула Гауса. Формула Гауса називається формулою найвищої алгебраїчної точності. Для формули (8) найвища точність може бути досягнута для поліномів степені Інтегрування Нютона-Котеса‚які визначаються Інтегрування Нютона-Котеса константами Інтегрування Нютона-Котеса та Інтегрування Нютона-Котеса.

Дійсно‚ вважаючи‚ що Інтегрування Нютона-Котеса може бути апроксимованою поліномами степені Інтегрування Нютона-Котеса


Інтегрування Нютона-Котеса


Отримаємо


Інтегрування Нютона-Котеса.


Для знаходження цих сталих отримуємо систему рівнянь


Інтегрування Нютона-Котеса(11)


Ця система є нелінійною і її розв'язування звичайними методами пов'язано зі значними труднощами. Однак‚ якщо використати систему для поліномів виду


Інтегрування Нютона-Котеса‚(12)


де Інтегрування Нютона-Котеса - поліном Лежандра‚ то її можна звести до лінійної системи відносно коефіцієнтів Інтегрування Нютона-Котеса із заданими точками Інтегрування Нютона-Котеса.

Поліномами Лежандра називаються поліноми виду


Інтегрування Нютона-Котеса.


Перші п'ять поліномів Лежандра мають вигляд


Інтегрування Нютона-Котеса


Оскільки степені поліномів у співвідношенні (12) не перевищують Інтегрування Нютона-Котеса‚ то повинна виконуватись система (11) і формула (8):


Інтегрування Нютона-Котеса.


Внаслідок властивості ортогональності ліва частина останньої рівності дорівнює нулю‚ тоді


Інтегрування Нютона-Котеса


що завжди забезпечується при довільних значеннях Інтегрування Нютона-Котеса в точках Інтегрування Нютона-Котеса‚ які відповідають кореням відповідних поліномів Лежандра.

Підставивши ці значення Інтегрування Нютона-Котеса в систему (11) і враховуючи перші n рівнянь‚ можна легко визначити коефіцієнти Інтегрування Нютона-Котеса.

Формула (8)‚ де Інтегрування Нютона-Котеса- нулі поліному Лежандра Інтегрування Нютона-Котеса‚ а Інтегрування Нютона-Котеса визначаються з системи (11)‚ називається формулою Гауса.


Таблиця 3. Елементи формули Гауса.

Інтегрування Нютона-Котеса

Інтегрування Нютона-Котеса

Інтегрування Нютона-Котеса

Інтегрування Нютона-Котеса

1 1 0 2
2 1; 2

Інтегрування Нютона-Котеса0,57735027

1
3

1;3

2

Інтегрування Нютона-Котеса0,77459667

0

0,55555556

0,88888889

4

1;4

2;3

Інтегрування Нютона-Котеса0,86113631

Інтегрування Нютона-Котеса0,33998104

0,34785484

0,65214516

6

1; 6

2; 5

3; 4

Інтегрування Нютона-Котеса0,93246951

Інтегрування Нютона-Котеса0,66120939

Інтегрування Нютона-Котеса0,23861919

0,17134250

0,36076158

0,46791394

7

1; 7

2; 6

3; 5

4

Інтегрування Нютона-Котеса0,94910791

Інтегрування Нютона-Котеса0,74153119

Інтегрування Нютона-Котеса0,40584515

0

0,12948496

0,27970540

0,38183006

0,41795918

8

1; 8

2; 7

3; 6

4; 5

Інтегрування Нютона-Котеса0,96028986

Інтегрування Нютона-Котеса0,79666648

Інтегрування Нютона-Котеса0,52553142

Інтегрування Нютона-Котеса0,18343464

0,10122854

0,22238104

0,31370664

0,36268378


В таблиці 3 подано значення Інтегрування Нютона-Котеса та Інтегрування Нютона-Котеса для формули Гауса для різних Інтегрування Нютона-Котеса від 1 до 8.

Стандартні програми‚ які використовують формули Гауса з різним числом вузлів як формули‚ що забезпечують найкращу точність‚ входять до складу багатьох пакетів програм для наукових та інженерних розрахунків.


2. Практична частина


2.1 Архітектура програми


Для реалізації поставленої задачі розроблено програму INTEGRALY.PAS (лістінг програми представлено в додатку 4).

Програма складається з головного блоку, шести процедур:

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.


2.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 Кінець програми.

2.3 Контрольний приклад та аналіз результатів машинного експерименту


Випробування будь-якої системи є найбільш відповідальним і пов’язаний з найбільшими труднощами і найбільшими втратами часу. Відладка і тестування - найважливіші етапи життєвого циклу програм. Не можна робити висновок про правильність програми лише на тій підставі, що програма повністю протрансльована (відкомпільована) і видала числові результати. Все, чого досягнуто в даному випадку - це отримання деякої вихідної інформації, необов’язково правильної. В програмі все ще можуть міститись логічні помилки. Тому необхідно здійснювати "ручну" перевірку результатів‚ отриманих внаслідок машинного експерименту.

Існує кілька способів перевірки правильності машинних результатів:

обчислення результатів вручну;

отримання результатів з довідкової літератури, документації або сукупності таблиць;

отримання результату з допомогою іншої програми.

Контрольний приклад для перевірки правильності розробленої програми виконано вручну. Для перевірки роботи програми в нормальних умовах розглянемо визначений інтеграл‚ обчислення якого не викликає жодних труднощів‚ а саме


Інтегрування Нютона-Котеса.


Обчислення цього інтегралу здійснимо‚ використовуючи формулу Ньютона-Лейбніца:


Інтегрування Нютона-Котеса.


Отриманий результат співпадає з вихідними даними програми, представленими в додатку 6.

Розроблена програма дає можливість порівняти описані в розділі 1.1 методи чисельного інтегрування. Наведена в додатку 6 екранна форма результатів роботи програми свідчить про те‚ що з перелічених методів чисельного інтегрування найгірший результат дає застосування формули прямокутників‚ а найкращий результат - застосування формул Гауса.


Висновки


Розв’язування задач обчислювального характеру з використанням персональних комп’ютерів має велике практичне значення, оскільки дає можливість значно економити час при виконанні простих але громіздких обчислень. Використання з цією метою готових пакетів прикладних програм (типу MathCad) для виконання математичних обчислень має певні вади. Ліцензовані пакети програм мають високу вартість і достатньо висока складність експлуатації. Тому їх використання для розв’язування нескладних задач (а саме такою є задача чисельного інтегрування) є недоцільним. Надзвичайно важливо вміти самостійно складати прості програми для розв’язування задач обчислювального характеру.

В даному курсовому проекті розроблено і описано програму чисельного інтегрування за формулами Ньютона-Котеса. Для розробки програми вибрано мову Паскаль (середовище Turbo Pascal 6.0). Програма розроблена із застосуванням методики процедурного програмування.

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

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


Список використаної літератури.


В.Я.Сердюченко. Розробка алгоритмів та програмування мовою Turbo Pascal. - Харків: "Паритет", 1995. - 349 с.

М.Я.Ляшенко‚ М.С.Головань. Чисельні методи. К: "Либідь"‚ 1996. - 285 с.

В.Т.Маликов, Р.Н.Кветный. Вычислительные методы и применение эВМ. К: Головное издательство издательского объединения "Выща школа", 1989. - 214 с.

Д.Ван Тассел. Стиль, разработка, эффективность, отладка и испытание программ. Москва: "Мир", 1985. - 332 с.

Рефетека ру refoteka@gmail.com