Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет по лабораторной на Delphi.http://vk.com/p...doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
719.87 Кб
Скачать

Министерство образования и науки Российской Федерации

ФГБОУВПО Тульский государственный университет

РАБОТА С ГРАФИКОЙ В DELPHI

Отчёт по лабораторной работе

http://vk.com/pomoshtulgu - создатели этой работы. Отчеты и курсовые на заказ, недорого.

Цель и задача работы

Научиться использовать графику в языке программирования Delphi.

Задание на работу

1) Предусмотреть возможность изменения цвета графика, созданного из вводимых точек.

2) Написать программу, в которой происходит симуляция броуновского движения молекул.

3) Создать файл MS Word и записать в него рисунок с комментарием

  1. Схема алгоритма

Н а рисунке 1.1 приведена схема алгоритма выбора цвета.

1

2

3

5

6

4

7

Graph_Points.AddXY(arr[0][i],arr[1][i],'',Colors.Color);

8

10

9

10

Рисунок 1.1 – Схема алгоритма создания и выбора цвета графика

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

Ниже приведён текст программы, написанный на языке программирования Delphi 7, выполняющий создание графика по точкам и изменение его цвета.

unit Lab;

interface

uses

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

Dialogs, Grids, StdCtrls, ExtCtrls, TeEngine, Series, TeeProcs, Chart;

type

arra=array of array of integer;

TMainProgram = class(TForm)

MainProgramInf: TLabel;// Информация о назначении ПО

InputArray: TStringGrid;// Таблица для ввода массива точек

startinf: TLabel;// Объект для вывода информации на дисплей

endinformation: TLabel;// Объект для вывода информации на дисплей

start: TButton;// Объект для запуска программы

InfWind: TLabel;// Информация о вводе размера

InputLength: TEdit;// Объект для ввода размера массива точек

StartLength: TButton;// Объект для изменения размера массива точек

Graph: TChart;// Объект, на котором выводится график

Graph_Points: TLineSeries;// Объект - график

X_inf: TLabel;// обозначение ввода координаты Х

Y_inf: TLabel;// обозначение ввода координаты Y

Colors: TColorDialog;// Объект для выбора цвета графика

procedure startClick(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure StartLengthClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

MainProgram: TMainProgram;

{Подпрограмма для проверки ввода данных}

procedure checkandinputarr(var flag:boolean;InputArray:TStringGrid;var arr:arra);

var

size:integer;

flag:boolean;

implementation

{$R *.dfm}

{Подпрограмма для проверки ввода данных}

procedure checkandinputarr(var flag:boolean;InputArray:TStringGrid;var arr:arra);

var i,j:integer;

begin

i:=-1;

while ((i<size-1)and(flag=false)) do

begin

inc(i);

try

arr[i][0]:=strtoint(InputArray.Cells[i,0]);

arr[i][1]:=strtoint(InputArray.Cells[i,1]);

except

on EConvertError do

begin

ShowMessage('Ошибка преобразования ввода элемента матрицы. Введите целое число!');

flag:=true;

end;

end;

end;

end;

{Подпрограмма для создания динамического массива}

function GetMem(var arr:arra;size:integer):boolean;

var i:integer;

flag:boolean;

begin

flag:=false;

SetLength(arr,size);

if arr<>nil then

begin

i:=0;

while ((i<=size-1)and(flag<>true)) do

begin

SetLength(arr[i],2);

if arr[i]=nil then

begin

flag:=true;

Result:=true;

end;

inc(i);

end;

end;

end;

{Подпрограмма для освобождения памяти из-под динамического массива}

procedure FreeMem(var arr:arra;size:integer);

var i:integer;

begin

for i:=0 to size-1 do

arr[i]:=nil;

arr:=nil;

end;

{Подпрограмма для создания графика с выбираемым цветом по вводимым точкам}

procedure TMainProgram.startClick(Sender: TObject);

var arr:arra;

i:integer;

begin

Graph_Points.Clear;

Graph.BottomAxis.Automatic:=True;

Graph.LeftAxis.Automatic:=True;

flag:=false;

SetLength(arr,size);

if GetMem(arr,size)<>true then

begin

checkandinputarr(flag,InputArray,arr);

if ((flag=false)and(colors.Execute)) then

begin

for i:=1 to size do

Graph_Points.AddXY(arr[0][i],arr[1][i],'',Colors.Color);

end;

FreeMem(arr,size);

{output_from_file(Graph_Points,SaveFile);}

end

else

ShowMessage('Память не выделилась!!');

end;

procedure TMainProgram.FormCreate(Sender: TObject);

begin

size:=9;

Graph_Points.Clear;

end;

{Подпрограмма для изменения размеров таблицы с точками}

procedure TMainProgram.StartLengthClick(Sender: TObject);

begin

try

size:=strtoint(InputLength.Text);

except

on EConvertError do

begin

ShowMessage('Ошибка преобразования ввода элемента матрицы. Введите целое число!');

flag:=true;

end;

end;

if ((size<3)or(size>32768)) then

begin

flag:=true;

ShowMessage('Ошибка ввода смещения. Введите значение в допустимом диапозоне');

end;

InputArray.ColCount:=size;

end;

end.