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

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

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

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

Добавлен: 01.04.2023

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

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

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

6. Алгоритмизация как обязательный этап разработки программы

Разработка программ состоит из таких этапов:

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

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

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

Первые два этапа являются ключевыми шагами в разработке программного обеспечения.

Общеприняты следующие формы представления алгоритмов[[24]]:

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

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

Словесная форма представления алгоритмов менее формализована, поскольку использует естественный язык, поэтому является наиболее понятной[[25]]. Однако такая запись обладает существенными недостатками, такими как многословность и неоднозначность толкования, поэтому словесная запись не получила широкого распространения[[26]].

Псевдокод – это частично формализованный язык описания алгоритмов программ. В нём используются слова естественного языка, синтаксические конструкции характерные для языков программирования, математические знаки и операторы[[27]]. Использование псевдокода позволяет в большей степени формализовать процесс создания алгоритма, чем блок-схема или словесная форма. Описание алгоритма на псевдокоде наиболее приближено к языкам программирования высокого уровня, хотя и не является программой, исполняемой на ЭВМ.


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

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

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

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

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

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

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

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

Начало

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

Конец

Блок-схема (графическое изображение) – является очень удобным средством изображения алгоритма, такое представление однозначно отображает ход вычислительного процесса. При составлении блок-схемы необходимо соблюдать обозначения и придерживаться определенных правил. ГОСТ предусматривает стандартные формы символов (блоков) для обозначения типичных действий[[28]].

Основные символы блок-схемы программ показаны в таблице 1.

Таблица 1.

Обозначение

Символ

Назначение

Примеры

Процесс

Вычислительное действие или последовательность действий

Решение

Проверка условия

Модификация

Начало цикла

Пуск-останов

Начало или конец алгоритма, вход или выход из подпрограммы

Ввод-вывод

Ввод-вывод в общем виде

Предопределенный процесс

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

Комментарий

Пояснения к операциям

Соединитель

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


Однако, как и другие формы представления алгоритмов, графическое представление также имеет недостаток, который выражается в отсутствии строгих правил задания структур данных, над которыми производятся действия. Такая неоднозначность в описании процесса вычислений, потенциально может стать источником ошибок при написании программы по блок-схеме[[29]].

Правила описания данных

Данные, обрабатываемые алгоритмами, характеризуются назначением, типом и структурой.

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

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

Переменная – это именованные данные, которые в процессе выполнения алгоритма (программы) могут изменять свое значение[[30]].

Константа – это именованные данные, которые при выполнении алгоритма (программы) всегда определены и не изменяют своего значения.

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

Скаляр – это именованная структура данных, содержащая неделимую единицу данных. В описании алгоритма на псевдокоде скалярные данные объявляются с помощью ключевого слова СКАЛЯР и представлены в виде простых переменных и констант.

Массив – это упорядоченный набор однотипных значений (называемых элементами массива), объединенных общим именем и отличающихся номерами (индексами)[[31]]. Другими словами, массив – это область памяти, в которой размещаются данные одного типа. На псевдокоде массивы объявляются с помощью ключевого слова МАССИВ. Для обращения к элементам массива используется имя массива с индексом (прим. arrayName[index]), определяющим место расположение элемента в массиве. В программировании, понятие массива аналогично понятиям вектора и матрицы в математике.

Запись – это именованная совокупность элементов различных типов. На псевдокоде записи объявляются с помощью ключевого слова ЗАПИСЬ. Доступ к элементам записи осуществляется по составному имени, включающему имя записи и имя элемента (прим. objectName.element)[[32]].

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


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

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

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

Например,

A:=5;

B:= C/sin(alfa);

D:=D+1;

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

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

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

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

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

Например,

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

вывод(A+C);

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

Выбор структур данных и обоснование метода решения

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

Заключение

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

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


Постановка задачи и её алгоритмизация обычно требует 20-30% общего времени на разработку программы. Особенностью реализации этого этапа является сложность и ответственность, которая объясняется тем, что для решения одной и той же задачи, может существовать несколько различных алгоритмов, из чего можно сделать вывод – «алгоритмизация является обязательным этапом разработки программы».

Список использованных источников

  1. Алгоритмы и структуры данных (CDIO): учебник / Р.Ю. Царев, А.В. Прокопенко. – Красноярск: СФУ, 2016. – 9 с., 11-12 с., 95 с.

Математическая логика и теория алгоритмов: Учеб. пособие / А.Н. Макоха, А.В. Шапошников, В.В. Бережной. – Ставрополь, 2017. – 300-302 с.

Основы алгоритмизации и программирования: Учеб. пособие / Т.В. Лубашева, Б.А. Железко. – Минск: РИПО, 2016. – 17 с., 31 с.

  1. Основы алгоритмизации: Учеб. пособие / В.И. Логинов, Л.Н. Шемагина. – Нижний Новгород, 2010. – 9-14 с.
  2. Структуры и алгоритмы обработки данных: Учеб. пособие / С.Н. Дроздов. – Таганрог, 2016. – 9 с., 21 с.
  3. Теория алгоритмов: Учеб. пособие / А.А. Брыкалова. – Ставрополь, 2016. – 5 с.
  4. Головчинер М.Н. Введение в архитектуру ЭВМ: Курс лекций. – Томск: Томский государственный университет, 2013. – 27-28 c. URL: http://tic.tsu.ru/apache22/data/www/uploads/Архитектура ЭВМ.pdf (дата обращения: 11.01.20)

Горностаева Т.Н. Алгоритмы: Учеб. пособие. – М.: Мир науки, 2019. – Сетевое издание. Режим доступа: https://izd-mn.com/PDF/33MNNPU19.pdf – Загл. с экрана. (дата обращения: 13.01.20)

Лекции по информатике. – М.: Финансовый университет при Правительстве РФ, 2014. URL: https://studfile.net/preview/1494786/page:2/ (дата обращения: 10.01.20)

Лекции по информатике. – М.: Финансовый университет при Правительстве РФ, 2014. URL: https://studfile.net/preview/1494786/page:3/ (дата обращения: 10.01.20)

  1. Межгосударственный стандарт. Обеспечение систем обработки информации программное. Термины и определения. – М., 2010. – 160-161 с. URL: http://www.gostrf.com/normadata/1/4294833/4294833633.pdf (дата обращения: 15.01.20)
  2. Межгосударственный стандарт. Схемы алгоритмов, программ, данных и систем. Обозначения условные и правила выполнения. Издание официальное – М.: Стандартинформ, 2010. – 139-145 с. URL: http://www.gostrf.com/normadata/1/4294848/4294848992.pdf (дата обращения: 15.01.20)

Национальный стандарт РФ. Роботы и робототехнические устройства. Методы программирования и взаимодействия с оператором. – М.: Стандартинформ, 2016. URL: https://files.stroyinf.ru/Data/639/63916.pdf (дата обращения: 8.01.20). – 4 с.

  1. Макоха А.Н., Шапошников А.В., Бережной В.В. Математическая логика и теория алгоритмов. - Ставрополь, 2017. - C. 300

  2. Брыкалова А.А. Теория алгоритмов: учебное пособие. - Ставрополь, 2016. - С. 5

  3. Царев Р.Ю., Прокопенко А. В. Алгоритмы и структуры данных. - Красноярск: СФУ 2016. - С. 9

  4. Царев Р.Ю., Прокопенко А. В. Алгоритмы и структуры данных. Красноярск: СФУ, 2016. - С. 11-12

  5. Макоха А.Н., Шапошников А.В., Бережной В.В. Математическая логика и теория алгоритмов. - Ставрополь, 2017. - C. 302

  6. Макоха А.Н., Шапошников А.В., Бережной В.В. Математическая логика и теория алгоритмов. - Ставрополь, 2017. - C. 301

  7. Горностаева Т.Н. Алгоритмы. Учебное пособие. - М.: Мир науки, 2019. URL: https://izd-mn.com/PDF/33MNNPU19.pdf (дата обращения: 13.01.20)

  8. Горностаева Т.Н. Алгоритмы. Учебное пособие. - М.: Мир науки, 2019. URL: https://izd-mn.com/PDF/33MNNPU19.pdf (дата обращения: 13.01.20)

  9. Логинов В.И., Шемагина Л.Н. Основы алгоритмизации. - Нижний Новгород, 2010. - С. 9

  10. Логинов В.И., Шемагина Л.Н. Основы алгоритмизации. - Нижний Новгород, 2010. - С. 10

  11. Лекции по информатике. Финансовый университет при Правительстве РФ, 2014. URL: https://studfile.net/preview/1494786/page:2/ (дата обращения: 10.01.20)

  12. Схемы алгоритмов, программ, данных и систем. Обозначения условные и правила выполнения. -М., 2010. - С. 139-145. URL: http://www.gostrf.com/normadata/1/4294848/4294848992.pdf (дата обращения: 15.01.20)

  13. Обеспечение систем обработки информации программное. Термины и определения. -М., 2010. - С. 160. URL: http://www.gostrf.com/normadata/1/4294833/4294833633.pdf (дата обращения: 15.01.20)

  14. Горностаева Т.Н. Алгоритмы. Учебное пособие. - М., 2019. - С.16. URL: https://izd-mn.com/PDF/33MNNPU19.pdf (дата обращения: 13.01.20)

  15. Лекции по информатике. Финансовый университет при Правительстве РФ, 2014. URL: https://studfile.net/preview/1494786/page:2/ (дата обращения: 10.01.20)

  16. Лекции по информатике. Финансовый университет при Правительстве РФ, 2014. URL: https://studfile.net/preview/1494786/page:3/ (дата обращения: 10.01.20)

  17. Лекции по информатике. Финансовый университет при Правительстве РФ, 2014. URL: https://studfile.net/preview/1494786/page:3/ (дата обращения: 10.01.20)

  18. Лекции по информатике. Финансовый университет при Правительстве РФ, 2014. URL: https://studfile.net/preview/1494786/page:3/ (дата обращения: 10.01.20)

  19. Головчинер М.Н. Введение в архитектуру ЭВМ. Курс лекций. - Томск: Томский государственный университет, 2013. - С. 27-28 URL: http://tic.tsu.ru/apache22/data/www/uploads/Архитектура ЭВМ.pdf (дата обращения: 11.01.20)

  20. Обеспечение систем обработки информации программное. Термины и определения. - М., 2010. - С. 160. URL: http://www.gostrf.com/normadata/1/4294833/4294833633.pdf (дата обращения: 15.01.20)

  21. Обеспечение систем обработки информации программное. Термины и определения. - М., 2010. - С. 160. URL: http://www.gostrf.com/normadata/1/4294833/4294833633.pdf (дата обращения: 15.01.20)

  22. Роботы и робототехнические устройства. Методы программирования и взаимодействия с оператором. - М., 2016. - С. 4. URL: https://files.stroyinf.ru/Data/639/63916.pdf (дата обращения: 8.01.20)

  23. Обеспечение систем обработки информации программное. Термины и определения. - М., 2010. - С. 161. URL: http://www.gostrf.com/normadata/1/4294833/4294833633.pdf (дата обращения: 15.01.20)

  24. Логинов В.И., Шемагина Л.Н. Основы алгоритмизации. - Нижний Новгород, 2010. - С. 9

  25. Лубашева Т.В., Железко Б.А. Основы алгоритмизации и программирования. - Минск, 2016. - С. 17

  26. Лекции по информатике. Финансовый университет при Правительстве РФ, 2014. URL: https://studfile.net/preview/1494786/page:2/ (дата обращения: 10.01.20)

  27. Логинов В.И., Шемагина Л.Н. Основы алгоритмизации. - Нижний Новгород, 2010. - С. 10

  28. Логинов В.И., Шемагина Л.Н. Основы алгоритмизации. - Нижний Новгород, 2010. - С. 11-13

  29. Логинов В.И., Шемагина Л.Н. Основы алгоритмизации. - Нижний Новгород, 2010. - С. 14

  30. Лубашева Т.В., Железко Б.А. Основы алгоритмизации и программирования. - Минск, 2016. - С. 31

  31. Царев Р.Ю., Прокопенко А. В. Алгоритмы и структуры данных. - Красноярск: СФУ, 2016. - С. 95

  32. Дроздов С.Н. Структуры и алгоритмы обработки данных. Учебное пособие. Таганрог, 2016. С. 21

  33. Дроздов С.Н. Структуры и алгоритмы обработки данных. Учебное пособие. Таганрог, 2016. - С. 9