Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit Unit2;
- interface
- uses StdCtrls, SysUtils;
- Type
- fun = function(x : extended):extended; // Объявление типа функция
- {Расчет таблицы функции f (табуляция функции)}
- procedure Tabl(f:fun;xn,xk:extended; m: word; Mem1 : TMemo);
- implementation
- procedure Tabl;
- var x,y,h: extended;
- i : integer;
- begin
- x:=xn; h:=(xk-xn)/m;
- for i:=1 to m+1 do begin
- y:=f(x);
- Mem1.Lines.Add(' x='+FloatToStrf(x,fffixed,8,3)+
- ' y='+FloatToStrf(y,fffixed,8,3));
- x:=x+h;
- end;
- end;
- end.
- unit Unit1;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs,Math,Unit2, StdCtrls, Buttons, ExtCtrls;
- type
- TForm1 = class(TForm)
- edt1: TEdit;
- edt2: TEdit;
- edt3: TEdit;
- edt4: TEdit;
- mmo1: TMemo;
- btn1: TBitBtn;
- btn2: TBitBtn;
- lbl1: TLabel;
- lbl2: TLabel;
- lbl3: TLabel;
- lbl4: TLabel;
- rg1: TRadioGroup;
- procedure FormCreate(Sender: TObject);
- procedure btn1Click(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- Form1: TForm1;
- xn,xk,e,h : extended;
- m : word;
- implementation
- {$R *.dfm}
- function sx(x:extended):extended;
- var a,n,s : extended;
- k : integer;
- begin
- k:=-1; a:=1; n:=0; s:=0;
- try
- while (abs(a) > e) do begin
- n:=n+1;
- a:=-a*sqr(2*x)/(4*sqr(n)-2*n);
- s:=s+a;
- end;
- Result:=s;
- except
- on EInvalidOp do
- k:=MessageDlg('Неправильная операция с плавающей точкой. '+
- ' Продолжить вычисления?',mtError,[mbYes,mbNo],0);
- on EOverFlow do
- k:=MessageDlg('Переполнение при выполне-нии операции с'+
- ' плавающей точкой! Продолжить вычисления?',mtError,[mbYes,mbNo],0);
- else
- k:=MessageDlg('Возникла неизвестная исключительная ситуация!'+
- ' Продолжить вычисления?',mtError,[mbYes,mbNo],0);
- end;
- case k of
- mrYes : Result:=0;
- mrNo : Halt(1);
- end;
- end;
- function yx(x:extended):extended;
- begin
- Result:=2*(Sqr(Cos(x))-1);
- end;
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- Mmo1.Clear;
- RG1.ItemIndex:=0;
- Edt1.Text:='0,1';
- Edt2.Text:='1';
- Edt3.Text:='6';
- Edt4.Text:='0,0001';
- end;
- procedure TForm1.btn1Click(Sender: TObject);
- begin
- Mmo1.Clear;
- Mmo1.Lines.Add('Лаб. раб. №6 ст. гр. 152001 Бондаря С С');
- xn:=StrToFloat(Edt1.Text);
- Mmo1.Lines.Add(' xn='+FloatToStrF(xn,ffFixed,6,2));
- xk:=StrToFloat(Edt2.Text);
- Mmo1.Lines.Add(' xk='+FloatToStrF(xk,ffFixed,6,2));
- m:=StrToInt(Edt3.Text);
- Mmo1.Lines.Add(' h='+IntToStr(m));
- e:=StrToFloat(Edt4.Text);
- Mmo1.Lines.Add(' e='+FloatToStrF(e,ffFixed,8,5));
- case RG1.ItemIndex of
- 0 : begin
- Mmo1.Lines.Add('Расчет S(x)');
- Tabl(sx,xn,xk,m,Mmo1);
- end;
- 1 : begin
- Mmo1.Lines.Add('Расчет Y(x)');
- Tabl(yx,xn,xk,m,Mmo1);
- end;
- end;
- end;
- end.
Add Comment
Please, Sign In to add comment