Файл: Алгоритмизация как обязательный этап разработки программы (Характеристика процесса разработки программы).pdf
Добавлен: 31.03.2023
Просмотров: 89
Скачиваний: 2
Непосредственная запись алгоритма на языке машины нерациональна, а естественный язык не подходит для ЭВМ. Поэтому появились языки программирования, которые:
- удовлетворяют требованиям однозначности представления алгоритма;
- более удобны для человека;
- непосредственно «понятны» процессору ЭВМ.
Так, для записи алгоритма решения задачи используются следующие способы:
- словесно–формульное описание;
- схема алгоритма, составленная с использованием графических блоков (блок–схема);
- алгоритмические языки программирования;
- псевдокод [12].
Алгоритмический язык программирования – формальный язык, используемый для записи, реализации и изучения алгоритмов. В отличие от большинства языков программирования, алгоритмический язык не привязан к архитектуре компьютера, не содержит деталей, связанных с устройством машины.
Для изучения основ алгоритмизации применяется так называемый Русский алгоритмический язык (школьный алгоритмический язык), использующий понятные школьнику слова на русском языке.
Алголо–подобный алгоритмический язык с русским синтаксисом был введён в употребление академиком А. П. Ершовым в середине 1980–х годов, в качестве основы для «безмашинного» курса информатики [16].
Основные служебные слова алгоритмического языка:
Описание алгоритма:
- алг (алгоритм);
- арг (аргумент);
- рез (результат);
- нач (начало) – начало алгоритма;
- кон (конец) – конец алгоритма;
- дано – исходные данные в произвольной форме;
- надо – цель алгоритма;
- утв.
Типы данных:
- цел (целый);
- вещ (вещественный);
- сим (символьный);
- лит (литера) – строка;
- лог (логический);
- таб (таблица) – для обозначения массива;
- длин (длина) – количество элементов массива.
Обозначение условий:
- если;
- то;
- иначе;
- все;
- выбор;
- при;
- знач.
Обозначение циклов:
- нц (начало цикла);
- кц (конец цикла);
- пока;
- для;
- от;
- до;
- шаг.
Логические функции и значения для составления выражений:
- и;
- или;
- не;
- да;
- нет;
- Ввод–вывод;
- ввод;
- вывод [16].
Основными свойствами алгоритма являются:
- детерминированность (определенность). Предполагает получение однозначного результата вычислительного процecca при заданных исходных данных. Благодаря этому свойству процесс выполнения алгоритма носит механический характер;
- результативность. Указывает на наличие таких исходных данных, для которых реализуемый по заданному алгоритму вычислительный процесс должен через конечное число шагов остановиться и выдать искомый результат;
- массовость. Это свойство предполагает, что алгоритм должен быть пригоден для решения всех задач данного типа;
- дискретность. Означает расчлененность определяемого алгоритмом вычислительного процесса на отдельные этапы, возможность выполнения которых исполнителем (компьютером) не вызывает сомнений [15].
2.2. Алгоритмизация как этап разработки программы
Программирование является собирательным понятием и может рассматриваться и как наука и как искусство, на этом основан научно–практический подход к разработке программ. Программа – результат интеллектуального труда, для которого характерно творчество, а оно, как известно, не имеет четких границ [14]. В любой программе присутствует индивидуальность ее разработчика, программа отражает определенную степень искусства программиста. Вместе с тем программирование предполагает и рутинные работы, которые могут и должны иметь строгий регламент выполнения и соответствовать стандартам.
Процесс решения задачи на компьютере – это совместная деятельность человека и ЭВМ. Этот процесс можно представить в виде нескольких последовательных этапов. На долю человека приходятся этапы, связанные с творческой деятельностью – постановкой, алгоритмизацией, программированием задач и анализом результатов, а на долю компьютера – этапы обработки информации.
ЭВМ непосредственно выполняет программы на машинном языке программирования данной ЭВМ. При этом программа представляет собой набор отдельных команд компьютера. Эти команды являются достаточно «простыми», например, сложение, умножение, сравнение или пересылка отдельных данных. Каждая команда содержит в себе сведения о том, какая операция должна быть выполнена (код операции), с какими операндами (адреса данных или непосредственно сами данные) выполняются вычисления и куда (адрес) должен быть помещен результат [13].
Вне зависимости от вида и структуры, любой алгоритм должен быть формализован по некоторым правилам посредством конкретных изобразительных средств. К ним относятся следующие способы записи алгоритмов: словесный, формульно–словесный, графический, язык операторных схем, алгоритмический язык.
Наибольшее распространение благодаря своей наглядности получил графический (блок–схемный) способ записи алгоритмов. Блок–схемой называется графическое изображение логической структуры алгоритма, в котором каждый этап процесса обработки информации представляется в виде геометрических символов (блоков), имеющих определенную конфигурацию в зависимости от характера выполняемых операций. Перечень символов, их наименование, отображаемые ими функции, форма и размеры определяются ГОСТами. Основные блоки для составления алгоритмов в процессе разработки программы представлены в таблице 1 [8].
Таблица 1
Основные блоки для составления алгоритмов
Название |
Обозначение |
Описание |
---|---|---|
Терминатор |
Начало, конец, прерывание процесса обработки данных или выполнения программы |
|
Процесс |
Выполнение операции или группы операций, в результате которых изменяется значение, форма представления или расположение данных |
|
Предопределенный процесс |
Использование ранее созданных и отдельно описанных алгоритмов или программ |
|
Ввод–вывод |
Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод) |
|
Решение |
Выбор направления выполнения алгоритма или программы в зависимости от некоторых переменных условий |
|
Границы цикла |
Начало цикла Конец цикла |
Символ, состоящий из двух частей, отображает начало и конец цикла. Обе части символа имеют один идентификатор. Условия для инициализации, приращения, завершения и т. д. помещаются внутри символа в начале или в конце в зависимости от расположения операции, проверяющей условие. |
Подготовка |
Выполнение операций, меняющих команды или группу команд, с целью воздействия на некоторую последующую функцию (установка переключателя, модификация регистра, инициализация программы) |
|
Комментарий |
Пояснение к элементу схемы (или линии связи) |
|
Соединитель |
При большой насыщенности схемы отдельные линии потока между удаленными символами допускается обрывать. При этом в конце (начале) обрыва должен быть помещен символ «Соединитель». Внутри блока соединителя указывается имя уникального идентификатора. |
Приведенные элементы используются для построения блок–схемы алгоритмов при разработке любой программы. Алгоритмизация является обязательным этапом разработки программного обеспечения, так как позволяет наглядно и своевременно построить и оценить структуру исходного продукта, что является необходимым условием для минимизации ошибок в процессе разработки, и, соответственно, для уменьшения издержек.
ЗАКЛЮЧЕНИЕ
При выполнении работы была достигнута цель исследования – охарактеризована алгоритмизация как обязательный этап разработки программы. Для достижения цели были выполнены поставленные задачи:
- охарактеризован процесс разработки программы в целом;
- проанализированы этапы разработки программного обеспечения;
- рассмотрено понятие и основные характеристики алгоритма;
- рассмотрена алгоритмизация со стороны обязательного этапа разработки программы.
В ходе реализации работы было определено, что разработка программы в общем виде включает определенную последовательность этапов. В зависимости от требований конкретного проекта этапы могут быть в незначительной степени скорректированы или пропущены. Кроме того, было выявлено, что в зависимости от целей разработки могут быть выбраны различные модели жизненного цикла программы – спиральная, каскадная и др. Тем не менее, алгоритмизация всегда остается в составе этапов разработки программы, и, как правило, выполняется после того, как было произведено моделирование задачи, и перед тем, как приступить к проектированию общей структуры продукта.
Реализация той или иной задачи может быть произведена множеством способов, и алгоритмизация, являясь неотъемлемой частью процесса разработки ПО, позволяет разработчику наиболее грамотно и полно оценить ситуацию и выбрать максимально подходяще решение. При этом корректно построенный алгоритм позволяет разработчикам наглядно увидеть структуру будущего проекта и проанализировать возможные сложности и препятствия. Своевременная алгоритмизация решающейся задачи позволяет сделать весь процесс более наглядным и понятным, и, кроме того, минимизировать возможные ошибки и их последствия.
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
- Агафонов, В. Н. Логическое программирование / В. Н. Агафонов. – М.: Форум, 2016. – 718 c.
- Гагарина, Л. Г. Введение в архитектуру программного обеспечения. Учебное пособие / Л. Г. Гагарина, А. Р. Федоров, П. А. Федоров. – М.: Инфра–М, Форум, 2016. – 320 c.
- Голицына, О. Л. Основы алгоритмизации и программирования / О. Л. Голицына, И.И. Попов. – М.: Форум, 2015. – 432 c.
- Гончаров, В. А. Методы оптимизации. Учебное пособие / В. А. Гончаров. – М.: Юрайт, 2015. – 192 c.
- Дегтерева, Р. Необычные эффекты алгоритмизации / Р. Дегтерева. – М.: LAP Lambert Academic Publishing, 2017. – 140 c.
- Добрынин, В. Ю. Технологии компонентного программирования / В. Ю. Добрынин. – Москва: Гостехиздат, 2014. – 216 c.
- Долгов, А. И. Алгоритмизация прикладных задач / А. И. Долгов. – М.: Флинта, 2017. – 136 c.
- Зыков, С. В. Основы современного программирования / С. В. Зыков. – М.: Горячая линия – Телеком, 2016. – 448 c.
- Карпенко, А. П. Современные алгоритмы оптимизации. Учебное пособие / А. П. Карпенко. – М.: МГТУ им. Н. Э. Баумана, 2014. – 448 c.
- Кнут, Д. Э. Искусство программирования (Том 1. Основные алгоритмы) / Д. Э. Кнут. – М.: Мир, 2017. – 882 c.
- Колдаев, В. Д. Основы алгоритмизации и программирования / В. Д. Колдаев. – М.: Форум, Инфра–М, 2018. – 416 c.
- Комлев, Н. Ю. Объектно Ориентированное Программирование. Хорошая книга для Хороших Людей / Н. Ю. Комлев. – М.: Солон–Пресс, 2014. – 892 c.
- Корниенко, М. М. Информатика. Основы алгоритмизации и программирования. Теоретические основы, примеры и задания, практические работы / М.М. Корниенко. – М.: Ранок, 2018. – 259 c.
- Лукин, В. В. Технология разработки программного обеспечения. Учебное пособие / В. В. Лукин, В. Н. Лукин, Т. В. Лукин. – Москва: Гостехиздат, 2015. – 286 c.
- Милов, А. В. Основы программирования в задачах и примерах / А. В. Милов. – М.: Фолио, 2017. – 400 c.
- Новичков, В. С. Алгоритмизация и программирование на Турбо Паскале. Гриф УМО ВУЗов России / В. С. Новичков. – М.: Горячая линия – Телеком, 2014. – 967 c.
- Панюкова, Т. А. Проектирование программных средств / Т. А. Панюкова. – Москва: Гостехиздат, 2017. – 364 c.
- Потопахин, В. В. Искусство алгоритмизации. Учебное пособие / В. В. Потопахин. – М.: ДМК Пресс, 2018. – 328 c.
- Рудаков, А. В. Технология разработки программных продуктов. Учебник / А. В. Рудаков. – М.: Академия, 2015. – 208 c.
- Санников, Е. В. Курс практического программирования в Delphi. Объектно–ориентированное программирование / Е. В. Санников. – М.: Солон–Пресс, 2017. – 188 c.
- Сафонов, В. О. Аспектно–ориентированное программирование / В. О. Сафонов. – Москва: Высшая школа, 2016. – 104 c.
- Семакин, И. Г. Основы алгоритмизации и программирования / И. Г. Семакин, А. П. Шестаков. – М.: Academia, 2017. – 304 c.
- Трофимов, В. В. Алгоритмизация и программирование. Учебник для академического бакалавриата / В. В. Трофимов. – М.: Юрайт, 2017. – 315 c
- Фалина, И. Н. Алгоритмизация и программирование (+ CD–ROM) / И. Н. Фалина и др. – М.: КУДИЦ–Пресс, 2018. – 280 c.
- Хорев, П. Б. Объектно–ориентированное программирование / П. Б. Хорев. – М.: Academia, 2017. – 448 c.