PIBD-14_Boyko_M_S_Cursach_DFS/Cursach/InfoForm.cs

61 lines
4.0 KiB
C#
Raw Normal View History

2024-05-16 00:37:58 +04:00
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Cursach
{
public partial class InfoForm : Form
{
public InfoForm()
{
InitializeComponent();
ShowDocumentation();
}
private void ShowDocumentation()
{
# region BFSInfo
documentBFSInfo.Clear();
documentBFSInfo.SelectionFont = new Font("Arial", 12);
documentBFSInfo.SelectionFont = new Font(documentBFSInfo.SelectionFont, FontStyle.Bold);
documentBFSInfo.AppendText("Описание\n");
documentBFSInfo.SelectionFont = new Font("Arial", 10);
documentBFSInfo.SelectionFont = new Font(documentBFSInfo.SelectionFont, FontStyle.Regular);
documentBFSInfo.AppendText(
"Поиск в ширину (англ. breadth-first search, BFS) — один из методов обхода графа. " +
"Пусть задан граф \ud835\udc3a=(\ud835\udc49,\ud835\udc38) и выделена исходная вершина" +
" \ud835\udc60. Алгоритм поиска в ширину систематически обходит все ребра \ud835\udc3a" +
" для «открытия» всех вершин, достижимых из \ud835\udc60, вычисляя при этом расстояние" +
" (минимальное количество рёбер) от \ud835\udc60 до каждой достижимой из \ud835\udc60" +
" вершины. Алгоритм работает как для ориентированных, так и для неориентированных графов.\n\n");
documentBFSInfo.SelectionFont = new Font("Arial", 12);
documentBFSInfo.SelectionFont = new Font(documentBFSInfo.SelectionFont, FontStyle.Bold);
documentBFSInfo.AppendText("Работа алгоритма\n");
documentBFSInfo.SelectionFont = new Font("Arial", 10);
documentBFSInfo.SelectionFont = new Font(documentBFSInfo.SelectionFont, FontStyle.Regular);
documentBFSInfo.AppendText(
"Поиск в ширину работает путём последовательного просмотра отдельных уровней графа," +
" начиная с узла-источника \ud835\udc62.\n\nРассмотрим все рёбра (\ud835\udc62,\ud835\udc63)," +
" выходящие из узла \ud835\udc62. Если очередной узел \ud835\udc63 является целевым узлом, то поиск" +
" завершается; в противном случае узел \ud835\udc63 добавляется в очередь. После того, как будут" +
" проверены все рёбра, выходящие из узла \ud835\udc62, из очереди извлекается следующий узел" +
" \ud835\udc62, и процесс повторяется.\n");
#endregion
# region SaveLoadInfo
documentBFSInfo.Clear();
documentBFSInfo.SelectionFont = new Font("Arial", 10);
documentBFSInfo.AppendText("Сохрание осуществляется в через сохраниение класса StateList в бинарный файл с использованием технологии серверной сериализации brotobuf (библиотека для C# protobuf-net).\n\n");
documentBFSInfo.AppendText("Бинарный файл имеет разрешение .state, что позволяет не путать файлы с другими расширениями.\n\n");
#endregion
}
}
}