Назад Оглавление Вперед

 

1.Принципы разработки программ.

1.1. Понятие жизненного цикла программных изделий

     В основе деятельности по созданию и использованию программного обеспечения лежит понятие жизненного цикла, который является моделью создания и использования программного обеспечения, отражающей его различные состояния, начиная  с момента возникновения необходимости в данном программном изделии и заканчивая моментом его полного выхода из употребления у пользователей. Для каждого конкретного программного изделия количество, состав и последовательность этапов жизненного цикла определяется на ранних стадиях его создания. Непосредственный выбор определяется различными ограничениями и особенностями предметной области. В рамках настоящих лабораторных работ выделяются:

-        этап постановки задачи, на котором необходимо сформировать представление о том, в создании какого вычислительного процесса, с использованием каких данных состоит цель работы;

-        этап проектирования, в рамках которого необходимо принять решение о составе данных и их типах и представить вычислительный процесс в терминах граф-схемы алгоритма;

-        этап кодирования, на котором необходимо отобразить данные в соответствующих разделах программы и представить алгоритм в виде операторов языка программирования;

-        этап тестирования и отладки, в рамках которого предполагается использование средств отладки программной среды для локализации ошибок в коде. 

1.2. Понятие алгоритма

     Под алгоритмом, как правило, понимается точное предписание, которое задает вычислительный процесс, начинающийся из некоторой совокупности исходных данных и направленный на получение полностью определяемого исходными данными результата. Обосновывать принципы алгоритмизации целесообразно в рамках анализа свойств алгоритмов. Выделяют следующие свойства алгоритмов.

1.   Дискретность √ свойство, отражающее выполнение вычислительного процесса, задаваемого алгоритмом по шагам.

2.   Детерминированность √ свойство, означающее, что на каждом шаге любой полученный результат определяется результатами, полученными на предшествующих шагах.

3.    Элементарность √ свойство, согласно которому действие, которое выполняется на каждом шаге должно быть простым.

4.    Направленность √ свойство, обуславливающее необходимость указания, что является результатом того шага, на котором нельзя выполнить определенную в нем операцию.

5.    Массовость √ свойство, согласно которому алгоритм может быть применен к любой совокупности из допустимого множества исходных данных.

     Одной и той же задаче может соответствовать множество алгоритмов, поэтому, для обоснования выбора одного из них для решения конкретной задачи, применяют совокупность показателей, основными из которых являются следующие.

1.    Временная сложность √ показатель, отражающий время выполнения алгоритма или количество шагов его выполнения.

2.    Емкостная сложность √ показатель, по которому производят оценку количества данных, необходимых для выполнения алгоритма.

3.    Сложность описания √ показатель, отражающий длину описания алгоритма, количество инструкций операторов.

     Для представления алгоритма используют различные средства, в том числе граф-схемы алгоритмов, каждая из которых представляет собой граф. Понятие элементарного графа дополнено введением надстройки, которая задает вычисления, каждому из которых соответствует путь в этом графе и последовательность меток узлов, лежащих на этом пути. Узлы графа, с помощью введения типизации, интерпретируются как действия, а дуги задают порядок передачи управления. Для каждого алгоритма существует одна начальная дуга и одна или множество конечных. В табл.1 представлены типы узлов граф-схемы алгоритма в соответствии с ГОСТ 19.701-90 ╚Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения╩.

Таблица 1

символ

название

интерпретация

данные данные, носитель данных не определён
процесс функция обработки данных любого вида (выполнение определённой операции или группы операций, приводящие к изменению значения, формы или размещения  информации или к определению, по которому из нескольких направлений потока следует двигаться)
предопределённый процесс предопределённый процесс, состоящий из одной или нескольких операций или шагов, которые определены в другом месте(в подпрограмме, модуле)
подготовка модификация команды или группы команд с целью воздействия на некоторую последующую функцию
решение решение или функция переключательного типа, имеющая один вход и ряд альтернативных выходов, один и только один из которых может быть активизирован после вычисления условий, определённых внутри этого символа; соответствующие результаты вычислений могут быть записаны по соседству с линиями, отображающими эти пути 
граница цикла начало и конец цикла; обе части имеют один и тот же идентификатор; условия инициализации, приращения, завершения, и т.д. помещаются внутри символа в начале или в конце в зависимости от расположения операции, проверяющей условия 
соединитель выход в часть схемы и вход из другой части схемы; используется для обрыва линии и продолжении её в другом месте; соответствующие символы-соединители должны содержать одно и то же уникальное обозначение
терминатор вход из внешний среды и выход во внешнюю среду(начало и конец программы)
         _______________ линия поток данных или управления; для направлений справа -налево и снизу-вверх добавляются стрелки
        - - - - - - - - - - - - - - пунктирная линия используется для обведения аннотируемого участка
              - - - - - - - - - [ комментарий пояснительные записи и примечания
        ______  . . .  _____ пропуск пропуск символа или группы символов, в которых не определены ни тип ни число символов; используется только в символах линии или между ними; служит для отображения общих решений с неизвестным числом повторений.  

     Приведем основные свойства граф-схем.

1.        Графическое представление.

2.        Поддержка описания управляющей части алгоритма.

3.        Возможность реализации синтаксического контроля.

4.        Возможность проверки управляющей части алгоритма.

5.        Отсутствие возможности верификации информационной части.

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

1.3. Среда программирования

     Borland Pascal представляет собой интегрированную среду программирования. Термин ╚интегрированная╩ используется для указания того, что данная система организована как совокупность компонент, каждая из которых предназначена для решения отдельной задачи в рамках жизненного цикла программы. Такими компонентами являются: текстовый редактор, компилятор, загрузчик, исполняющая система и отладчик. Компоненте ╚отладчик╩ посвящен отдельный раздел, а в данном будут рассмотрены остальные компоненты, с помощью которых решаются две основные задачи: создание и редактирование кода и его компиляция и выполнение.

     На рис.2 изображено главное окно системы. Управление поведением системы осуществляется посредством меню, активизация которого осуществляется мышью или функциональной клавишей <F10>. Команды главного меню являются составными, то есть активизация любой из них приводит к появлению подменю, которое содержит конкретизацию назначения команды главного меню.

рис 2. Главное окно среды Turbo Pascal.

Создание и редактирование текста программы

     Для создания новой программы необходимо через пункт главного меню ╚File╩ получить и активизировать пункт ╚New╩ соответствующего ему подменю. При этом происходит активизация редактора, признаком которой является цветовое выделение рамки окна и наличие в нем курсора. Набранный текст программы содержится во временном файле, создаваемом системно, а для его сохранения на диске необходимо воспользоваться командой ╚Save╩ (<F2>). В появившимся в результате активизации этой команды окне необходимо указать имя и местоположение созданного файла. Содержимое ранее созданного файла с помощью команды ╚Open╩ подменю ╚File╩ можно открыть в окне текстового редактора для внесения изменений. При редактировании удобно пользоваться командами подменю ╚Edit╩ или ╚горячими клавишами╩, обеспечивающими удобство использования стандартных операций редактирования.

Компиляция и выполнение программы

     Вся работа по созданию или редактированию файла в окне текстового редактора производится с временной копией файла. Для компиляции кода, который содержится в этой копии, используется команда ╚Compile╩ подменю ╚Compile╩ (<Alt>+<F9>). При этом в случае наличия в коде ошибок, произойдет активизация текстового редактора, и курсор будет установлен в позицию, в которой транслятор зафиксировал ошибку, а в верхней части окна будет содержаться сообщение об ошибке. В противном случае, в зависимости от настроек, система создаст временный исполняемый модуль и выдаст специальное окно, сигнализирующее об отсутствии синтаксических ошибок в коде. Для создания не временного исполняемого файла используется команда ╚Make╩ подменю ╚Compile╩. Запуск исполняемого файла осуществляется командой ╚Run╩ подменю ╚Run╩ или комбинацией клавиш <Сtrl>+<F9>. При этом, сначала транслятор производит контроль ошибок, в случае отсутствия которых компилятор создаст исполняемый модуль, запуск которого будет осуществлен исполняющей системой.

Назад Оглавление Вперед