Министерство образования и науки Российской Федерации
Санкт-Петербургский Политехнический Университет Петра Великого
—
Институт кибербезопасности и защиты информации
К У Р С О В А Я Р А Б О Т А
«Раскрашивание карты»
по дисциплине «Структуры данных»
Выполнил
студент гр. 4851004/10001 Гуторова Л.С.
<подпись>
Преподаватель
асс. преподавателя Панков И.Д.
<подпись>
Санкт-Петербург
2022
Содержание
Цель работы 3 Постановка задачи 3 1Теоретическая часть 3 1.1Алгоритм раскраски 3
1.2Алгоритм поиска смежных областей 4
1.3Определение в какой цвет, какую область нужно раскрасить 5
2Практическая часть 6 1.1Справка 6
2.1Основные файлы и переменные 6
2.2Структуры, используемы в работе 6
2.3Открытие файла 7
2.4Определение границ рисунка 8
2.5Определение количества областей 8
2.6Функция раскрашивания области 8
2.7Определение границ области 9
2.8Работа с таблицей, содержащая информацию о смежности областей 10
2.9Окрашивание 11
2.10Файл log.log 11
Введение
В современном мире многие алгоритмы, которые используются в науках, часто могут применятся в обычной жизни. При разработке такой с математически точки зрения интересной задачи используется алгоритм раскраски графа, а точнее жадный алгоритм. Данный алгоритм может применяться, например, для планирования чего-либо. При планировании нужно тоже решить проблемы возникновения конфликтов (например, нельзя исполнять некоторые дела одновременно) и четкого определения данного времени для дела или процесса. Многие вцифровые знаки для создания и обработки используют алгоритмы, которые используются в данной работе. Даже при решении обычного «судоку», который может использоваться для отдыха человека, можно использовать данный алгоритм.
Цель работы Укрепить знания в использовании структур данных. Изучить работу с bmp-файлами, а также алгоритмы раскраски графов, которые используются при реализации данной программы.
Постановка задачи Написать программу в ОС Xubuntu 20.04 LTS, которая раскрашивает bmp-файл в разные цвета. Данный файл содержит только белый и черный цвет. Черные линии разделяют картинку на области. Необходимо раскрасить области так, чтобы:
Никакие соседние области не была бы закрашены одним цветом.
Общее количество используемых цветов должно быть минимальным.
На вход подаются два аргумента: имя входного файлы и выходного файла. Во время работы на экран выводится прогресс, по окончанию работы выводится общее количество времени, время, затрачиваемое на раскраску, количество цветов и количество областей.