Проект "Построение отовного связного дерева графа" на языке Паскаль
1. Запустить систему программирования Turbo Delphi командой [Программер Bortond Developer Stud ю 2006-Turbo Delpbt).
2. Поместить на форму
• графическое поле Image 1 для рисования первоначального графа;
• графическое поле Image2 для рисования остовного
связного дерева минимального веса;
• кнопку Buttonl для запуска событийной процедуры
вывода вершин графа в первое графическое поле;
• кнопку Button2 для запуска событийной процедуры
вывода элементов матрицы смежности взвешенного
ориентированного графа;
• управляющий элемент StringGridl для вывода эле-ментов матрицы смежности связного взвешенного
ориентированного графа;
• кнопку Button3 для запуска событийной процедуры
вывода элементов матрицы смежности взвешенного
неориентированного графа;
• управляющий nnereem StringGrrd2 Bra вывода эле-ментов матрицы смежности связного взвешенного не-ориентированного графа;
• управляющий элемент stringgrid3 для вывода весов ребер остовного связного дерева;
• управляющий элемент StringGridl для вывода эле-ментов матрицы смежности евязного взвешенного
ориентированного графа;
• кнопку Button3 для запуска событийной процедуры вывода элементов матрицы смежности взвешенного неориентированного графа;
3. Объявить:
• целочисленные массивы х [1] и т [I] для хранения координат вершин графа;
• целочисленный двумерный массив в [ I ] для хранения весов ребер графа;
• целочисленный двумерный массив RI [I] для хранения весов ребер остовного связного дерева минимального веса;
• целочисленные переменные 1, ((, и К, используемые в качестве счетчиков циклов;
• целочисленную переменную $ для хранения суммы весов ребер остовного связного дерева минимального веса;
• целочисленную переменную A для хранения значения, возвращаемого функцией Мее ssgeglg (];
• строковые переменные st rN и st re для хранения номеров точек, возвращаемых функцией InputBax (].
4. щелкнуть по кнопке But tonl и в заготовку
процедуры ввести программный код:
procedure TForml.ButtonlClick(Sender: TOhIect)1
begin
//Очистка областей рисования и обнуление
//переменной
Imagel.Canvas. Brush.Color:=clWhrte;
1magel .Canvas .Rectangle (0, О, 200, 200);
Image2.Canvas. Brush.Color:=clWhrte1
Image2 .Canvas .Rectangle (О, О, 200, 200)(
S:=О;
//ббовиачение строк и столбцов в влементах
//управления Srrrngdri d
For 1:=О То б Do
begin
StringGridl.Celis(I,Ol:=IntToStrt1))
StrrngGridl.Cells[0,1l:=IntToStr(1);
атгглтбгтб2.Cells[I,O]:=IntTOStr(I)1
StrrngGrid2 Cells[0,Il IntТoStг(I)
БбггвсбгтбЗ.Cells[I,О]:=IntToStr(I)
StrirgGrrd3.Cells[0,1l:=IntToStr(I)1
end)
//Генерация случайных коордииат вершин графа
//и их рисование
For 1:=1 То 5 По
begin
Х(1) =Random(200);
I [1]: «Random (2 О 0) )
1magel.Canvas.Pen.Нг4ТЬ:=3(
Image 1. Canvas. El 1 Ipse (Х [ I], I [ I [, Х (I ] Та, I [I ] Те) 1
IЗЗ ~a1 Imagel . Canvas TextQut (Х [I] +5, Y [I]
IntToSrr(I))1
end;
5. запустить проект и осуществить щелчок по кнопке Верши-ны графа. В графическое поле будут выведены вершины графа и их номера.
6. Щелкнуть по кнопке Button2 н в заготовку событийной процедуры ввести программный код: procedure TForml.Button2Click(Sender: TOhject)I begin //Но влоиеннои цикле рисование ребер ориентированного графа, вычисление весов
7. Осуществить щелчок по кнопке Матрица смежности орграфа. В графическом поле будут нарисованы ребра графа, а в таблицу будут выведены веса ребер ориентированного графа
8. Щелкнуть по кнопке Button3 и в заготовку событийной процедуры ввести программный код.
9. Осуществить щелчок по кнопке Матрица смежности графа. В таблицу будут выведены веса ребер неориентированного графа
10. Щелкнуть по кнопке But ton 4 и в заготовку событийной процедуры ввести программный код
11. Осуществить щелчок по кнопке Остовное связанное дерево
12. В появившемся диалоговом окне Выбор ребра минимального веса ввести номер второй точки и щелкнуть по кноп-ке ОК
13. В появившемся диалоговом окне Confirm подтвердить или опровергнуть истинность условий щелчком по кноп-ке Yes
В результате будет построено остовное связанное дерево.