Skip to content
This repository has been archived by the owner on Dec 28, 2023. It is now read-only.

[task_03] Add problem solution #371

Open
wants to merge 38 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 13 commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
0352c4a
[task_03] Add problem solution
Gluharev-Danik Dec 14, 2023
4931343
Create CMakeLists.txt
Gluharev-Danik Dec 14, 2023
618ca2b
update
Gluharev-Danik Dec 14, 2023
9a4c7f4
Update CMakeLists.txt
Gluharev-Danik Dec 14, 2023
88c19f5
update
Gluharev-Danik Dec 14, 2023
18ff9a0
Update task3.py
Gluharev-Danik Dec 14, 2023
a367289
Update task3.py
Gluharev-Danik Dec 14, 2023
5aedcd0
Update task3.py
Gluharev-Danik Dec 14, 2023
b2940e2
Update task3.py
Gluharev-Danik Dec 15, 2023
b2723ae
Update task3.py
Gluharev-Danik Dec 15, 2023
aab43a5
Update task3.py
Gluharev-Danik Dec 15, 2023
3e39b0d
Merge branch 'brstu:main' into task_03
Gluharev-Danik Dec 15, 2023
f2cc4ea
Update readme.md
Gluharev-Danik Dec 15, 2023
64ac0e6
Update task3.py
Gluharev-Danik Dec 16, 2023
d756d96
Update task3.py
Gluharev-Danik Dec 16, 2023
465d141
Update task3.py
Gluharev-Danik Dec 16, 2023
8e5a2b3
Update task3.py
Gluharev-Danik Dec 16, 2023
ed2bf33
Update task3.py
Gluharev-Danik Dec 16, 2023
a4268af
Merge branch 'main' into task_03
Gluharev-Danik Dec 16, 2023
ddd273e
Update task3.py
Gluharev-Danik Dec 17, 2023
ef0a52f
Update task3.py
Gluharev-Danik Dec 17, 2023
19d8b6e
Merge branch 'main' into task_03
VolkogonNikita Dec 17, 2023
36999be
Update task3.py
Gluharev-Danik Dec 17, 2023
181fd28
Merge branch 'task_03' of https://github.com/Gluharev-Danik/OTIS-2023…
Gluharev-Danik Dec 17, 2023
6fc6fd1
Update task3.py
Gluharev-Danik Dec 17, 2023
4471062
Update task3.py
Gluharev-Danik Dec 18, 2023
ad2cc81
Merge branch 'main' into task_03
Gluharev-Danik Dec 19, 2023
237f814
Update task3.py
Gluharev-Danik Dec 20, 2023
2390b58
Merge branch 'task_03' of https://github.com/Gluharev-Danik/OTIS-2023…
Gluharev-Danik Dec 20, 2023
dc8e7be
Merge branch 'main' into task_03
Gluharev-Danik Dec 20, 2023
f6e4026
Update task3.py
Gluharev-Danik Dec 20, 2023
32d5ef0
Merge branch 'task_03' of https://github.com/Gluharev-Danik/OTIS-2023…
Gluharev-Danik Dec 20, 2023
89469df
Update task3.py
Gluharev-Danik Dec 21, 2023
3e7214f
Merge branch 'main' into task_03
Gluharev-Danik Dec 22, 2023
59a198a
Merge branch 'main' into task_03
VolkogonNikita Dec 25, 2023
39bb89a
Merge branch 'main' into task_03
Gluharev-Danik Dec 26, 2023
8390d24
Update readme.md
Gluharev-Danik Dec 27, 2023
5a418e0
Merge branch 'main' into task_03
Gluharev-Danik Dec 27, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
| 2 | [Волкогон Никита](https://github.com/VolkogonNikita) |[ii02302](trunk/II02302) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | | 9|
| 3 | [Вышинский Артём](https://github.com/arciomwww) |[ii02303](trunk/ii02303) | ✅ | ✅ | ❌ | ✅ | | | | | 6|
| 4 | [Гавришук Владислав](https://github.com/VLadGavrishuk)|[ii02304](trunk/ii02304)| ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | | | 7|
| 5 | Глухарев Даниил |[ii02305](trunk/ii02305) | ✅ | ✅ | ✅ | | | | | | 7|
| 5 | [Глухарев Даниил](https://github.com/Gluharev-Danik) |[ii02305](trunk/ii02305) | ✅ | ✅ | ✅ | | | | | | 7|
| 6 | [Колеснев Антон](https://github.com/Flugel228) |[ii02307](trunk/ii02307) | ✅ | ✅ | ✅ | ❌ | ✅ | | | | 7|
| 7 | [Кононов Алексей](https://github.com/madebyth00 |[ii02309](trunk/ii02309) | ✅ | ✅ | ❌ | ❌ | | | | | 6|
| 8 | [Копач Александр](https://github.com/AtticaQQ) |[ii02308](trunk/ii02308) | ✅ | ✅ | ❌ | ❌ | ✅ | | | | 6|
Expand Down
Binary file added trunk/ii02305/task_03/doc/pic1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added trunk/ii02305/task_03/doc/pic2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added trunk/ii02305/task_03/doc/pic3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added trunk/ii02305/task_03/doc/pic4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added trunk/ii02305/task_03/doc/pic5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added trunk/ii02305/task_03/doc/pic6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
101 changes: 101 additions & 0 deletions trunk/ii02305/task_03/doc/readme3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
<p align="center"> Министерство образования Республики Беларусь</p>
<p align="center">Учреждение образования</p>
<p align="center">“Брестский Государственный технический университет”</p>
<p align="center">Кафедра ИИТ</p>
<br><br><br><br><br><br><br>
<p align="center">Лабораторная работа №3</p>
<p align="center">По дисциплине “Общая теория интеллектуальных систем”</p>
<p align="center">Тема: “Разработка редактора графов”</p>
<br><br><br><br><br>
<p align="right">Выполнил:</p>
<p align="right">Студент 2 курса</p>
<p align="right">Группы ИИ-23</p>
<p align="right">Глухарев Д.Е.</p>
<p align="right">Проверил:</p>
<p align="right">Иванюк Д. С.</p>
<br><br><br><br><br>
<p align="center">Брест 2023</p>

---
# Задание: #
1. Разработать и реализовать программный продукт позволяющий
редактировать графовые конструкции различных видов и производить над
ними различные действия. Язык программирования - Python.

2. Редактор должен позволять (задания со **[\*]** являются необязательными):
a) одновременно работать с несколькими графами (MDI);
b) **[\*]** выделение одновременно нескольких элементов графа, копирование
выделенного фрагмента в clipboard и восстановление из него;
c) задавать имена графам;
d) сохранять и восстанавливать граф во внутреннем формате программы;
e) экспортировать и импортировать граф в текстовый формат (описание
см. ниже);
f) создавать, удалять, именовать, переименовывать, перемещать узлы;
g) создавать ориентированные и неориентированные дуги, удалять дуги;
h) добавлять, удалять и редактировать содержимое узла (содержимое в
виде текста и ссылки на файл);
i) задавать цвет дуги и узла, образ узла;
j) **[\*]** создавать и отображать петли;
k) **[\*]** создавать и отображать кратные дуги.

3. Программный продукт должен позволять выполнять следующие операции:
a) выводить информацию о графе:

+ количество вершин, дуг;
+ степени для всех вершин и для выбранной вершины;
+ матрицу инцидентности;
+ матрицу смежности;
+ является ли он деревом, полным, связанным, эйлеровым, **[\*]** планарным;

b) поиск всех путей (маршрутов) между двумя узлами и кратчайших;
c) вычисление расстояния между двумя узлами;
d) вычисление диаметра, радиуса, центра графа;
e) **[\*]** вычисление векторного и декартово произведения двух графов;
f) **[\*]** раскраска графа;
g) нахождения эйлеровых, [*] гамильтоновых циклов;
h) **[\*]** поиск подграфа в графе, со всеми или некоторыми неизвестными
узлами;
i) **[\*]** поиск узла по содержимому;
j) **[\*]** объединение, пересечение, сочетание и дополнение графов;
k) **[\*]** приведение произвольного графа к определенному типу с
минимальными изменениями:

+ бинарное и обычное дерево;
+ полный граф;
+ планарный граф;
+ связанный граф;

4. Формат текстового представления графа:
<ГРАФ> ::= <ИМЯ ГРАФА> : UNORIENT | ORIENT ; <ОПИСАНИЕ УЗЛОВ> ;
<ОПИСАНИЕ СВЯЗЕЙ> .
<ИМЯ ГРАФА> ::= <ИДЕНТИФИКАТОР>
<ОПИСАНИЕ УЗЛОВ> ::= <ИМЯ УЗЛА> [ , <ИМЯ УЗЛА> …]
<ИМЯ УЗЛА> ::= <ИДЕНТИФИКАТОР>
<ОПИСАНИЕ СВЯЗЕЙ> ::= <ИМЯ УЗЛА> -> <ИМЯ УЗЛА> [ , <ИМЯ УЗЛА> …] ;
[<ОПИСАНИЕ СВЯЗЕЙ> …]

5. Написать отчет по выполненной лабораторной работе в .md формате (readme.md). Разместить его в следующем каталоге: **trunk\ii0xxyy\task_03\doc** (где **xx** - номер группы, **yy** - номер студента, например **ii02302**).

6. Исходный код разработанной программы разместить в каталоге: **trunk\ii0xxyy\task_03\src**.

---

# Описание работы программы: #
## Окно программы
![image](pic1.png)

## Создаем вершины
![image](pic2.png)

## Соединяем вершины ребрами
![image](pic3.png)
![image](pic4.png)

## Передвигаем вершины
![image](pic5.png)

## Вывод матрицы смежности/инцендентности
![image](pic6.png)

## Вывод
Реализовал консольное приложение для работы с графами, которое включает в себя определенный функционал, описанный в задании данной лабораторной работы. Также изучил и научился применять графические библиотеки выбранного языка программирования.
21 changes: 21 additions & 0 deletions trunk/ii02305/task_03/src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# CMakeList.txt: проект CMake для task_03; включите исходный код и определения,
# укажите здесь логику для конкретного проекта.
#
cmake_minimum_required (VERSION 3.8)

# Включение горячей перезагрузки для компиляторов MSVC, если поддерживается.
if (POLICY CMP0141)
cmake_policy(SET CMP0141 NEW)
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<IF:$<AND:$<C_COMPILER_ID:MSVC>,$<CXX_COMPILER_ID:MSVC>>,$<$<CONFIG:Debug,RelWithDebInfo>:EditAndContinue>,$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>>")
endif()

project ("task_03")

# Добавьте источник в исполняемый файл этого проекта.
add_executable (task_03 "task_03.cpp" )

if (CMAKE_VERSION VERSION_GREATER 3.12)
set_property(TARGET task_03 PROPERTY CXX_STANDARD 20)
endif()

# TODO: Добавьте тесты и целевые объекты, если это необходимо.
Loading