|
|
Регистрация | << Правила форума >> | 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, например. |