Построения графиков с tсhart
Скачать 0.6 Mb.
|
БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ АВТОТРАКТОРНЫЙ ФАКУЛЬТЕТ КАФЕДРА: ТРАКТОРЫ Отчёт о лабораторной работе №10 по информатике По теме: «Построения графиков с TСhart» Выполнил: студент группы №10109112 Чернушевич Сергей Владимирович Принял: доцент кафедры тракторы Коваль Виталий Александрович Минск 2013 Цель: изучить возможности построения графиков с помощью компонента отображения графической информации TСhart. Написать и отладить программу построения на экране графика заданной функции. Задание: Написать и отладить программу построение графика функции. Ход работы: В качестве f(x) использовать по выбору: sh(x), x2, ex. Примерный вид программы быглядит так .(см. риунок 1) Рисунок 1. На рисунках 2-4 представлен алгоритм поставленной задачи. Рисунок 2. Рисунок 3. Рисунок 4. Код программы unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, TeeProcs, TeEngine, Chart, Buttons, StdCtrls, Series, math, matfu ; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Button1: TButton; RadioGroup1: TRadioGroup; Edit7: TEdit; Label7: TLabel; Chart1: TChart; Button2: TButton; procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Xmin,Xmax,Ymin,Ymax,Hx,Hy,h : extended; u: integer; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Xmin:=0; Xmax:=0; Ymin:=0; Ymax:=0; Hx:=0; Hy:=0; 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.Maximum:=Xmax; Chart1.LeftAxis.Automatic:=False; Chart1.LeftAxis.Minimum:=Ymin; Chart1.LeftAxis.Maximum:=Ymax; Chart1.BottomAxis.Increment:=Hx; Chart1.LeftAxis.Increment:=Hy; button2.hide; 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; button2.Show; end; procedure TForm1.Button2Click(Sender: TObject); var x,y1,j: extended; y: array [1..3] of extended; f: fun ; begin Series1.Clear; Series2.Clear; Series3.Clear; Xmin:=StrToFloat(Edit1.Text); Xmax:=StrToFloat(Edit2.Text); h:=StrToFloat(Edit7.Text); x:=Xmin; case RadioGroup1.ItemIndex of 0: u:=1; 1: u:=2; 2: u:=3; end; x:=Xmin; y[u]:=0; repeat If (x>0.5) and (x<10) then begin if u=1 then y[u]:=e(x); if u=2 then y[u]:=x2(x);if u=3 then y[u]:=sh(x); y1:=exp(y[u]-abs(x)); Series1.AddXY(x,y1,'',clTeeColor); end; x:=x+h; until (x>Xmax); x:=Xmin; y[u]:=0; repeat j:=x; if (x>0.1) and (x<0.5) then begin if u=1 then y[u]:=e(j); if u=2 then y[u]:=x2(j); if u=3 then y[u]:=sh(j);y1:=sqrt(abs(y[u]+x)); Series2.AddXY(x,y1,'',clTeeColor); end; x:=x+h;until (x>Xmax); x:=Xmin;y[u]:=0;repeat if (x<0.1) or (x>10) then begin if u=1 then y[u]:=e(x); if u=2 then y[u]:=x2(x); if u=3 then y[u]:=sh(x); y1:=2*y[u]*y[u]; Series3.AddXY(x,y1,'',clTeeColor); end; x:=x+h; until (x>Xmax); end; end. unit matfu; interface Function e(x:extended) : extended; Function Sh(x:extended) : extended; Function x2(x:extended) : extended; implementation Function e; begin Result:=exp(x); end; Function sh; begin Result:=(exp(x)-exp(-x))/2; end; Function x2; begin Result:=x*x; end; end. |