Разработка приложения, реализующего циклический вычислительный процесс
Постановка задачи:
Разработать приложение с реализацией циклических вычислений в соответствии с индивидуальным заданием.
Задание: необходимо вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) для х изменяющихся от до с шагом . Близость значений S(x) и Y(x) во всем диапазоне значений x указывает на правильность вычисления S(х) и Y(x).
№
S(x)
Y(x)
0.1
0.5
arctgx
Текст программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Math, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
lbl1: TLabel;
lbl2: TLabel;
lbl3: TLabel;
lbl4: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text :='0.1';
Edit2.Text :='0.5';
Edit3.Text :='15';
Edit4.Text :=FloatToStr((0.5-0.1)/15);
Memo1.Clear;
Memo1.Lines.Add('Лабораторная работа №3');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
xn,xk,s,h,y,z,x2n,nf:real;
n,n1:integer;
begin
xn:=0.1;
xk:=0.5;
n:=15;
h:=(xk-xn)/n;
while xn<=xk do
begin
//Вычисление S
S:=xn;
x2n:=xn;
For n1:=1 To n Do
Begin
nf:=2*n1+1; // (2*n+1)
x2n:=x2n*xn*xn; // x^(2*n+1)
z:=x2n/nf;
if (n1 mod 2)=0 then
S:=S+z else S:=S-z
End;
//Вычисление Y
y:=ArcTan(xn);
Memo1.Lines.Add('S(x) = ' + FloatToStrF(s, ffFixed, 8, 6) + #9 +' Y(x) = '+FloatToStrF(y, ffFixed, 8, 6));
xn:=xn+h;
end;
end;
end.
Результат работы программы:
1. При запуске программы появляется следующее окно:
2. После нажатия кнопки «ПУСК»:
Выводы: изучили средства отладки программ в среде DELPHI. Составили и отладили программу для циклического вычислительного процесса.