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

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

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

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

Добавлен: 29.03.2023

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

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

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

6. АЛГОРИТМИЗАЦИЯ КАК КЛЮЧЕВОЙ ЭТАП ПРОГРАММИРОВАНИЯ

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

  1. Анализ и уточнение требований, предъявляемых к программе. Иногда этот этап называют постанoвкой задачи.
  2. Проектирование алгоритма и выбор структур данных (или алгоритмизация).
  3. Программирование и отладка.
  4. Тестирование программы.
  5. Документирование, подготовка инструкции для пользователя программы.

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

Известны следующие формы представления алгоритмов:

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

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

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

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


Основные звенья блок-схем программ показаны в табл. 3.1.

Табл. 3.1.

Обозначение

Назначение

Примеры

Символ Процесс

Блок вычислений и обработки данных

I=J+2

Символ Решение

Блок проверки условия

Символ Модификация

Блок организации и начала цикла

Обозначение

Назначение

Примеры

Символ Пуск

Блок начала алгоритма

Символ Останов

Блок конца алгоритма

Символ Ввод-вывод

Блок ввода-вывода информации

Символ Вызов

Блок вычислений по стандартной или отдельно разработанной подпрограмме

Символ Детализация

Блок, определяю-щий часть алгорит-ма, требующую

дальнейшей детализации

Обозначение

Назначение

Примеры

Символ Соединитель

Разрыв линии потока управления,

Перенос части блок-схемы на другую страницу


Недостатком графического представления алгоритмов является отсутствие строгих правил задания и определения структур данных, над которыми производятся действия. Такая неопределенность в описании процесса обработки данных может быть источником ошибок при написании программы по блок-схеме. Третьей формой представления алгоритма является псевдокод. Использование псевдокода позволяет в большей степени формализовать процесс описания алгоритма, чем словесная форма и блок-схемы. Описание алгоритма на псевдокоде наиболее приближено к языкам программирования высокого уровня, хотя не является программой, исполняемой на ЭВМ. Псевдокод – это частично формализованный язык описания алгоритмов или проектов программ. В качестве ключевых слов в нем используются слова естественного языка. Псевдокод включает в себя средства описания структур данных и описания действий. Рассмотрим правила описания данных. Обрабатываемые алгоритмами данные характеризуются структурой, типом и назначением. Назначение данных определяет смысловое содержание данных, свойства реальных объектов, являющихся предметом данной задачи. По свoему назначению данные делятся на три категории: входные данные, выходные данные и промежуточные данные задачи (алгоритма). Тип данных определяет набор допустимых значений и форму представления данных задачи в ЭВМ. По своему типу данные делятся на арифметические (числовые), символьные и логические. Эти типы данных называются базовыми или стандартными. Структура данных определяет способ объединения данных базовых типов. В алгоритмах используются следующие структуры данных: скаляры, массивы и записи. Скаляр – это именованная структура данных, содержащая неделимую единицу данных. В алгоритмах и программах являются простые переменные и константы. Константы – это данные, которые при выполнении алгоритма (программы) всегда определены и неизменны. Переменные - это имена данных, которые в процессе выполнения программы могут изменять свое значение. В описании алгоритма на псевдокоде скалярные данные объявляются с помощью ключевого слова СКАЛЯР. Массив - это упорядоченный набор однотипных переменных (элементов массива), объединенных общим именем и отличающихся номерами (индексами). С другой стороны, массив – это область памяти, в которой могут размещаться совокупности данных одного и того же типа. На псевдокоде массивы объявляются с помощью ключевого слова МАССИВ. Для обращения к элементам массива используется имя массива с индексом, определяющим место расположение элемента в массиве. Массивы в программировании аналогичны таким понятиям в математике, как векторы и матрицы. Запись – это именованная совокупность элементов различных типов. На псевдокоде записи объявляются с помощью ключевого слова ЗАПИСЬ. Доступ к элементам записи осуществляется по составному имени, включающему имя записи и имя элемента. Общий вид описания алгоритма на псевдокоде может быть представлен следующим образом:


Алгоритм<название>

Входные данные:

< объявления >

Выходные данные:

< объявления >

Промежуточные данные:

< объявления >

Начало

<последовательность действий>

Конец

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

- операция присваивания значения переменной:

<переменная > := <выражение>,

где <выражение> - либо другая переменная, либо константа, либо формула, значение которой должно быть вычислено и присвоено переменной, указанной слева от знака := (присвоить). Например,

A:=5;

B:= C/sin(alfa);

D:=D+1.

- операция ввода/вывода:

ввод(<список ввода>)

где <список ввода> - список переменных, значения которых должны вводиться;

вывод(<список выражений>)

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

ввод(A,B,C);

вывод(‘A= ‘,A).

Базовые структуры алгоритмов образуются из базовых операций и других базовых структур по строго определенным правилам структурирования алгоритмов.

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

ЗАКЛЮЧЕНИЕ

На основании вышеизложенного сделаем краткие выводы. Можно ожидать, что в перспективе на основе развития науки основные этапы алгоритмизации прикладных задач могут быть автоматизированы на основе формализации и компьютерной реализации. Степенью автоматизации, определяемая долей участия человека, занимающегося алгоритмизацией, может быть различной. Процесс алгоритмизации прикладных задач стал бы существенно проще, если бы специалист, занимающийся алгоритмизацией, мог без затруднений воспользоваться множеством математических и информационных моделей, уже разработанных в его предметной области. В принципе, такая возможность не исключена, но в наш век информатизации количество публикаций по любому вопросу настолько увеличилось, что часто гораздо легче самому построить модель, чем найти ее в существующей публикации. Выход из такого положения может быть найден только в рамках использования современных информационных технологий. Перспективным решением может стать создание методики разработки прикладных задач той или иной предметной области на базе интернет-технологий, реализующих принципы коллективного теледоступа, и создание специфической, по возможности, универсальной методики документирования разрабатываемых моделей, называемой в дальнейшем доопределяемой. Любой человек постоянно встречается с мнoжеством задач: от самых простых и хорошо известных до очень сложных. Для множества из них существуют определенные правила (инструкции, предписания), объясняющие исполнителю, как решать данную задачу. Эти правила человек может изучить заранее или сформулировать сам в процессе решения. Чем более точно и однозначно будут описаны правила решения задач, тем быстрее человек овладеет ими и будет эффективнее их применять. Такие правила принято называть алгоритмами. Процессор электронно-вычислительной машины, это чудо техники, умеет, тем не менее, выполнять лишь простейшие команды. Каким же образом компьютер решает сложнейшие задачи обработки информации? Для решения этих задач программист должен составить подробное описание последовательности действий, которые необходимо выполнить центральному процессору компьютера. Составление такого пошагового описания процесса решения задачи называется алгоритмизацией, это сложный процесс, носящий в значительной степени творческий характер. Формализация (постановка) задачи и ее алгоритмизация обычно составляют 20-30% общего времени на разработку программы. Слoжность и ответственность реализации данного этапа объясняется тем, что для решения одной и той же задачи, как правило, существует множество различных алгоритмов, что позволяет сделать вывод «алгоритмизация является обязательным этапом разработки программы».