Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
+09-Пояснювальна записка.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
974 Кб
Скачать
☆

2.7.1 Алгоритм аналізу перевірки правильності графу

Загальних процес побудову алгоритму з допомого розробленого модуля складається з трьох основних етапів:

  1. Схематичного зображення алгоритму у вигляді графу

  2. Аналіз графу на виконання обмежень

  3. Побудову псевдокоду алгоритму.

Аналіз графу виконується перед побудовою псевдокоду, для можливості його побудову, в разі неуспішного аналізу, буде видано повідомлення про помилку, яка виникла при аналізі і можливу причину її виникнення.

Обмеження, які не реалізовані на рівні побудови графу перевіряються на стадії аналізу графу, серед них: перевірка на наявність початкової вершини «Введення даних» та кінцевої вершини «Виведення даних», перевірка графу на наявність незавершених гілок.

Алгоритм перевірки на наявність незавершених гілок у графі, являє собою рекурсивний алгоритм обходу, в якому кожна вершина перевіряється на кількість вихідних ребер, якщо цих ребер більше нуля і вершини не вершиною виводу даних, то результат аналізу буде не успішним.

Нижче наведено код, який реалізує дану перевірку:

/// <summary>

/// Повертає признак наявності "висячих" вершин

/// </summary>

/// <param name="startNode">Початкова вершина графа</param>

/// <returns>true - якщо такі вершини є, інакше - false</returns>

private static bool HaveHangingNodes(GraphNode startNode)

{

bool result = false;

startNode.InnerEntrisCount++;

foreach (ILink link in startNode.Port.DestinationLinks)

{

GraphNode node = (GraphNode)link.ToNode;

if (node.IsLoop) continue;

result = HaveHangingNodes(node);

if (result) return true;

}

if (startNode.Port.DestinationLinksCount == 0)

result = !(startNode is OutputDataNode);

return result;

}

Таким чином алгоритм аналізу графу можна зобразити наступним чином:

Після успішного проходження кожного з етапів перевірки графу, аналіз буде вважатися успішним, що зробить можливим подальшу побудову псевдокоду алгоритму.

2.8 Вибір технології та мови програмування

Виходячи з поставлених вимог для розробки модуля реалізації алгоритмів на графах з візуалізацією етапів розробки доцільно для розробки використати Object-технологію – інтерфейс користувача розробити в середовищі програмування Visual Studio 2008, використовуючи мову програмування Visual C# 3.0.

Платформа Microsoft. NET надає:

  • Стійке середовище виконання CLR (Common Language Runtime), яке входить до складу даної платформи;

  • Засоби розробки додатків на будь-якій з багатьох мов програмування, що підтримуються платформою .NET;

  • Величезну бібліотеку класів NET Framework, що лежить в основі відкритої моделі програмування. Вони доступні в будь-якій мові програмування, що підтримується платформою .NET;

  • Підтримку мережевої інфраструктури, побудованої на верхньому рівні стандартів Internet, внаслідок чого забезпечується високий рівень взаємодії між додатками;

  • Підтримку нового промислового стандарту, а саме технології Web-служб. Технологія Web-служб надає новий механізм створення розподілених додатків. По суті, вона є поширенням технології створення додатків на базі компонентів і на сферу Internet;

  • Модель безпеки, що програмісти можуть легко використовувати у своїх програмах;

  • Потужні інструментальні засоби розробки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]