Delphi-Help

  • Increase font size
  • Default font size
  • Decrease font size
Главная Статьи Диаграммы и графики (Chart) Лабораторная работа: Построения графиков с TСhart

Лабораторная работа: Построения графиков с TСhart

Оцените материал
(2 голосов)

Лабораторная работа: Построения графиков с TСhart

Цель лабораторной работы: изучить возможности построения графиков с помощью компонента отображения графической информации TСhart. Написать и отладить программу построения на экране графика заданной функции.

Задание: Написать и отладить программу построение графика функции.

1

В качестве f(x) использовать по выбору: sh(x), x2, ex.

Блок – схемы алгоритма программы

На рисунках 1-7 представлен алгоритм поставленной задачи

2

3

4

Текст программы

Далее приведен текст программы на языке программирования Object Pascal, реализующей выполнение поставленной задачи.

unit laba77888888888888888;
 
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;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Button1: TButton;
    Button2: TButton;
    BitBtn1: TBitBtn;
    Chart1: TChart;
 
    Label6: TLabel;
    Edit6: TEdit;
    Label7: TLabel;
    Edit7: TEdit;
    Series1: TLineSeries;
    RadioGroup1: TRadioGroup;
    Series2: TLineSeries;
    Series3: TLineSeries;
 
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
Type
   fun = function(x:extended):extended; // Объявление типа функция
 
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.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;           // Установка шага разметки по левой оси
  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;     // Начальное значение по оси X
 
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);  // Вывод точки на график
        //x:=x+h;
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.

Инструкция пользователю

Данная программа рисует график выбранной пользователем функции. Для того, чтобы программа нарисовала график функции, вам необходимо заполнить все поля числами, нажать кнопку «Разметить», выбрать функцию, нажать кнопку «Построить график». После чего вы сможете увидеть результ работы. Для выхода из программы используйте кнопку «Close».

Инструкция программисту

Методы обработки событий:

1) procedure FormCreate(Sender: TObject); метод обработки события OnCreate компонента Main_Form

2) procedure Button1Click(Sender: TObject); метод обработки события OnClick компонента Button1

3) procedure Button2Click(Sender: TObject); метод обработки события OnClick компонента Button2

В программе используется модуль matfu, который необходим для вычисления значений функций. Алгоритм его работы представлен на рис. 4-6

Используемые в программе переменные и компоненты интерфейса представлены в таблице 1.

Таблица 1

Имя переменной

Тип/Класс

Назначение

Label1

TLabel

Пояснительная надпись Xmin

Label2

TLabel

Пояснительная надпись Xmax

Label3

TLabel

Пояснительная надпись Ymin

Label4

TLabel

Пояснительная надпись Ymax

Label5

TLabel

Пояснительная надпись о шаге по оси Х

Label6

TLabel

Пояснительная надпись о шаге по оси У

Label7

TLabel

Пояснительная надпись о шаге расчета таблицы

Edit1

TEdit

Поле для ввода Xmin

Edit2

TEdit

Поле для ввода Xmax

Edit3

TEdit

Поле для ввода Ymin

Edit4

TEdit

Поле для ввода Ymax

Edit5

TEdit

Поле для ввода шага по оси Х

Edit6

TEdit

Поле для ввода шага по оси У

Edit7

TEdit

Поле для ввода шага расчета таблицы

Button1

TButton

Кнопка служащая для выполнения разметки сетки

Button2

TButton

Кнопка служащая для построение графика выбранной функции

BitBtn

TBitBtn

Кнопка служащая для выхода из программы

Chart1

TChart

компонента отображения графической информации

Series1

TLineSeries

специальный двумерный массив

RadioGroup1

TRadioGroup

Переключатель между функциями

Xmin

Extended

Минимальное значение Х

Xmax

Extended

Максимальное значение Х

Ymin

Extended

Минимальное значение У

Ymax

Extended

Минимальное значение У

Hx

Extended

Шаг разметки по оси Х

Hy

Extended

Шаг разметки по оси У

H

Extended

Шаг расчета таблицы

U

Extended

Переменная для переключения между функциями

Тестовый пример

На рисунке 4 изображен тестовый пример работы программы.

5

Рисунок 8 – Тестовый пример работы программы, формирующей ведомость об успеваемости студентов

Вывод

Выполнив данную лабораторную работу я изучил возможности построения графиков с помощью компонента отображения графической информации TСhart. Написал и отладил программу построения на экране графика заданной функции.

Другие материалы в этой категории: « Компонент Chart

Авторизация



Счетчики