Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programmir_na_Object_Pascal_lab_raboty_.doc
Скачиваний:
208
Добавлен:
11.03.2016
Размер:
14.48 Mб
Скачать

7.2. Пример написания программы

Задание: Написать программу, которая с помощью компонента TChart строит

график функции

на отрезке (Хн - Хк) с шагом dX.

Значения Хн, Хк, dX вводятся с клавиатуры в компоненты TLabeledEdit.

Вычисление f(x) для любого Х оформить в виде подпрограммы-функции.

Интерфейс программы приведен на рис. 7.7, а текст - в листинге 7.1.

Рис. 7.7. Интерфейс программы.

Листинг 7.1

unit Gr_ChartU;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, jpeg, StdCtrls, Buttons, TeeProcs, TeEngine, Chart,

Series;

type

TForm1 = class(TForm)

XXn: TLabeledEdit;

XXk: TLabeledEdit;

ddX: TLabeledEdit;

Chart1: TChart;

BitBtn1: TBitBtn;

Series1: TLineSeries;

Image1: TImage;

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

//==========================================

Function f(x : real) : real;

// вычисление функции f(x)

begin

if x < -1 then Result := exp(x);

if (x > -1) and (x < 0) then Result := 1/exp(x) + exp(5*ln(x+1));

if x > 1 then Result := exp(-x);

end;

//==========================================

procedure TForm1.BitBtn1Click(Sender: TObject);

// построить

var

Xn, Xk, dX, X : real;

begin

Xn:=StrToFloat(XXn.Text);

Xk:=StrToFloat(XXk.Text);

dX:=StrToFloat(ddX.Text);

Series1.Clear;

X:=Xn;

While X<=Xk do begin

Series1.AddXY(X, f(X),'', clRed);

X:=X+dX;

end;

end;

//---------------------------------------------

end.

7.3. Пример написания программы

Построить график функции (с помощью компонента TChart), которая приведена ниже. В качестве f(x) использовать по выбору (компонент TRadioGroup): cos(x), x2 или sin(x). Значения: у, диапазон (Xнач - Хкон) и шаг dX вводятся с клавиатуры.

Примерный интерфейс программы приведен на рис. 7.7, а фрагмент программы (только функция и обработчик Button1Click() ) - в Листинге 7.2.

Рис. 7.7. Интерфейс программы

Листинг 7.2

//=============================================

Function f(x, y : real; RadioGroup : TRadioGroup) : real;

//фунция

var fx : real;

begin

case RadioGroup.ItemIndex of

0 : fx := cos(x);

1 : fx := sqr(x);

2 : fx := sin(x);

end;

if fx > 0.5 then f := sqr(x+y)-sqrt(y);

if (fx > -0.5) and (fx <= 0.5) then f := sqr(x+y)+power(x*y,3);

if fx < -0.5 then f := sqr(x+y)+ln(y);

end;

//=============================================

procedure TForm1.Button1Click(Sender: TObject);

//построить

var

Xn, Xk, Y, x, dX : real;

begin

Y:=StrToFloat(Edit1.Text); //получаем у

Xn:=StrToFloat(Edit2.Text) ; //получаем Хнач

Xk:=StrToFloat(Edit3.Text); //получаем Хкон

dX:=StrToFloat(Edit4.Text); //получаем шаг dХ

Series1.Clear;

x := Xn;

while x <= Xk do begin

Series1.AddXY(X, f(x,y,RadioGroup1), '', clRed);

x := x + dX;

end;

end;

//--------------------------------------------

7.4. Индивидуальные задания

Варианты заданий взять из лабораторной работы № 2 (пункт 2.7, стр.24).

Диапазон изменения Х, шаг dX и значение Y для графика выбрать самостоятельно. Вычисление функции f(x) для любого Х оформить в виде подпрограммы-функции.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]