Автор работы: Пользователь скрыл имя, 16 Марта 2011 в 21:09, курсовая работа
Дана розробка повинна автоматизувати процес розрахунку аргументів функцій та власне їх значень у заданих рівновіддалених точках, збереження вхідної та вихідної інформації та розпізнавання введеної у відповідному вікні формули.
Програма виконує такі основні функції:
•Розпізнавання формули, яку введено у відповідному вікні;
•Пошук мінімального та максимального значення функції у певному діапазоні зміни аргументу, який вводиться у вікні програми;
•Побудова графіку функції у відповідному діапазоні;
•Розрахунок аргументів функцій та значень функцій у рівновіддалених точках, кількість яких вводиться у вікні програми та занесення розрахованих величин у відповідну таблицю;
•Проведення кускової інтерполяції кубічними многочленами Бесселя та побудова відповідної кривої.
ЗАВДАННЯ НА ДИПЛОМНУ РОБОТУ СТУДЕНТУ 3
АНОТАЦІЇ 5
ЗМІСТ 7
ТЕОРЕТИЧНА ЧАСТИНА 9
1. ТЕХНІЧНЕ ЗАВДАННЯ 10
1.Підстави для розробки 10
2.Призначення розробки 10
3.Аналіз вимог до програмного забезпечення 10
1.Функціональні вимоги 10
2.Вимоги до складу та параметрів технічних засобів 11
3.Вимоги до інтерфейсу 11
4.Вимоги до інформаційної та програмної сумісності 12
5.Вимоги до тестування програмного забезпечення 12
1.4.Вимоги до програмної документації 12
1.4.1. Склад супроводжувальної документації 12
1.4.2. Вимоги до супроводжувальної документації 13
1.5. Стадії та етапи розробки 13
1.6. Порядок контролю і приймання 14
ПРАКТИЧНА ЧАСТИНА 15
2. АРХІТЕКТУРА, ФУНКЦІОНАЛЬНІ ТА ТЕХНІЧНІ ПОКАЗНИКИ 16
2.1. Призначення та область застосування 16
2.2. Опис та обґрунтування обраної архітектури 16
2.3. Функціональна специфікація 18
1.Опис функціональних можливостей 18
2.Опис інтерфейсу користувача 18
2.4.Технічна специфікація 23
2.4.1. Опис діаграми модулів 23
2.4.2. Опис і обґрунтування вхідних та вихідних даних 24
2.5. Математичне забезпечення 25
3. КОНСТРУЮВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ 29
3.1. Опис і обґрунтування обраних програмних засобів 29
3.2. Опис програми 29
3.2.1. Функціональні можливості 29
3.2.2. Опис логічної структури 30
3.2.3. Виклик і завантаження 32
3.2.4. Використані технічні засоби 32
4. ПРОГРАМА ТА МЕТОДИКА ВИПРОБУВАНЬ 33
4.1. Об‘єкт випробувань 33
4.2. Використані технічні засоби 33
4.3. Порядок та методика випробувань 33
4.4. Результати випробувань 35
5. ВИСНОВКИ 36
6. ВИКОРИСТАНА ЛІТЕРАТУРА 37
7. ДОДАТКИ 38
Додаток А. Код програми 38
4.
ПРОГРАМА ТА МЕТОДИКА
ВИПРОБУВАНЬ
4.1. Об’єкт випробувань
Об’єктом
випробувань є створене в процесі
виконання курсової роботи програмне
забезпечення. Для перевірки коректності
роботи програми було проведено ряд тестів.
Для тестування використовувалися файли
з директорії “Samples”, що постачається
разом з програмним продуктом.
4.2. Використані технічні засоби
В процесі тестування було використано наступне програмне забезпечення:
Апаратна конфігурація першої тестової платформи
Процесор | Intel Core 2 Duo 2.8 GHz |
ОЗП | 800 МГц, 4096 мб. |
Відеоадаптер | GeForce GTS 250, 1024 Мб |
Жорсткий диск | 240 Гб |
Апаратна конфігурація другої тестової платформи
Процесор | Intel Celeron 1.7 GHz |
ОЗП | 400 МГц, 1024 мб. |
Відеоадаптер | ATI Radeon x1550, 256 Мб |
Жорсткий диск | 240 Гб |
При
проведенні тестів використовувалась
система ручного тестування.
4.3. Порядок та методика випробувань
Для проведення комплексного тестування розробленого програмного забезпечення на коректність роботи необхідним є виконання набору тестів:
Контрольний тест, за допомогою якого користувач зможе перевірити дане програмне забезпечення:
Рис.
4.1. Вікно програми після виконання
контрольного тесту.
При проведенні тестування обов’язковим є дотримання послідовності проведення тестів.
4.4. Результати випробувань
Результат
проведення комплексного тестування,
створеного у процесі написання програмного
забезпечення, згідно наведеного набору
тестів є успішним.
В процесі виконання курсової роботи створено програмне забезпечення, що реалізує алгоритм кускової інтерполяції кубічними многочленами Бесселя.
Розроблений програмний продукт забезпечує надійну побудову графіків функцій та зручне управління цим процесом.
Проведено тестування та корекцію роботи розробленого програмного продукту.
Складено необхідну технічну документацію, що повинна постачатись разом з розробленим програмним забезпеченням.
Виконавець курсової роботи набув навичок самостійного створення програмних продуктів від їх проектування до програмної реалізації.
Додаток А. Код програми
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, Gauges, MyMath, Unit2, Grids, DBGrids;
type
TForm1 = class(TForm)
StartBtn: TButton;
Image1: TImage;
ClearBtn: TButton;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Gauge1: TGauge;
FormEd: TEdit;
XStart: TEdit;
XEnd: TEdit;
StepEd: TEdit;
LinesCh: TCheckBox;
MashCh: TCheckBox;
GroupBox2: TGroupBox;
Label5: TLabel;
Label6: TLabel;
XEd: TEdit;
YEd: TEdit;
StartBtn2: TButton;
OpenDialog: TOpenDialog;
SaveDialog: TSaveDialog;
OpenBtn: TButton;
SaveBtn: TButton;
AbBtn: TButton;
StringGrid1: TStringGrid;
Button1: TButton;
Label7: TLabel;
Label8: TLabel;
procedure StartBtnClick(Sender: TObject);
procedure ClearBtnClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
procedure FormCreate(Sender: TObject);
procedure StartBtn2Click(Sender: TObject);
procedure OpenBtnClick(Sender: TObject);
procedure SaveBtnClick(Sender: TObject);
procedure AbBtnClick(Sender: TObject);
procedure Generate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
var x,y:array of extended;
xmnoj,ymnoj,ymin,ymax,xe,xs,
graph:boolean=false;
ram:boolean=false;
f:file of extended;
fn:string;
MC:cardinal;
procedure Bessel_func;
var n:cardinal;
i_1,i,i1,i2,imh,imw:word;
ind_mem,h,fxx,di,di1,p,c1,c2,
begin
MC:=strtoInt(Form1.steped.
xe:=strtofloat(Form1.xend.
xs:=strtofloat(Form1.xstart.
imh:=form1.image1.height;
imw:=form1.image1.width;
form1.image1.canvas.pen.color:
h:=(xe-xs)/(MC-1);
for n:=0 to high(x)-1 do
begin
i:=trunc(abs(((MC-1)*(x[n]-xs)
i:=round(high(x)*i/(MC-1));i1:
i_1:=round(high(x)*i_1/(MC-1))
fxx:=(y[i1]-y[i])/h;
if ind_mem<=0 then di:=0 else di:=(y[i1]-y[i_1])/(2*h);
if ind_mem>=MC-2 then di1:=0 else di1:=(y[i2]-y[i])/(2*h);
c1:=y[i];c2:=di;c3:=(3*fxx-2*
p:=c1+c2*(x[n]-x[i])+c3*(x[n]-
if n=0 then form1.image1.canvas.Moveto(
form1.image1.canvas.lineto(
end;
end;
procedure TForm1.Generate(Sender: TObject);
var
NCol, NRow: Integer;
MaxCol,n:cardinal;
str:string;
begin
MaxCol:=strtoInt(steped.text);
if MaxCol<=1 then
begin
showmessage('Невірна кількість точок');
exit;
end;
with form1.StringGrid1 do begin
ColCount:=MaxCol+1;
Cells [0,0] := 'i:';
Cells [0,1] := 'Xi:';
Cells [0,2] := 'Yi:';
for n:=0 to MaxCol-1 do begin
Cells [n+1,0] := IntToStr(n+1);
Cells [n+1,1] :=FloatToStr(x[round(high(x)*
Cells [n+1,2] :=FloatToStr(y[round(high(y)*
end;
end;
end;
procedure XYMinMax;
var n:cardinal;
imh,imw:word;
begin
form1.caption:='Graphics -
Пошук мінімальних і
form1.gauge1.maxvalue:=high(y)
if form1.mashch.checked=true then
begin
imh:=form1.image1.height;
imw:=form1.image1.width;
ymax:=y[1];
ymin:=y[1];
for n:=0 to high(y) do
begin
if ymax<y[n] then ymax:=y[n];
if ymin>y[n] then ymin:=y[n];
form1.gauge1.progress:=n;
end;
if ymax-ymin=0 then ymnoj:=1
else ymnoj:=imh/abs(ymax-ymin);
if xe-xs=0 then xmnoj:=1
else xmnoj:=imw/abs(xe-xs);
end else
begin
ymnoj:=1;
xmnoj:=1;
end;
form1.caption:='Graphics - Пошук завершено';
end;
procedure ris;
var n:cardinal;
imh,imw:word;
xc,yc:integer;
begin
form1.caption:='Graphics - Побудова графіка';
form1.image1.canvas.pen.color:
imh:=form1.image1.height;
imw:=form1.image1.width;
form1.gauge1.maxvalue:=high(x)
with form1.image1.canvas do
begin
pen.style:=psdot;
moveto(0,imh-trunc((-ymin)*
lineto(imw,imh-trunc((-ymin)*
moveto(trunc((-xs)*xmnoj),0);
lineto(trunc((-xs)*xmnoj),imh)
pen.style:=pssolid;
end;
if form1.linesch.checked=true then
begin
for n:=0 to high(x)-1 do
begin
with form1.image1.canvas do
begin
moveto(trunc((x[n]-xs)*xmnoj),
Информация о работе Кускова інтерполяція функцій кубічними многочленами Бесселя