Міністерство освіти Республіки Білорусь p>
УСТАНОВА ОСВІТИ p>
МОГИЛЕВСЬКИЙ ДЕРЖАВНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ p>
Кафедра "ЕП і АПУ" p>
ПОЯСНЮВАЛЬНА ЗАПИСКА
До курсової роботи з дисципліни p>
"Обчислювальна техніка та програмування" p>
Виконав студент групи ЕП-012 p>
Гончаров А. М.
Могильов, 2003 p>
Міністерство освіти Республіки Білорусь p>
УСТАНОВА ОСВІТИ p>
МОГИЛЕВСЬКИЙ ДЕРЖАВНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ p>
Кафедра "ЕП і АПУ " p>
Курсова робота p>
Розробка програми розрахунку певного інтеграла за формулою Буля за схемою подвійного перерахунку із заданою точністю p>
Пояснювальна записка p>
БУЛ 07.00.00.000 ПЗ p>
Керівник ст. викладач p>
______________ Абрашкін p>
В.П. p>
Студент групи ЕП- p>
02 p>
______________ Гончаров
А.М. p>
Могильов, 2003 p>
Зміст
Введення
1 Постановка завдання p>
1. Загальна характеристика завдання p>
2. Аналіз літературних джерел p>
3. Розрахункові формули методу
1. Розробка алгоритму завдання p>
1. Опис даних, що використовуються для вирішення завдання p>
2. Опис схеми програми
2. Кодування програми p>
1. Опис структури розробляється пакета p>
2. Опис використовуваних типів даних p>
3. Проектування інтерфейсу програми
3. Тестування програми
4. Розробка гіпертекстового варіанту документа
Висновок
Список використаних джерел
Додаток А. Тверда копія
Додаток Б. Результати тестування програми
Додаток В. Тестування даних в математичному пакеті
Додаток Г. Гіпертекстової варіант документа
Додаток Д. Акт приймання програми p>
Введення p>
Даний курс «обчислювальної техніки і програмування» ми закінчуємокурсовим проектом, в якому нам слід розробити програму відповідно доотриманим завданням. p>
Стрімкий розвиток науки і техніки, у тому числі і обчислювальної,вимагає знання її від кожного, який вважає себе освіченою, людини. Черезвсе зростаючої складності багатьох об'єктів потрібна покращенаорганізація процесу програмного моделювання і високий ступіньосвіченості фахівців, а підвищення вимог до функціонування цихоб'єктів роблять наше завдання ще більш складною. Для вирішення цього завданнязастосовується математичне моделювання, яке здійснюється знову ж таки здопомогою обчислювальної техніки, зокрема комп'ютера. p>
Не можна не згадати про те, що широке застосування в сучасній науці ітехніці отримали диференціальні рівняння різного ступеня та видускладності. Зокрема, вони застосовуються в електротехніці, машинобудуванні,електроніці, розробці різного роду апаратного обеспечиванием,математики, фізики та інших видах діяльності людини. p>
Наше завдання: створити спосіб швидкого, якісного, зручного інедорого вирішення поставлених перед нами завдань. p>
У цій роботі ми застосували чисельні методи знаходженнявизначеного інтеграла. p>
Даною курсовою роботою ми закінчуємо цикл лекцій і лабораторнихробіт з вивчення середовища програмування C Builder v5.0, програмивиконання розрахунків MathCad, роботи в багатофункціональному текстовомуредакторі Word XP, програми виконання креслень AutoCad та використанняфункціональних можливостей операційної системи Windows XP. Всі ці знанняя намагався використовувати у своєму курсовому проекті. p>
1 Постановка завдання p>
1.1 Загальна характеристика завдання p>
Чисельне інтегрування використовується для наближеного пошукузначення визначеного інтеграла неперервної функції f (x) на заданомуінтервалі [a, b] згідно з висловом p>
, (1.1) де Q [f] - формула чисельного інтегрування; p>
E [f] - помилка усікання. p>
Формула чисельного інтегрування називається формулою квадратури. Узагальному вигляді вона може бути представлена як сума p>
(1.2) де X0, ... , XK - вузли квадратури; p>
(0, ..., (K - ваги квадратури. P>
Ступінь точності формули квадратури дорівнює позитивному цілого числаn. Величина помилки відсікання визначається в загальному випадку згідно з висловом p>
E [f] = K (f (n +1) (c), (1.3) де К - певний коефіцієнт, що n - ступінь точності. P >
1.2 Аналіз літературних джерел p>
Залежно від виду вираження квадратури для знаходження значеннявизначеного інтеграла використовуються наступні чисельні методи: p>
1) правих, лівих і середніх прямокутників; p>
2) трапецій; p>
3) формули Сімпсона і Буля; p>
4) Монте-Карло; p>
5) формули Гауса-Лежандра, p>
6) рекурентні формули. p>
Залежно від ступеня похідної, обліковується чисельним методом,визначається ступінь точності методу.
Крок інтегрування може бути постійним на всьому розрахунковому інтерваліаргументу X або змінюватися залежно від величини помилки визначенняфункції. p>
1.3 Розрахункові формули методу p>
Складова формула Буля з порядком m = 4 має вигляд p>
(1) p>
2 Розробка алгоритму рішення задачі p>
2.1 Опис даних, що використовуються для вирішення завдань p>
У даній задачі використовувалися наступні дані: p>
1) вихідні (вхідні) дані: p>
- початок відрізка а; p>
- кінець відрізка b; p>
- точність. p>
2) вихідні результати рішення: p>
-значення інтеграла. p>
2.2 Опис схеми програми p>
Схема алгоритму складена у відповідності з математичним описомкурсової роботи і відображає послідовність операцій в програмі. Приїї зображенні використовуються правила та вимоги ГОСТ 19.701.90. p>
Вироблено виділення основних етапів у вигляді підпрограм, що виконуютьнаступні дії: p>
а) введення початкових даних з клавіатури; б) виконання розрахунку; в) висновок отриманих результатів на екран і в файл. p>
Всі підпрограми виконані у вигляді процедур [2] . Основні процедури тапрограма виконані на аркуші. При цьому опис функціонального призначенняблоків схеми алгоритму приведено в коментарях. p>
3 Кодування програми p>
3.1 Опис структури розробляється пакета p>
Програма курсової роботи розроблена в середовищі візуальногопрограмування CBuilder 5.0 і складається з головної програми,блоковUnit1, Unit2, Unit3.
Програма виконана на основі структурного програмування і міститьнаступні процедури і функції: а) f; б) Вооl. p>
3.2 Опис використовуваних типів даних p>
У даній задачі використовувалися такі типи даних: p>
1) мінлива : a, b, e, I, h, s, N типу float; p>
2) локальні змінні для перебору елементів масивів: i, j, k типуint; p>
3.3 Проектування інтерфейсу програми p>
Основні процедури, які використовуються при складанні p>
алгоритму: p>
а) f-викликає розрахункову функцію; p>
б) Bool-розрахунок визначеного інтеграла. p>
4 Тестування програми p>
4.1 Тестування програми в математичному пакеті. P>
p>
4.2 Тестування програми p>
Для тестування використана функція f (x) = 5 * x5-x3.
p>
Малюнок 1 - Основне вікно. p>
Малюнок 2 - Введення даних. P>
Тестування проводилося на ЕОМ з наступними характеристиками: p>
- центральний процесор - Intel Pen tium 2.2 GHz; p>
- оперативна пам'ять - 1024Mb ; p>
- відеоадаптер - GeForce 4 64 Mb; p>
- монітор - Sony Trinitron; p>
- операційна система - Windows XP. p>
5 Розробка гіпертекстового варіанту документа p>
p>
Малюнок 3-Гіпертекстової варіант p>
Для перекладу тексту програми в формат HTML використовувалася командапрограми MicrosoftWord (пакета Office XP) "Зберегти як Web-сторінку". p>
Вид отриманого документа, який відображатиметься InternetExplorer 5.0представлений на малюнку 3. p>
Висновок p>
У цій роботі розроблена програма розрахунку певногоінтеграла за формулою Буля за схемою подвійного перерахунку із заданою точністю p>
При роботі над програмою пройдені всі етапи створення програмнихпродуктів. Отримані навички в математичному описі завдання, розробціалгоритму програми, складанні тексту програми та проведенні тестуванняпрограми. Використана система програмування C Builder v5.0. P>
Список використаних джерел p>
1 Крилов В.І. Обчислювальні методи вищої математики. Т.1./Под ред. І.П. p>
Мисовську. - Мн.: Вышэйшая школа, 1972. P>
2 Мудров А.Є. Чисельні методи для ПЕОМ на мовах Бейсік, Фортран, Паскаль p>
- Томск: МП Таско ", 1992 p>
3 Херхагер М., Партолль X. MathCAD 2000; повний посібник: Пер. З ньому. - p>
К.: Видавнича група BHV, 2000. - 416с.
4 Гусак А.А., Гусак ГМ. Довідник з вищої математики. - Мн.: Наука ітехніка, 1991. p>
Додаток А p>
(обов'язкове) p>
Тверда копія p>
Project1.cpp
//------------------------------------------------ --------------------------< br>- p>
# include
# pragma hdrstop
USERES ( "Project1.res");
USEFORM ( "Unit1.cpp", Form1);
USEFORM ( "Unit2.cpp", Form2);
USEFORM ( "Unit3.cpp", Form3);
//------------------------------------------------ --------------------------< br>-
WINAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int)
(Try p>
( p>
Application-> Initialize (); p>
Application-> CreateForm (__classid (TForm1), & Form1); p>
Application-> CreateForm (__classid (TForm2), & Form2); p>
Application-> CreateForm (__classid (TForm3), & Form3); p>
Application-> Run (); p>
) catch (Exception & exception) p>
( p>
Application-> ShowException (& exception); p>
) return 0;
)
//------------------------------------------------ --------------------------< br>- p>
Unit1.cpp p>
//------------------------------ --------------------------------------------< br>- p>
# include
# include
# include
# pragma hdrstop p>
# include "Unit1.h"
# include "Unit2.h"
# include "Unit3.h"
# include p>
//--------------------------------------- -----------------------------------< br>-
# pragma package (smart_init)
# pragma resource "*. dfm"
TForm1 * Form1;float a = 0, b = 10, e = 0.01, I [2]; p>
float f (float x)
(return 5 * pow (x, 5)-pow (x, 3 );
)
//-------------------------------------void Bool ()
(float h, s, x [5], N = 2; int i, l; do
(for (l = 0; lSimpleText = "Вихід";
)
//------------------------------------------------ --------------------------< br>- p>
void __fastcall TForm1:: N1Click (TObject * Sender)
(
Form2-> Show ();
SB1-> SimpleText = "Введення даних закінчено";
)
//------------------------------------------------ --------------------------< br>- p>
void __fastcall TForm1:: N2Click (TObject * Sender)
(
Bool ();
Form3-> Show ();
SB1-> SimpleText = "Проведений розрахунок";
)
//------------------------------------------------ --------------------------< br>- p>
Unit2.cpp p>
//------------------------------ --------------------------------------------< br>- p>
# include
# include
# pragma hdrstop p>
# include "Unit2.h"
//------------------------------------------------ --------------------------< br>-
# pragma package (smart_init)
# pragma link "ibctrls"
# pragma link "ibreg"
# pragma link "CSPIN"
# pragma resource "*. dfm"
TForm2 * Form2;extern float a, b, e; p>
//--------------------------------- -----------------------------------------< br>-
__fastcall TForm2:: TForm2 (TComponent * Owner) p>
: TForm (Owner)
(
)
//------------------------------------------ p>
//------------------------------------------------ --------------------------< br>- p>
void __fastcall TForm2:: Button2Click (TObject * Sender)
(
Form2-> Close ();
)
//------------------------------------------------ --------------------------< br>--float __fastcall TForm2:: checkf (TObject * Sender, TEdit * e1, float w)
(float buf; do (try p>
(if (e1-> Text !="") buf = StrToFloat (e1-> Text); else buf = w; p>
) catch (const EConvertError & e) p>
(int j = Application-> MessageBox ( "Невірні дані", NULL, MB_OK ); buf =- 1; e1-> Text = FloatToStr (w); p>
)) while ((buf ==- 1)); return buf;
)
//----------------------------------------void __fastcall TForm2:: Button1Click (TObject * Sender)
(E = checkf (Sender, Edit4, e); a = checkf (Sender, Edit1, a); b = checkf (Sender, Edit2, b);
Form2-> Close ();
)
//------------------------------------------------ --------------------------< br>- p>
void __fastcall TForm2:: FormCreate (TObject * Sender)
(
Edit1-> Text = FloatToStr (a);
Edit2-> Text = FloatToStr (b);
Edit4-> Text = FloatToStr (e);
)
//------------------------------------------------ --------------------------< br>- p>
void __fastcall TForm2:: GroupBox1Click (TObject * Sender)
(
)
//------------------------------------------------ --------------------------< br>- p>
Unit3.cpp p>
//------------------------------ --------------------------------------------< br>- p>
# include
# pragma hdrstop p>
# include "Unit3.h"
//------------------------------------------------ --------------------------< br>-
# pragma package (smart_init)
# pragma link "PERFGRAP"
# pragma resource "*. dfm"
TForm3 * Form3;extern float I [2]; p>
//---------------------------------- ----------------------------------------< br>-
__fastcall TForm3:: TForm3 (TComponent * Owner) p>
: TForm (Owner)
(
) p>
//---------------------------------------- ----------------------------------< br>- p>
void __fastcall TForm3:: BitBtn1Click (TObject * Sender)
(
Form3-> Close ();
)
//------------------------------------------------ --------------------------< br>- p>
void __fastcall TForm3:: FormCreate (TObject * Sender)
(
SaveDialog1-> InitialDir = GetCurrentDir ();
Edit1-> Text = FloatToStr (I [1 ]); p>
)
//------------------------------------------------ --------------------------< br>- p>
void __fastcall TForm3:: Button1Click (TObject * Sender)
(
TStringList * s; s = new TStringList;
SaveDialog1-> Execute (); s-> Add ( "Значення інтегралу одно" + FloatToStr (I [1])); s-> SaveToFile (SaveDialog1 - > FileName); delete s; p>
)
//------------------------------------------------ --------------------------< br>- p>
void __fastcall TForm3:: Label1Click (TObject * Sender)
( p>
)
//------------------------------------------------ --------------------------< br>- p>
Додаток Б p>
Результати тестування програми. p>
Рисунок 4 - Результат тестування p>
Додаток В. p>
Тестування даних в математичному пакеті.
p>
Додаток Г p>
Гіпертекстової варіант документа p>
1 Постановка завдання p>
1 Постановказавдання p>
1.1 Загальна характеристиказавдання p>
Чисельне інтегрування використовується длянаближеного пошуку значення визначеного інтеграла неперервної функціїf (x)назаданому інтервалі [a, b] згідно з висловом p>
,
(
1.1) p>
де Q [f] - формула чисельногоінтегрування; p>
E [f] - помилкаусікання. p>
Формула чисельного інтегруванняназивається формулою квадратури. У загальному вигляді вона може бути представленаяксума p>
(1.2
) p>
Додаток Д p>
Акт приймання програми p>
Розроблена в ході виконання курсового проекту програма розрахункувизначеного інтеграла за формулою Буля за схемою подвійного перерахунку ззаданою точністю працездатна і повністю відповідає вимогамзавдання. p>
Студент гр. ЕП-012 p>
Гончаров А.М. p>
Керівник роботи старший викладач кафедри «ЕП і АПУ» p>
Абрашкін В.П.
----------------------- p>
БУЛ 07.00.00.000 ПЗ p>
Лист p>
p>
p>
p>
p>
p>
Дата p>
Подп. p> < p> № докум. p>
Лист p>
Изм. p>
БУЛ 07.00.00.000 ПЗ p>
Лист p>
p>
p>
p>
p>
Дата p>
Подп. p>
№ докум. p>
Лист p>
Изм. p>
p>
Листів p>
Лист p>
Літ. p>
Утв. p>
Н.контр.
Н.контр. P>
Пров.
Перевірив p>
розробк. P>
Дата p>
Подп. P>
№ докум. P>
БУЛ 07.00.00.000 ПЗ
БУЛ 07.00.00.000 ПЗ p>
Лист p>
p>
p>
p>
p >
p>
Дата p>
Подп. p>
№ докум. p>
Лист p>
Изм. p>
БУЛ 07.00.00.000 ПЗ p>
Лист p>
p>
p>
p>
p>
p>
Дата p>
Подп. p>
№ докум. p>
Лист p>
Изм. p >
БУЛ 07.00.00.000 ПЗ p>
Лист p>
p>
p>
p>
p> < p> p>
Дата p>
Подп. p>
№ докум. p>
Лист p>
Изм. p>
БУЛ 07.00.00.000 ПЗ p>
Лист p>
p>
p>
p>
p>
p>
Дата p>
Подп. p>
№ докум. p>
Лист p>
Изм. p> < p> Лист p>
p>
p>
p>
p>
p>
Дата p>
Подп. p>
№ докум. p>
БУЛ 07.00.00.000 ПЗ p>
Лист p>
p>
p>
p>
p>
Дата p>
Подп. p>
№ докум. p >
Лист p>
Изм. p>
Лист p>
Изм. p>
Изм. p>
Лист p>
№ докум. p>
Подп. p>
Дата p>
p>
p>
p>
p>
p>
Лист p>
БУЛ 07.00.00.000 ПЗ p>
БУЛ 07.00.00.000 ПЗ p>
Лист p>
p>
p>
p>
p>
p>
Дата p>
Підпис. p>
№ докум. p>
Лист p>
Изм. p>
БУЛ 07.00.00.000 ПЗ p>
МГТУ гр . ЕП-012 p>
Розробка програми розрахунку певного інтеграла за формулою Буля за схемою подвійного перерахунку із заданою точністю p>
Гончаров p>
Абрашкін p>
p>
p>
p>
p>
Лист p>
Изм. p>