laba_10
.docxБЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
АВТОТРАКТОРНЫЙ ФАКУЛЬТЕТ
КАФЕДРА: ТРАКТОРЫ
Отчёт о лабораторной работе №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.