![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Вот задали такую задачку. Преподаватель сказал, что тут все легко - надо только с компонентом CHART разобраться.
Я, честно говоря, вообще с делфи не очень дружу) Поэтому не представляю, как это делать) Ну выбор функции сделать - не оч сложно, а вот как сделать, что бы он считывал значения, введенные в поля коэффициентов, интервалов, считал их по формуле и выводил соответствующий график..притом на другой форме... То бишь надо еще как-то скрепить между собой формы. Приложение должно позволять пользователю: • осуществить выбор функции A*ArSh(k*x), A*ArCh(k*x), A*ArTh(k*x), A*ArCth(k*x); • ввести коэффициенты A, k; • ввести границы интервала для построения графика; • просмотреть (и, при желании, сохранить в файле) таблицу значений функции и свойства функции; • выбрать цвет фона, цвет осей и цвет графика; • просмотреть полученный график функции. |
|
#2
|
|||
|
|||
|
Помогу с математикой (на примере гиперболического арксинуса).
Код:
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.Забиваешь коэффициенты, границы, кол-во точек на отрезке в которых считать - те выдаются значения |
|
#3
|
|||
|
|||
|
Чтоб в файл сохранить - формируешь TStringList, забивашь в него всё необходимое и сохраняешь в файл.
Чтоб выбирать цведа - добавляешь TColorDialog, например. |