- •Модуль реалізації алгоритмів на графах з візуалізацією етапів розробки
- •Анотація
- •1 Призначення та область застосування об’єкту проектування
- •1.1 Призначення та область застосування
- •1.2 Огляд способів та засобів розробки
- •1.2.1 Побудова блок-схем алгоритмів програм.
- •1.2.2 Правила побудови блок-схем
- •1.2.5 Створення нового проекту
- •1.2.6 Створення блок-схеми та генерація коду
- •1.2.3 Створення блок схем алгоритмів за допомогою fcEditor
- •1.2.4 Огляд fceDitor
- •1.2.7 Експорт блок схеми алгоритму
- •1.2.8 Імпорт блок схеми
- •1.3 Огляд програмних та апаратних засобів
- •1.3.1 Псевдо код
- •1.3.2 Мови програмування високого рівня
- •1.4 Постановка задачі на розробку
- •2 Проектування модуля реалізації алгоритмів на графах з візуалізацією етапів розробки
- •2.1 Поняття графа
- •2.1.1 Орієнтований граф
- •2.1.2 Змішаний граф
- •2.2 Цикли та умовний оператор if
- •2.2.1 Безумовні цикли
- •2.2.2 Цикл з передумовою
- •2.2.3 Цикл з післяумовою
- •2.2.4 Цикл з виходом із середини
- •2.2.5 Цикл з лічильником
- •2.2.6 Вкладені цикли
- •2.2.7 Спільний цикл
- •2.2.8 Умовний оператор if
- •2.3 Реалізація модуля побудови алгоритмів на графах з візуалізацією процесу розробки
- •2.4. Реєстр змінних
- •2.5 Алгоритм побудови псевдокоду
- •2.5.1 Генерація псевдокоду лінійного алгоритму
- •2.5.2 Генерація псевдокоду нелінійного алгоритму
- •2.6 Форматування псевдокоду
- •2.7 Аналіз правильності побудови графу
- •2.7.1 Алгоритм аналізу перевірки правильності графу
- •2.8 Вибір технології та мови програмування
- •3 Тестування системи
- •Висновки
- •Список використаних джерел
2.7.1 Алгоритм аналізу перевірки правильності графу
Загальних процес побудову алгоритму з допомого розробленого модуля складається з трьох основних етапів:
Схематичного зображення алгоритму у вигляді графу
Аналіз графу на виконання обмежень
Побудову псевдокоду алгоритму.
Аналіз графу виконується перед побудовою псевдокоду, для можливості його побудову, в разі неуспішного аналізу, буде видано повідомлення про помилку, яка виникла при аналізі і можливу причину її виникнення.
Обмеження, які не реалізовані на рівні побудови графу перевіряються на стадії аналізу графу, серед них: перевірка на наявність початкової вершини «Введення даних» та кінцевої вершини «Виведення даних», перевірка графу на наявність незавершених гілок.
Алгоритм перевірки на наявність незавершених гілок у графі, являє собою рекурсивний алгоритм обходу, в якому кожна вершина перевіряється на кількість вихідних ребер, якщо цих ребер більше нуля і вершини не вершиною виводу даних, то результат аналізу буде не успішним.
Нижче наведено код, який реалізує дану перевірку:
/// <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;
Модель безпеки, що програмісти можуть легко використовувати у своїх програмах;
Потужні інструментальні засоби розробки.
