
28.09.2009, 00:25
|
Прохожий
|
|
Регистрация: 17.09.2009
Сообщения: 27
Репутация: 10
|
|
Помогу с математикой (на примере гиперболического арксинуса).
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, ExtCtrls, Math;
type
TForm1 = class(TForm)
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
Memo1: TMemo;
Button1: TButton;
LabeledEdit3: TLabeledEdit;
LabeledEdit4: TLabeledEdit;
LabeledEdit5: TLabeledEdit;
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
LabeledEdit1.EditLabel.Caption := 'Коэффициент a';
LabeledEdit2.EditLabel.Caption := 'Коэффициент k';
LabeledEdit3.EditLabel.Caption := 'Левая граница интервала';
LabeledEdit4.EditLabel.Caption := 'Правая граница интервала';
LabeledEdit5.EditLabel.Caption := 'Кол-во точек';
Button1.Caption := 'ArcSinh';
Memo1.Clear;
Memo1.ScrollBars := ssVertical;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
_a, _k, _left, _right, _value_single, _x: single;
_i, _n, _value_int : integer;
begin
if TryStrToFloat(LabeledEdit1.Text, _value_single) and
TryStrToFloat(LabeledEdit2.Text, _value_single) and
TryStrToFloat(LabeledEdit3.Text, _value_single) and
TryStrToFloat(LabeledEdit4.Text, _value_single) and
TryStrToInt(LabeledEdit5.Text, _value_int) then
begin
Memo1.Clear;
_a := StrToFloat(LabeledEdit1.Text);
_k := StrToFloat(LabeledEdit2.Text);
_left := StrToFloat(LabeledEdit3.Text);
_right := StrToFloat(LabeledEdit4.Text);
_n := StrToInt(LabeledEdit5.Text);
for _i := 0 to _n-1 do
Memo1.Lines.Add(floatToStr(_a*ArcSinh(_k*(_left + (_right - _left) * _i/(_n-1)))));
end
else
showmessage('Некорректные данные');
end;
end.
Забиваешь коэффициенты, границы, кол-во точек на отрезке в которых считать - те выдаются значения
|