Модуль реалізації алгоритмів на графах з візуалізацією етапів розробки

Побудова блок-схем алгоритмів програм. Створення блок схем алгоритмів за допомогою FCEditor. Експорт блок-схеми в графічний файл. Огляд програмних та апаратних засобів. Мови програмування високого рівня. Цикли та умовний оператор IF з лічильником.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 15.12.2013
Размер файла 1,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

  • Так в процесі схематичного зображення алгоритму з допомогою блок-схем повинні виконуватись певні правила побудови, наприклад: у блок-схеми повинні бути блок початку і кінця алгоритму, неможливий вивід або використання змінних, які раніше не були введені та ін. Невиконання цих простих правил призведе до того, що алгоритм буде не правильним.
  • Побудова схематичного зображення з допомогою графа полягає не тільки в виконанні вище описаних правил, а й у відповідності певним обмеженням, які накладаються на алгоритм в зв'язку з використанням для цих цілей графа.
  • Оскільки для побудови алгоритму буде використовуватися орієнтований граф, то необхідно враховувати направленість ребер графа.
  • Основні обмеження на побудову графа алгоритму наведені нижче:
  • 1. Кожен граф алгоритму повинен містити вершину «Введення даних» та «Виведення даних»
  • Вершина «Введення даних» відповідає аналогічному блоку, який використовується в блок-схемах «Початок», відповідно вершина «Виведення даних», якою обов'язково повинен закінчуватися алгоритм, є аналогом блоку «Кінець» у блок-схемах.
  • 2. Кожна вершина повинна мати тільки одне вихідне ребро, виключенням в цьому випадку є тільки вершина умовного оператора, у якого одне вихідне ребро відповідає гілці, коли умова виконується, а інше ребро відповідає гілці ELSE умовного оператора.
  • 3. Кожна вершина повинна мати одне або два вхідні ребра, крім початкової вершини «Введення даних». Прикладом таких ситуацій можуть бути:
  • a. Вершини закінчення оператора (IF. ELSE), коли обидві гілки сходяться до одного оператора, наприклад, до «Виведення даних»,
  • b. Вершина початку циклу DO…WHILE
  • c. Вершина початку циклу WHILE…DO
  • 4. Граф не повинен містити не закінчених гілок, тобто у графа алгоритму повинен бути тільки один початок і один кінець, недотримання цього правила не дасть змоги побудувати псевдокод алгоритму. Прикладом незакінченої гілки може слугувати наступний малюнок, на якому вершина незакінченої гілка обведена кружечком:
  • Так, як деякі з обмежень мають критичний характер, для побудови псевдокоду, то вони реалізовані програмно. Одним з них, є обмеження на можливість побудови графа з вершинами, що з'єднані одна з одною. Дане обмеження було введено, виходячи з міркування нелогічності такого зав'язку, тобто, такий зв'язок може бути розтлумачений як нескінченний цикл, що не має ніякої доцільності у використанні його в схематичній побудові алгоритмів.
  • Наступним обмеженням реалізованим програмно є обмеження на кількість вхідних і вихідних ребер вершини. Оскільки для побудови використовується граф, то виходячи з його визначення, кожна вершина може мати n-1 ребро, де n - це кількість вершин у графі, тобто вершина може бути з'єднана з усіма вершинами графа окрім самої себе. Але для поставленої задачі ця властивість вершини графа була трохи модифікована, тому що в основній своїй більшості, алгоритми є лінійними, або розгалуженими.
  • Виходячи з того, що кожна вершина графа використовується для відображення елементарної операції і визначення лінійного алгоритму, згідно якого всі дії виконуються тільки один раз і в строгій послідовності, у вершини повинна містити тільки одне вхідне ребро і одне вихідне.
  • В разі використання вершин умовного оператора (IF. ELSE) в алгоритмах розгалуження на неї накладається обмеження згідно якого тільки вершина умовного оператора може мати два вихідних ребра: гілка виконання умови і гілка не виконання умов (гілка ELSE).
  • Обмеження на кількість вхідних ребер вершини може мати виняток тільки у тому разі, коли вершина є складовою вершиною циклу DO…WHILE, або вершиною закінчення оператора (IF. ELSE).
  • 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;
        • · Модель безпеки, що програмісти можуть легко використовувати у своїх програмах;
        • · Потужні інструментальні засоби розробки.
        • 3 Тестування системи

    Тестування програмного забезпечення - це процес аналізу або експлуатації програмного забезпечення з метою виявлення дефектів.

    Тестування передбачає «аналіз» або «експлуатацію» програмного продукту. Тестова діяльність, що пов'язана з аналізом результатів розробки програмного забезпечення, називається статичним тестуванням. Воно передбачає перевірку програмних кодів, контроль та перевірку програми без запуску на комп'ютері. Тестова діяльність, що передбачає експлуатацію програмного продукту, називається динамічним тестуванням. Динамічне та статичне тестування доповнюють одне одного.

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

    Програмний продукт є якісним, коли:

    · під час роботи користувача з програмним продуктом виникає невелика кількість відмов;

    · програмний продукт надійний, а це означає, що його використання рідко викликало аварійні відмови;

    · програмний продукт задовольняє вимогам більшості користувачів.

    Тестування проводилося на персональному комп'ютері з наступними апаратними характеристиками:

    – монітор 17» W;

    – процесор Intel Core 2 Duo T7250 (2.2 Ггц);

    – ОЗУ 2048 Mb;

    – жорсткий диск 320 Gb.

    При тестуванні даного програмного комплексу було використано максимально можлива кількість вбудованих функцій в модуль.

    Тестування проводилось для генерації псевдо коду із різних графів, один з графів наведено на рис.

    Граф простого алгоритму з розгалуженням

    В результаті генерації, був отриманий псевдокод, що відповідає зображеному на графі алгоритму:

    INPUT a, b, c, d

    IF (a > b) THEN

    a = a + 1

    ELSE

    b = b + 1

    IF (b > 10) THEN

    b = b + 10

    ELSE

    b = b / 2

    END IF

    OUTPUT b

    END IF

    OUTPUT a, b

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

    Висновки

    В результаті дослідження пробудови алгоритмів та використання їх при написанні програм різного рівня складності на будь-якій мові програмування, можна зробити висновок, що відображення його в звичному вигляді (блок-схеми), в подальшому може доповнитися більш наглядними засобами, в тому числі і за допомогою графів.

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

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

    При створенні програмного продукту завдання було розбито на дві частини: Створення модуля побудови графу алгоритму і модуля аналізу та побудови і форматування псевдокоду.

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

    Список джерел

    алгоритм програма мова оператор

    1. Роббинс Джон. Отладка приложений для Microsoft.NET и Microsoft Windows - М. Русская Редакция, 2004. - 736 с.

    2. Нортрап Тони, Вилдермьюс Шон, Райан Билл. Основы разработки приложений на платформе Microsoft.NET Framework - Питер, Русская Редакция, 2007. - 864 с.

    3. Кристиан Гросс. C# 2008 и платформа.NET 3.5 Framework: от новичка до профессионала, 2-е издание - Вильямс, 2009. - 897 с.

    4. Джозеф C. LINQ: язык интегрированных запросов в C# 2008 для профессионалов - Вильямс, 2008. - 560 с.

    5. Трей Нэш. C# 2008: ускоренный курс для профессионалов. Язык программирования C# 3.0 для.NET 3.5 - Вильямс, 2008. - 576 с.

    6. Джимми Нильссон. Применение DDD и шаблонов проектирования: проблемно-ориентированное проектирование приложений с примерами на C# и.NET - Вильямс, 2007. - 429 с.

    7. Дон Бокс, Крис Селлз. Основы платформы.NET, том 1. Обще языковая исполняющая среда. - Вильямс, 2003. - 288 с.

    8. Роберт Седжвик. Фундаметальные алгоритмы на С++. Часть 5. Алгоритмы на графах - ДиаСофтЮП, 2002. - 496 с.

    9. Емеличев В.А., Мельников О.И., Сарванов В.И., Тышкевич Р.И. Лекции по теории графов. Изд.2, испр. - 2009. 392 с.

    10. Харари Фрэнк. Теория графов - Едиториал УРСС, 2003. - 297 с.

    11. Кристофидес Н. Теория графов. Алгоритмический подход. Перевод на русский язык. - Наука, 1989. 241 с.

    12. Камерон П. Теория графов. Теория кодирования и блок-схемы. Перевод на русский язык. - Наука, 1980. 140 с.

    13. Акимов О.Е. Дискретная математика: логика, группы, графы, фракталы. - Едиториал УРСС, 2005. - 655 с.

    14. Харари Ф. Теория графов: Перевод с английского. - Едиториал УРСС, 2006. - 300 с.

    15. Томас Х. Кормен, Чарльз И. Лейзерсон, Рональд Л. Ривест, Клиффорд Штайн. Алгоритмы: построение и анализ. 2-е издание. - Вильямс, 2008. - 1296 с.

    16. Скакунов Александр. Алгоритмы и структуры данных. - Едиториал УРСС, 1996. 357 с.

    17. Уоррен Генри С. Алгоритмические трюки для программистов. - Диалектика-Вильямс, 2003. - 288 с.

    Размещено на Allbest.ru


    Подобные документы

    • Визначення поняття "алгоритми", їх властивості, метод складання. Способи подання алгоритмів: письмовий, усний, схематичний, графічний, кодований. Навчальна алгоритмічна мова. Особливості створення блок-схеми. Алгоритм поданий мовою програмування.

      презентация [2,9 M], добавлен 06.05.2019

    • Особливості використання MSVisio для зображення плакатів. Програмні коди та блок-схеми алгоритмів задач. Структура фізичного серверу та місце віртуального приватного сервера (VPN) в ньому. З’єднання VPN-шлюзу з Інтернетом за допомогою маршрутизатора.

      контрольная работа [3,8 M], добавлен 23.06.2010

    • Особливості понять "цифра" и "число". Знакова система оброки інформації комп’ютером. Файл - сукупність байтів, записана на пристрій зберігання інформації. Сутність і властивості алгоритму. Схема - графічне подання алгоритму за допомогою зв’язаних блоків.

      лекция [185,0 K], добавлен 03.10.2012

    • Алгоритми розв’язання задач у вигляді блок–схем. Використання мови програмування MS VisualBasic for Application для написання програм у ході вирішення задач на одномірний, двовимірний масив, порядок розв’язання задачі на використання символьних величин.

      контрольная работа [742,9 K], добавлен 27.04.2010

    • Використання ітерацій для обчислення приблизних значень величин. Розробка ітераційних алгоритмів з перевіркою правильності введення даних. Побудова блок-схеми і програмування мовою Turbo Pascal обчислення значення функції, розкладеної в степеневий ряд.

      лабораторная работа [197,2 K], добавлен 16.12.2010

    • Особливості зображення плакатів у MSVisio. Будування блок-схем алгоритмів згідно варіантів. Віртуальна інфраструктура сервера. Структура центра управління сіттю AltegroSky. Взаємозв’язок операційної системи, віртуальної машини та користувача комп’ютера.

      задача [3,8 M], добавлен 23.06.2010

    • Методика та порядок програмування алгоритмів циклічної структури із заданим числом повторень за допомогою мови програмування VAB. Алгоритм роботи з одновимірними масивами. Програмування алгоритмів із структурою вкладених циклів, обробка матриць.

      курсовая работа [27,7 K], добавлен 03.04.2009

    • Застосування циклічних алгоритмів для створення циклів за допомогою умовного або безумовного переходів. Цикли з параметром та умовою (приклади). Використання операторів мови програмування Паскаль для організації повторюваних послідовностей дій (циклів).

      контрольная работа [435,9 K], добавлен 02.06.2012

    • Розв'язання задач мовою програмування VBA з використанням алгоритмів лінійної, розгалуженої та ітераційної циклічної структури. Розробка блок-схеми алгоритму, таблиці ідентифікаторів та тексту програми. Створення власної панелі інструментів користувача.

      практическая работа [1012,6 K], добавлен 19.02.2010

    • Засвоєння засобів аналізу трудомісткості обчислювальних алгоритмів. Побудова графа алгоритму з отриманої блок-схеми. Мінімізація графа, його подання у вигляді стохастичної матриці. Знаходження кількості звернень до файлів за допомогою Microsoft Excel.

      лабораторная работа [681,5 K], добавлен 02.06.2011

    Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
    PPT, PPTX и PDF-файлы представлены только в архивах.
    Рекомендуем скачать работу.