Инструкция пользователю
Данная программа создана для создания графика по вводимым точкам с изменением его цвета. Заполните массив точек и введите цвет точки.
Инструкция программисту
Для создания динамического массива точек был использована структура arra=array of array of integer. Список переменных, используемых в программе, для решения поставленной задачи, представлен в таблице 1.1.
Таблица 1.1 - Перечень переменных для решения поставленной задачи
Имя |
Тип |
Описание |
i |
integer |
счетчик цикла |
arr |
boolean |
динамический массив точек |
Список используемых компонентов представлен в таблице 1.2.
Таблица 1.2 - Перечень используемых компонентов и их описание
MainProgramInf |
TLabel |
Информация о назначении ПО |
startinf |
TLabel |
Объект для вывода информации на дисплей |
InputArray |
TStringGrid |
Таблица для ввода массива точек |
endinformation |
TLabel |
Объект для вывода информации на дисплей |
start: |
TButton |
Объект для запуска программы |
InputChange |
TLabel |
Ввод нового размера таблицы |
inputcolor |
TEdit |
Ввод цвета |
Graph |
TChart |
Объект, на котором выводится график |
Graph_Points |
TLineSeries |
Объект - график |
X_inf |
TLabel |
обозначение ввода координаты Х |
Y_inf |
TLabel |
обозначение ввода координаты Y |
Colors |
TColorDialog |
Объект для выбора цвета графика |
InfWind |
TLabel |
Информация о вводе размера |
InputLength |
TEdit |
Объект для ввода размера массива точек |
StartLength |
TButton |
Объект для изменения размера массива точек |
Тестовый пример
Для проверки работоспособности программы были введены начальные данные. Программа выдаст результат (рисунок 1.2).
Рисунок 1.2 – Пример работы программы
Схема алгоритма
На рисунках 2.1 и 2.2 приведена схема алгоритма создания броуновского движения молекул.
5
4
3
2
1
p[i].Dir:=Random(360)*pi/180;p[i].X:=
random(384); p[i].Y:=random(344);
Рисунок 2.1–Схема алгоритма создания массива случайных точек
7
6
15
16
17
18
20
8
t:=GetTickCount+delay;
clear(Pict);
inc(j);
p[i].Vx:=-round
(V*sin(-p[i].Dir));
p[i].Dir:=-p[i].Dir;
10
9
Application.ProcessMessages;
p[i].Vx:=round(V*sin(p[i].Dir))
p[i].Vy:=-round
(V*cos(p[i].Dir));
p[i].Dir:=-p[i].Dir;
11
12
13
p[i].Vy:=round(V*cos(p[i].Dir))
14
p[i].X:=p[i].X+p[i].Vx;p[i].Y:=p[i].Y+p[i].Vy;Pict.Canvas.Pixels[(p[i].X),
(p[i].Y)]:=clBlack;
19
Рисунок 2.2–Схема алгоритма имитации броуновского движения молекул
