|
#1
|
|||
|
|||
Найти ошибку
Доброго времени суток, уважаемые форумчане. Столкнулся с проблемой написания программы для рисовки графика функции, указанного в заголовке.
Что я имею сейчас: 1.Код, который не хочет работать; 2.Желание разобраться Вот код: Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, TeEngine, Series, StdCtrls, ExtCtrls, TeeProcs, Chart, Math; type TForm1 = class(TForm) Chart1: TChart; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Edit7: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Button1: TButton; Button2: TButton; Series1: TLineSeries; Edit8: TEdit; Label8: TLabel; Edit9: TEdit; Edit10: TEdit; Label9: TLabel; Label10: TLabel; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Xmin,Xmax,Ymin,Ymax,Hx,Hy,h:real; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin {Установка начальных параметров.} Xmin:=-2*pi; Xmax:=2*pi; Ymin:=-1.5; Ymax:=1.5; Hx:=1; Hy:=0.5; h:=0.01; Edit1.Text:=FloatToStr(Xmin); Edit2.Text:=FloatToStr(Xmax); Edit3.Text:=FloatToStr(Ymin); Edit4.Text:=FloatToStr(Ymax); Edit5.Text:=FloatToStr(Hx); Edit6.Text:=FloatToStr(Hy); Edit7.Text:=FloatToStr(h); Chart1.BottomAxis.Automatic:=False; Chart1.BottomAxis.Minimum:=Xmin; Chart1.BottomAxis.Maximum:=Xmax; Chart1.LeftAxis.Automatic:=False; Chart1.LeftAxis.Minimum:=Ymin; Chart1.LeftAxis.Maximum:=Ymax; Chart1.BottomAxis.Increment:=Hx; Chart1.LeftAxis.Increment:=Hy; end; procedure TForm1.Button1Click(Sender: TObject); begin Xmin:=StrToFloat(Edit1.Text); Xmax:=StrToFloat(Edit2.Text); Ymin:=StrToFloat(Edit3.Text); Ymax:=StrToFloat(Edit4.Text); Hx:=StrToFloat(Edit5.Text); Hy:=StrToFloat(Edit6.Text); Chart1.BottomAxis.Minimum:=Xmin; Chart1.BottomAxis.Maximum:=Xmax; Chart1.LeftAxis.Minimum:=Ymin; Chart1.LeftAxis.Maximum:=Ymax; Chart1.BottomAxis.Increment:=Hx; Chart1.LeftAxis.Increment:=Hy; end; procedure TForm1.Button2Click(Sender: TObject); var x,y,k,a,e:real; begin Series1.Clear; Xmin:=StrToFloat(Edit1.Text); Xmax:=StrToFloat(Edit2.Text); k:=StrToFloat(Edit8.Text); a:=StrToFloat(Edit9.Text); e:=StrToFloat(Edit10.Text); k:=StrToFloat(Edit8.Text); a:=StrToFloat(Edit9.Text); e:=StrToFloat(Edit10.Text); h:=StrToFloat(Edit7.Text); x:=Xmin; Repeat y:=a*e^(k*x); Series1.AddXY(x,y,'',clTeeColor); x:=x+h; Until x>Xmax; end; end. |
#2
|
||||
|
||||
Пишу программы за еду. __________________ |
#3
|
|||
|
|||
Цитата:
Все бы ничего, но мне нужно построить для одной функции, забыл уточнить: a*e^(k*x) P.S. изначально программа(моя) была для функции Y-sin(x) |
#4
|
||||
|
||||
в поле вписать
Код HTML:
Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
Uuuu (05.04.2016)
|
#5
|
|||
|
|||
Цитата:
Все бы ничего, программа и вправду полезная Но это лабораторная, и программа должна вычислять лишь для одной функции y=a*e^(k*x) Если можно, то переделайте мою, если согласны - скину архив |
#6
|
||||
|
||||
Цитата:
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. |