Курсовой проект по Delphi 7

Автор работы: Пользователь скрыл имя, 30 Сентября 2009 в 14:05, Не определен

Описание работы

7 типовых заданий

Файлы: 1 файл

Курсовик Кучер 1 АТП-06.doc

— 168.50 Кб (Скачать файл)

procedure rasschot; 

var

  Form1: TForm1;

  y0,a,b:real; 

implementation 

{$R *.dfm}

procedure rasschot;                               //процедура расчёта и вывода

var h,x,y,ynext,fxy,fpol,ytheor,xpol,ypol:real;

i,n:integer;

begin

Form1.Series1.Clear;                            //очистка графиков

Form1.Series2.Clear;                            //...

Form1.Series3.Clear;                            //...

Form1.Series4.Clear;                            //...

Form1.Series5.Clear;                            //... 

n:=5;                                            //метод Эйлера с 5 интервалами

h:=(b-a)/n;                                      //шаг

y:=y0;                                            //начальное значение

for i:=0 to n do begin                             //цикл рассчёта по методу

x:=i*h;

fxy:=f(x,y);

ynext:=y+h*fxy;

ytheor:=thy(x);

Form1.Series2.AddXY(x,y);                                     //добавление точки на графике

Form1.StringGrid1.RowCount:=i+2;                                        //увеличение числа строк в таблице

Form1.StringGrid1.Cells[0,i+1]:=IntToStr(i);                            //вывод результатов

Form1.StringGrid1.Cells[1,i+1]:=FloatToStrF(x,ffFixed,7,7);             //...

Form1.StringGrid1.Cells[2,i+1]:=FloatToStrF(y,ffFixed,7,7);             //...

Form1.StringGrid1.Cells[3,i+1]:=FloatToStrF(fxy,ffFixed,7,7);           //...

Form1.StringGrid1.Cells[4,i+1]:=FloatToStrF(ynext,ffFixed,7,7);         //...

Form1.StringGrid1.Cells[5,i+1]:=FloatToStrF(ytheor,ffFixed,7,7);        //...

y:=ynext;

end; 

n:=10;                                                               //метод Эйлера с 10 интервалами

h:=(b-a)/n;                                                           //шаг

y:=y0;                                                                //начальное значение

for i:=0 to n do begin                                                 //цикл рассчёта  по методу

x:=i*h;

fxy:=f(x,y);

ynext:=y+h*fxy;

ytheor:=thy(x);

Form1.Series3.AddXY(x,y);                                             //добавление точки на графике

Form1.StringGrid3.RowCount:=i+2;                                      //увеличение числа строк в таблице

Form1.StringGrid3.Cells[0,i+1]:=IntToStr(i);                          //вывод результатов

Form1.StringGrid3.Cells[1,i+1]:=FloatToStrF(x,ffFixed,7,7);           //...

Form1.StringGrid3.Cells[2,i+1]:=FloatToStrF(y,ffFixed,7,7);           //...

Form1.StringGrid3.Cells[3,i+1]:=FloatToStrF(fxy,ffFixed,7,7);         //...

Form1.StringGrid3.Cells[4,i+1]:=FloatToStrF(ynext,ffFixed,7,7);       //...

Form1.StringGrid3.Cells[5,i+1]:=FloatToStrF(ytheor,ffFixed,7,7);      //...

y:=ynext;

end;

                                                                      //улучшенный метод  Эйлера  с 5 интервалами

n:=5;

h:=(b-a)/n;

y:=y0;

for i:=0 to n do begin

x:=i*h;

fxy:=f(x,y);

ypol:=y+h/2*fxy;

xpol:=x+h/2;

fpol:=f(xpol,ypol);

ynext:=y+h*fpol;

ytheor:=thy(x);

Form1.Series4.AddXY(x,y);

Form1.StringGrid2.RowCount:=i+2;

Form1.StringGrid2.Cells[0,i+1]:=FloatToStrF(x,ffFixed,7,7);

Form1.StringGrid2.Cells[1,i+1]:=FloatToStrF(y,ffFixed,7,7);

Form1.StringGrid2.Cells[2,i+1]:=FloatToStrF(fxy,ffFixed,7,7);

Form1.StringGrid2.Cells[3,i+1]:=FloatToStrF(ypol,ffFixed,7,7);

Form1.StringGrid2.Cells[4,i+1]:=FloatToStrF(fpol,ffFixed,7,7);

Form1.StringGrid2.Cells[5,i+1]:=FloatToStrF(ynext,ffFixed,7,7);

Form1.StringGrid2.Cells[6,i+1]:=FloatToStrF(ytheor,ffFixed,7,7);

y:=ynext;

end;

                                                                        //улучшенный метод  Эйлера  с 10 интервалами

n:=10;

h:=(b-a)/n;

y:=y0;

for i:=0 to n do begin

x:=i*h;

fxy:=f(x,y);

ypol:=y+h/2*fxy;

xpol:=x+h/2;

fpol:=f(xpol,ypol);

ynext:=y+h*fpol;

ytheor:=thy(x);

Form1.Series1.AddXY(x,ytheor);

Form1.Series5.AddXY(x,y);

Form1.StringGrid4.RowCount:=i+2;

Form1.StringGrid4.Cells[0,i+1]:=FloatToStrF(x,ffFixed,7,7);

Form1.StringGrid4.Cells[1,i+1]:=FloatToStrF(y,ffFixed,7,7);

Form1.StringGrid4.Cells[2,i+1]:=FloatToStrF(fxy,ffFixed,7,7);

Form1.StringGrid4.Cells[3,i+1]:=FloatToStrF(ypol,ffFixed,7,7);

Form1.StringGrid4.Cells[4,i+1]:=FloatToStrF(fpol,ffFixed,7,7);

Form1.StringGrid4.Cells[5,i+1]:=FloatToStrF(ynext,ffFixed,7,7);

Form1.StringGrid4.Cells[6,i+1]:=FloatToStrF(ytheor,ffFixed,7,7);

y:=ynext;

end;

function thY(tx:real):real;            //рассчёт значений теоретической функции

begin

result:=tx*tx*exp(-tx*tx)/2;

end; 

function f(fx,fy:real):real;             //рассчёт значений  производной

begin

result:=fx*exp(fx*fx)-2*fx*fy;

end; 

procedure TForm1.FormCreate(Sender: TObject);      //задание начальных значений и вывод статических надписей

begin

y0:=0;                                            //начальное приближение функции

a:=0;                                             //границы отрезка решения

b:=1;                                              //... 

StringGrid1.Cells[0,0]:=' i';                       //вывод статических надписей

StringGrid1.Cells[1,0]:=' x(i)';                    //...

StringGrid1.Cells[2,0]:=' y(i)';                    //...

StringGrid1.Cells[3,0]:=' f(x,i)';                  //...

StringGrid1.Cells[4,0]:=' y(i+1)';                  //...

StringGrid1.Cells[5,0]:=' y(i) теор.';              //... 

StringGrid2.Cells[0,0]:=' x(i)';                    //...

StringGrid2.Cells[1,0]:=' y(i)';                    //...

StringGrid2.Cells[2,0]:='f(x,i)';

StringGrid2.Cells[3,0]:=' y(i+1/2)';

StringGrid2.Cells[4,0]:='f(x(i+1/2),y(i+1/2))';

StringGrid2.Cells[5,0]:=' y(i+1)';

StringGrid2.Cells[6,0]:=' y(i) теор.'; 
 

StringGrid3.Cells[0,0]:=' i';

StringGrid3.Cells[1,0]:=' x(i)';

StringGrid3.Cells[2,0]:=' y(i)';

StringGrid3.Cells[3,0]:=' f(x,i)';

StringGrid3.Cells[4,0]:=' y(i+1)';

StringGrid3.Cells[5,0]:=' y(i) теор.'; 

StringGrid4.Cells[0,0]:=' x(i)';

StringGrid4.Cells[1,0]:=' y(i)';

StringGrid4.Cells[2,0]:='f(x,i)';

StringGrid4.Cells[3,0]:=' y(i+1/2)';

StringGrid4.Cells[4,0]:='f(x(i+1/2),y(i+1/2))';

StringGrid4.Cells[5,0]:=' y(i+1)';

StringGrid4.Cells[6,0]:=' y(i) теор.';

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

rasschot;

end;

end.

               
               
               
               
               
               
               
               
               
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Заключение. 

Выполнив  данную курсовую работу, я приобрел навыки в работе с Delphi 7. Так же научился работать с компонентами, которые были использованы для создания программ.

      Delphi 7 является гибким и мощным средством для создания приложений с удобным графическим интерфейсом под современные операционные системы Windows. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Cписок использованной литературы. 

Delphi 7. Пособие для студентов/ А.В. Маткаримов.- Саяногорск, 2006  964с.

Информация о работе Курсовой проект по Delphi 7