Файл: Алгоритмизация как обязательный этап разработки программы (Разработка программ).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 02.07.2023

Просмотров: 70

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Введение

Все мы ежедневно встречаемся со множеством задач от самых простых и хорошо известных до очень сложных. Для многих задач существуют определенные правила (инструкции, предписания), объясняющие исполнителю. как решать данную задачу. Эти правила человек может изучить заранее или сформулировать сам в процессе решения задачи. Чем точнее и понятнее будут описаны правила решения задач, тем быстрее человек овладеет ими и будет эффективнее их применять. Источниками возникновения алгоритмов служат: наблюдение и эксперимент, научная теория, прошлый опыт и др.

Решение многих задач человек может передавать техническим устройствам - ПК. автоматам, роботам н т.д. Применение технических устройств предъявляет очень строгие требования к точности описания правил и последовательности выполнения действий. Поэтому разрабатываются специальные языки для четкого н строгого описания различных правил.

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

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

В работе будут рассмотрены основные этапы программирования. Особо будет уделено внимание процессам построения алгоритмов.

Этапы создания программ

Разработка программ включает в себя следующие этапы:

1. Анализ и уточнение требований, предъявляемых к программе. Иногда этот этап называют постановкой задачи.

2. Проектирование алгоритма и выбор структур данных (или алгоритмизация).

3. Программирование и отладка.

4. Тестирование программы.

5. Документирование, подготовка инструкции для пользователя программы.

Первые два этапа являются определяющими этапами разработки программного обеспечения. Этап анализа и уточнения требований, предъявляемых к программе – необходимый и весьма ответственный этап , который осуществляется совместно пользователем (заказчиком) программы и ее разработчиком. На этом этапе на основе требований заказчика уточняются три основных момента:

• исходные данные программы: формат данных, источник и порядок ввода, объем исходных данных и ограничения на их значения;

• выходные данные программы: содержание, формат и порядок вывода, возможный объем исходных данных, заголовки и предполагаемые ограничения на их значения;


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

На этапе анализа и уточнения требований создается более полное, уточненное описание задачи, называемое спецификацией задачи. Спецификация задачи – это очень важный документ, который является техническим заданием на разработку программы и частью соглашения (договора) между разработчиком программного обеспечения и заказчиком.

В спецификации задачи выделяют две ее части:

• функциональную спецификацию;

• эксплуатационную спецификацию.

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

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

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

Основным подходом к проектированию структуры программы является нисходящее проектирование или пошаговое уточнение. Этот подход заключается в том, что программа первоначально рассматривается как «черный ящик», который выполняет некоторую функцию F, преобразующую единственные входные данные в единственные выходные данные. Это общая функция F может быть разделена на ряд более простых подфункций F1, F2,…, Fk. Каждая из этих функций сама по себе представляет такой же «черный ящик».

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

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


Результатом данного этапа разработки является формализованное описание алгоритма или проект программы.

Третьим этапом разработки программы является программирование и отладка. На этом этапе алгоритм записывается на языке программирования высокого уровня, и производится отладка программы с помощью соответствующей системы программирования (транслятора данного языка). Во время отладки исправляются обнаруженные в тексте программы ошибки. Результатом отладки является текст программы, не содержащей ошибок и выполненной хотя бы один раз на ПЭВМ. Таким образом, создается работоспособная программа.

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

При обнаружении неправильных результатов на этапе тестирования происходит возврат на предыдущие этапы разработки программы. Результатом тестирования является окончательная версия программы и документация о результатах выполнения тестов.

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

  • описание применения, которое содержит сведения о назначении про-граммы, требования к техническим и программным средствам ЭВМ, состав и функции программы, применяемые математические алгоритмы;
  • руководство пользователя, в котором описаны входные и выходные данные, способы запуска программы, режимы работы, дан перечень сообщений и описана реакция пользователя на каждое сообщение.

Понятие алгоритма и его свойства.

Для составления программы, предназначенной для решения на ЭВМ какой-либо задачи, требуется составление алгоритма ее решения.

Алгоритм — это точное предписание, которое определяет процесс, ведущий от исходных данных к требуемому конечному результату. Алгоритмами, например, являются правила сложения, умножения, решения алгебраических уравнений, умножения матриц и т.п. Слово алгоритм происходит от algoritmi, являющегося латинской транслитерацией арабского имени хорезмийского математика IX векааль-Хорезми. Благодаря латинскому переводу трактата аль-Хорезми европейцы в XII веке познакомились с позиционной системой счисления, и в средневековой Европе алгоритмом называлась десятичная позиционная система счисления и правила счета в ней.


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

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

    • результативностью;
    • определенностью;
    • массовостью.

Результативность означает возможность получения результата после выполнения конечного количества операций.

Определенность состоит в совпадении получаемых результатов независимо от пользователя и применяемых технических средств.

Массовость заключается в возможности применения алгоритма к целому классу однотипных задач, различающихся конкретными значениями исходных данных.

Для задания алгоритма необходимо описать следующие его элементы:

  • набор объектов, составляющих совокупность возможных исходных данных, промежуточных и конечных результатов;
  • правило начала;
  • правило непосредственной переработки информации (описание последовательности действий);
  • правило окончания;
  • правило извлечения результатов.

Алгоритм всегда рассчитан на конкретного исполнителя. В нашем случае таким исполнителем является ЭВМ. Для обеспечения возможности реализации на ЭВМ алгоритм должен быть описан на языке, понятном компьютеру, то есть на языке программирования.

Таким образом, можно дать следующее определение программы.

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

Методика разработки алгоритмов

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


При разработке алгоритма используют следующие основные принципы.

Принцип поэтапной детализации алгоритма (другое название — "проектирование сверху-вниз"). Этот принцип предполагает первоначальную разработку алгоритма в виде укрупненных блоков (разбиение задачи на подзадачи) и их постепенную детализацию.

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

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

Способы описания алгоритмов

К основным способам описания алгоритмов можно отнести следующие:

  • словесно-формульный;
  • структурный или блок-схемный;
  • с помощью граф-схем;
  • с помощью сетей Петри.

Перед составлением программ чаще всего используются словесно-формульный и блок-схемный способы. Иногда перед составлением программ на низкоуровневых языках программирования типа языка Ассемблера алгоритм программы записывают, пользуясь конструкциями некоторого высокоуровнего языка программирования. Удобно использовать программное описание алгоритмов функционирования сложных программных систем. Так, для описания принципов функционирования ОС использовался Алголоподобный высокоуровневый язык программирования.

При словесно-формульном способе алгоритм записывается в виде текста с формулами по пунктам, определяющим последовательность действий.

Пусть, например, необходимо найти значение следующего выражения:

у = 2а – (х+6).

Словесно-формульным способом алгоритм решения этой задачи может быть записан в следующем виде:

1. Ввести значения а и х.

2. Сложить х и 6.

3. Умножить a на 2.

4. Вычесть из 2а сумму (х+6).

5. Вывести у как результат вычисления выражения.

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