Физическое проектирование

В программе используется 1 главный модуль MainGraf - модуль с вкладками ввода, параметров, настроек и небольшой справки.

Рассмотрим процедуры и функции основного модуля MainGraf:

Таблица 2

Заголовок процедуры или функции Формальные параметры Выполняемые действия
function TmainGraf.FindKS(_Type: byte): byte; - Функция нахождения количества компонент связности и их вывода
procedure TMainGraf.Depth(v:byte;_Type:byte); u,z:byte; Обходит граф в глубину и выводит результат обхода
Procedure TMainGraf.Recursiya(ii: integer);   a,b: integer; Обходит граф в ширину и выводит результат
procedure Reach(); S,T:set of 1..255; i,j,l:integer; Проверка графа на связность
procedure TMainGraf.SpeedButton1Click(Sender: TObject); i,j,a: integer; Авто заполнение матрицы смежности (таблицы)

Продолжение Таблица 2.

procedure TMainGraf.DrawArrow(Canvas: TCanvas;x0, y0,x1,y1: Integer; __type,penwidth: byte); XB, YB, XE, YE, XM, YM,x11,y11: Integer; Angle_Line, Angle_Arrow: Extended; Length_Line, Length_Arrow: integer; Процедура построения линии двух вариантов: направленную (1) или нет (2) с настройкой ширины и цвета линии
Procedure TMainGraf.Visualization(Canvas: TCanvas;_Type: byte); i,j: integer; //cчетчики a,b,c: integer; //переменный для дополниельных вычислений Xx,Yy:integer; //переменные для хранения координаты вершины cosS,SinS: real; // син и косинус угла наклона Ugol: real; // угол наклона прямой alpha: real; // угол наклона стрелки у прямой Step: integer; //шаг для построения квадрата s1,s2: string; //строки для записи в лейбл Визуализация графа
procedure TMainGraf.SpeedButton2Click(Sender: TObject); - Визуализация графа

Продолжение таблица 2.

procedure TMainGraf.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Xpos, Ypos,i: integer; Нажатие по изображению графа, выделяется вершина
procedure TMainGraf.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); - Передвижение курсора по изображению графа
procedure TMainGraf.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); - Отпустить нажатие по изображению графа, строиться граф
procedure TMainGraf.Button1Click(Sender: TObject); i,j: integer; Задает граф, настраивает начальное состояние программы
procedure TMainGraf.FormCreate(Sender: TObject); i,j: integer; a,b,c: byte; F: textFile; S: string; Настраивает программу при запуске.
procedure TMainGraf.SpeedButton5Click(Sender: TObject); TypeG: boolean; Вызывает процедуру проверки графа на связность и выводит результат
procedure TMainGraf.SpeedButton7Click(Sender: TObject); z: integer; Вызывает процедуру обхода в ширину и выводит полученный результат
procedure TMainGraf.SpeedButton4Click(Sender: TObject); i: integer; Вызывает процедуру построения графа
procedure TMainGraf.SpeedButton3Click(Sender: TObject); a,b: integer; k: integer; b1: boolean; Вызывает процедуру поиска точек сочленения и анализирует данные

Продолжение Таблица 2.

procedure TMainGraf.SpeedButton6Click(Sender: TObject); TypeG: boolean; a,k,b: integer; PSP: array of integer; //масси тпа вершины (со связями или нет) empty: boolean; //относится к массиву выше. MAXGroups: byte; //число компонент связности, без точек сочленения consist: boolean; //есть ли дуги из вершины colKD: byte; //Число компонент двусвязнсти Вызывает необходимые процедуры для определения двусвязных компонент графа, анализирует данные и выводит полученный результат
procedure TMainGraf.SpeedButton8Click(Sender: TObject); s: integer; Вызывает процедуру для обхода графа в глубину
procedure TMainGraf.FormResize(Sender: TObject); x,y: integer; Изменение размера формы
procedure TMainGraf.BitBtn1Click(Sender: TObject); a,b,c: byte; Задает массив цветов, для визуализации компонентов двусвязности и связности
procedure TMainGraf.Timer1Timer(Sender: TObject); - Процедура задержки конечной визуализации графа, если выделить вершину

Продолжение Таблица 2.

procedure TMainGraf.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean); CSel:=ACol; RSel:=ARow; Выделение дуги графа
procedure TMainGraf.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String); - Ввод данных в таблицу
procedure TMainGraf.StringGrid1KeyPress(Sender: TObject; var Key: Char); - Запрет на ввод в таблицу символов кроме 0 и 1

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: