Разработка приложения, предназначенного для нахождения раскраски заданного неориентированного графа с использованием метода Зыкова

Разработка и отладка графического приложения со стандартизированным интерфейсом. Переборный и последовательный алгоритмы раскраски неориентированного графа. Описание модулей uMain, uData, uFiling, uColoring, uInputk, uHelp. Тестирование работы приложения.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 11.02.2016
Размер файла 1,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

ColFound:

if Colorable then

begin // Пометканайденнойвершиныцветом CurColor

VColor[VNumber[VCur-1]-1]:=CurColor;

exclude(Uncolored,VNumber[VCur-1]);

result:=CurColor;

end

// В текущий цвет вершины раскрасить нельзя, берем следующий

else inc(CurColor);

until Uncolored=[];

VDegree:=Nil;

VNumber:=Nil

end;

// Раскраска графа в NewColorCount цветов по найденной минимальной раскраске

procedure DoNonminColoring(VCount: Cardinal; VColor: TColoring;

MinColorCount, NewColorCount: Byte);

var i,j: Byte;

begin

if MinColorCount >= NewColorCount then Exit;

for i:=1 to VCount - 1 do

for j:=i+1 to VCount do

if VColor[j-1] = VColor[i-1] then

begin

inc(MinColorCount);

VColor[j-1]:=MinColorCount;

if MinColorCount >= NewColorCount then Exit;

end;

end;

// Обнуление массива цветов вершин графа

function ResetColoring(VCount: Cardinal; VColor: TColoring): boolean;

var i: Byte;

begin

result:=false;

if VCount = 0 then Exit;

for i:=0 to VCount - 1 do

if VColor[i] > 0 then

begin

result:=true;

VColor[i]:=-1;

end;

end;

begin

// Установка цветов для раскраски вершин графа на форме

RealColors[0]:=clYellow;

RealColors[1]:=clAqua;

RealColors[2]:=clMaroon;

RealColors[3]:=clRed;

RealColors[4]:=clSkyBlue;

RealColors[5]:=clGreen;

RealColors[6]:=clPurple;

RealColors[7]:=clTeal;

RealColors[8]:=clSilver;

RealColors[9]:=clOlive;

RealColors[10]:=clNavy;

RealColors[11]:=clltGray;

RealColors[12]:=clLime;

RealColors[13]:=clFuchsia;

RealColors[14]:=clMedGray;

RealColors[15]:=clMoneyGreen;

RealColors[16]:=clBlue;

RealColors[17]:=clCream;

RealColors[18]:=clWhite;

end.

unit uData;

interface

uses Types, Graphics;

const MaxVCount = 50; // Максимальное число вершин графа

type // Глобально используемые типы

TAdMatrix = array of array of Byte; // Матрица смежности графа

TColoring = array of ShortInt; // Векторцветоввершин

TRealColors = array[0..MaxVCount-1] of TColor; // Системныеименацветов

TVertices = array of TPoint; // Координатыцентроввершин

TGraphFile = file of Byte; // Файлграфа

implementation

end.

unit uFiling;

// Функция сохранения графа в файле по матрице смежности

function DoSaveFile(const FileName: string; const AdMatrix: TAdMatrix): Boolean;

var VCount,FileSize: Word;

FileImage: array of Byte;

i,j,Bit,m,u: Byte;

begin

result:=False;

if (FileName='') or (AdMatrix=Nil) then Exit;

AssignFile(GraphFile,FileName);

try // Открытиефайланазапись

Rewrite(GraphFile);

except

Exit

end;

VCount:=High(AdMatrix)+1; // Создание массива для образа файла

FileSize:=Ceil(VCount*(VCount-1)/16);

SetLength(FileImage,FileSize+1);

FileImage[0]:=VCount;

Write(GraphFile,FileImage[0]);

m:=1; u:=0; Bit:=0;

for i:=0 to VCount - 2 do

for j:=i+1 to VCount - 1 do

begin // Перезапись матрицы смежности в массив

if Bit > 0 then u:=u shl 1;

inc(Bit);

if AdMatrix[i,j] > 0 then u:=u or $1;

if Bit >= 8 then

begin

Bit:=0;

FileImage[m]:=u;

Write(GraphFile,FileImage[m]);

inc(m);

u:=0;

end;

end;

if Bit > 0 then // Дозапись последнего байта

begin

FileImage[m]:=u;

Write(GraphFile,FileImage[m]);

end;

CloseFile(GraphFile);

FileImage:=Nil;

result:=True;

end;

// Функция чтения графа из файла в матрицу смежности

function DoReadFile(const FileName: string;

var VCount: Byte; var AdMatrix: TAdMatrix): Boolean;

var OldVCount,FileSize: Word;

FileImage: array of Byte;

i,j,k,mask,q: Byte;

begin

result:=True;

if FileName='' then Exit;

AssignFile(GraphFile,FileName);

try // Открытиефайланачтение

Reset(GraphFile);

except

result:=False;

Exit

end;

OldVCount:=VCount;

Read(GraphFile,VCount); // Чтениечиславершинграфа

if VCount > MaxVCount then begin

VCount:=OldVCount; // Некорректноечисловершин

result:=False;

end

else

begin // Считывание матрицы смежности в массив

FileSize:=Ceil(VCount*(VCount-1)/16);

SetLength(FileImage,FileSize);

k:=0;

while not eof(GraphFile) do

begin

Read(GraphFile,FileImage[k]);

inc(k);

end;

if k = 0 then result:=False

else

begin

// Преобразование массива в матрицу смежности графа

SetLength(AdMatrix,VCount,VCount);

i:=0; j:=1;

for k:=0 to FileSize - 1 do

begin // Преобразование k-гоэлементамассива

if k = FileSize - 1 then

begin

mask:=1; // Расчет числа значащих бит последнего элемента

q:=(VCount*(VCount-1) div 2) mod 8;

mask:=mask shl (q-1);

end

else mask:=$80;

repeat // Распаковка битового образа элемента массива

if mask and FileImage[k] > 0 then

begin

AdMatrix[i,j]:=1;

AdMatrix[j,i]:=1;

end;

inc(j);

if j = VCount then

begin

inc(i);

j:=i+1;

end;

mask:=mask shr 1;

until mask = 0;

end;

end;

FileImage:=Nil;

end;

CloseFile(GraphFile);

end;

end.

unit uHelp;

implementation

procedure TfmHelp.FormActivate(Sender: TObject);

begin // Окно используется в режиме "о программе"

self.Caption:='Опрограмме';

self.Position:=poMainFormCenter;

RichEdit.Lines.Clear;

RichEdit.ScrollBars:=ssNone;

RichEdit.Font.Size:=10;

RichEdit.Font.Color:=clBlue;

RichEdit.Lines.Append('Курсовая работа по дисциплине: Моделирование и оптимальное проектирование технических систем.');

RichEdit.Lines.Append('');

RichEdit.Lines.Append('Тема работы: Раскраска графа методом Зыкова');

RichEdit.Lines.Append('');

RichEdit.Lines.Append('Выполнил студент гр. 107221 Иванчик Сергей Александрович');

end;

procedure TfmHelp.FormDeactivate(Sender: TObject);

begin

RichEdit.Font.Size:=8;

RichEdit.Font.Color:=clBlack;

end;

end.

unit uInputk;

implementation

procedure TfmInputk.btnSetClick(Sender: TObject);

begin

if ComboBox.Text = '' then ModalResult:=mrNone

else ModalResult:=mrOk;

end;

procedure TfmInputk.btnCanselClick(Sender: TObject);

begin

ModalResult:=mrCancel;

fmMain.StatusBar.SimpleText:='Готово';

end;

procedure TfmInputk.ComboBoxChange(Sender: TObject);

var i: Integer;

begin

i:=StrToIntDef(ComboBox.Text,0);

if (i < 1) or (i > ComboBox.Tag) then

ComboBox.Text:='';

end;

procedure TfmInputk.FormActivate(Sender: TObject);

begin

ComboBox.Text:='';

end;

end.

Размещено на Allbest.ru

...

Подобные документы

  • Разработка граф-схемы алгоритма раскраски на языке Object Pascal. Формат файла для хранения графов. Выбор удобочитаемых идентификаторов. Переменные, константы, типы, компоненты, процедуры и функции модулей uMain, uInputk, uFiling, uColoring, uHelp.

    курсовая работа [1,3 M], добавлен 22.11.2013

  • Этапы нахождения хроматического числа произвольного графа. Анализ примеров раскраски графа. Характеристика трудоемкости алгоритма раскраски вершин графа Мейниеля. Особенности графов, удовлетворяющих структуру графов Мейниеля, основные классы графов.

    курсовая работа [1,1 M], добавлен 26.06.2012

  • Математические графы, области их применения. Способы раскраски вершин и ребер графов, задачи на их применение. Разработка алгоритма, работающего на основе операций с матрицей смежности. Описание логической структуры программы. Пример зарисовки графа.

    курсовая работа [145,5 K], добавлен 27.01.2013

  • Создание многоуровневого приложения с Web-интерфейсом выставления оценки фильму и просмотра оценок других пользователей. Клиентская часть приложения. Разработка многопользовательского веб-приложения на ASP.NET MVC 3 с разграничением доступа к данным.

    курсовая работа [949,7 K], добавлен 22.02.2015

  • Характеристика объекта автоматизации. Создание многоуровневой архитектуры приложения, отладка метода безошибочной идентификации пользователей системы. Разработка нестандартного метода преобразования объектов базы данных в объекты классов приложения.

    курсовая работа [395,4 K], добавлен 28.04.2015

  • Разработка клиент-серверного приложения, позволяющего взаимодействовать друг с другом с использованием доступа к базам данных. Проектирование связи сервера с базой данных с помощью технологии ODBC. Разработка интерфейса программы, ее тестирование.

    курсовая работа [352,0 K], добавлен 24.08.2016

  • Возможности среды программирования delphi при разработке приложения с визуальным интерфейсом. Отладка программных модулей с использованием специализированных программных средств. Тестирование программного обеспечения. Оптимизация программного кода.

    курсовая работа [974,0 K], добавлен 21.12.2016

  • Основные инструменты построения Web-приложения. Язык сценариев PHP. Системный анализ предметной области базы данных. Коды SQL запросов на создание таблиц. Разработка Web-приложения. Описание функциональности модулей. Система управления содержимым статей.

    курсовая работа [4,8 M], добавлен 28.04.2014

  • Изучение возможностей среды программирования delphi при разработке приложения с визуальным интерфейсом. Отладка программных модулей с использованием специализированных средств. Способы работы с динамическими массивами. Оптимизация программного кода.

    курсовая работа [1,0 M], добавлен 23.12.2016

  • Способы построения остовного дерева (алгоритма поиска в глубину и поиска в ширину). Вид неориентированного графа. Понятие и алгоритмы нахождения минимальных остовных деревьев. Последовательность построения дерева графов по алгоритмам Крускала и Прима.

    презентация [22,8 K], добавлен 16.09.2013

  • Автоматизация системы снятия показаний счетчиков энергии. Разработка базы данных и клиентского приложения для структур жилищно-коммунального хозяйства, занимающихся составлением квитанций. Описание предметной области. Тестирование клиентского приложения.

    курсовая работа [953,3 K], добавлен 01.09.2016

  • Описание технологии asp.net. Страницы веб-приложения, тестирование системы. Описание функциональной, динамической модели системы. Диаграммы вариантов использования, последовательности, база данных приложения. Реализация программы, интерфейс, тестирование.

    курсовая работа [3,2 M], добавлен 30.01.2013

  • Возможности среды программирования delphi при разработке приложения с визуальным интерфейсом. Разработка спецификации программного обеспечения и на ее основе кода программного продукта. Отладка программы "трассировкой", ее тестирование и оптимизация.

    курсовая работа [501,4 K], добавлен 07.12.2016

  • Анализ предметной области. Диаграмма классов. Проектирование программного продукта "Часы". Тестирование и отладка, руководство программиста. Описание работы приложения. Руководство оператора, модель жизненного цикла. Файл Times.cs, Arrow.cs, Form1.cs.

    курсовая работа [1,7 M], добавлен 20.04.2015

  • Разработка программного приложения по автоматизированному учету поступающего довольствия. Описание среды программирования. Тестирование и отладка приложения. Анализ результатов решения. Инструкция пользователю. Требования к техническому обеспечению.

    дипломная работа [946,0 K], добавлен 18.07.2014

  • Разработка Web-приложения для ООО "Научно-производственная фирма по применению информационных технологий в электрических сетях". Техническое задание, проектирование процессов, создание базы данных, разработка дизайна, тестирование и отладка сайта.

    дипломная работа [3,8 M], добавлен 24.06.2011

  • Общая схема работы приложения Android. Разработка обучающего приложения для операционной системы Android, назначение которого - развитие речи посредством произнесения скороговорок. Описание компонентов разработанного приложения, его тестирование.

    дипломная работа [1,2 M], добавлен 04.02.2016

  • Фильтрация шумов изображения. Алгоритмы его бинаризации и поворота. Формирование информативных признаков для распознавания нот. Схема программного обеспечения. Описание классов, функций, методов, реализованных в программе. Тестирование приложения.

    курсовая работа [2,0 M], добавлен 17.12.2013

  • Структура базы данных web-приложения предприятия ООО "Седово"; автоматизация процесса передачи документов. Разработка технического задания, проектирование БД, функциональное назначение web-приложений, тестирование, отладка и размещение в сети Internet.

    дипломная работа [5,3 M], добавлен 24.06.2011

  • Создание, изучение и разработка приложение на Android. Среда разработки приложения DelphiXE5. Установка и настройка среды программирования. Этапы разработки приложения. Инструменты для упрощения конструирования графического интерфейса пользователя.

    курсовая работа [1,6 M], добавлен 19.04.2017

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.