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

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

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

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

Добавлен: 23.04.2023

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

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

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

3. Проверка условия окончания циклического процесса. Если забыть указать условие, при котором следует завершить цикл, алгоритм будет выполняться бесконечно.

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

Существует несколько видов циклических алгоритмов: с постусловием, предусловием и параметром.

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

1. Механические алгоритмы. Например, работа двигателя внутреннего сгорания или сборочного конвейера.

2. Вероятностные алгоритмы. Их работа основана на теории вероятности и математической статистике.

3. Эвристические алгоритмы. Используют практические соображения в своей работе, без строгого математического обоснования.

4. Генетические алгоритмы. Применяют биологические идеи в своей работе.

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

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

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

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

Рассмотрим подробнее общие характеристики алгоритмов. С помощью их в информатике можно проводить определенные вычисления, описания конкретных объектов.

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

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


Рассматривая основные способы описания алгоритмов, отметим, что именно дискретность дает возможность поэтапной проверки правильности выполненных действий [9].

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

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

Для решения поставленной задачи в алгоритме выделяют ограниченное количество этапов. Пользователь, который пользуется подобной последовательностью, убежден в том, что при соблюдении инструкции он сможет достигнуть оставленного результата [22].

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

В зависимости от того, для какой цели он разрабатывается, существует несколько видов алгоритмов [13]:

- механические виды направлены на выполнение конкретной последовательности действий;

- гибкие варианты предполагают решение поставленной задачи на основе ассоциаций и аналогий;

- линейные последовательности действий предполагают поочередное выполнение отдельных команд;

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

- циклические типы предполагают многократное повторение нескольких действий.

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

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


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

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

Третье – это дискретность: алгоритм составлен из команд, в которых конечно число данных. Четвертое правило предполагает детерминированность, пятое – результативность.

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

Данное подразделение было сделано для того, чтобы охарактеризовать основные способы описания алгоритмов, а также учесть вероятность их применения на параллельных вычислительных системах [13].

Свойства алгоритмов не зависят от особенностей вычислительных систем, имеют безоговорочную ценность. Его нужно сделать однократно, после чего на протяжении длительного временного промежутка можно применять готовую последовательность в разнообразных программно-аппаратных средах [19].

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

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

Оно должно совпадать с описываемым алгоритмом, в противном случае сложно будет вести речь о его эффективности и результативности.

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


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

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

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

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

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

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

Глава 2. Алгоритмизация – как ключевой этап программирования

2.1 Понятие программирования и компьютерной программы

В период появления первых компьютерных систем остро встал вопрос того, как «научить» машину воспринимать указываемые к исполнению задачи человеком. Тут и появился термин «компьютерное программирование». Сегодня многие пользователи, не знакомые с основами и тонкостями этих процессов, считают, что это что-то из области фантастики, недоступное рядовому обывателю. Однако при желании можно освоить программирование и самому [10].


Если посмотреть на основные трактовки данного термина, нетрудно сделать простейший вывод. Программирование - это написание программ.

Тут же возникает вопрос того, что же такое программа. Программа или приложение – это, грубо говоря, набор специализированных команд, инструкций, директив или исполняемых сценариев, которые подлежат исполнению машиной, причем на уровне и «железных» устройств, и других задействованных средств [3].

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

Говоря о том, что такое программирование в современной трактовке, стоит обратить свой взгляд на историю его возникновения. По сути, автоматизированное выполнение каких-то определенных действий, например, в области математических вычислений, известно человечеству достаточно давно [24].

Вспомнить хотя бы Древнюю Грецию, в которой было использовано устройство с шестернями разной величины, позволявшее производить простейшие арифметические действия. Это был самый настоящий прототип современного калькулятора [1].

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

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

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

Зато в 1846 году дочь Байрона создала первую в мире программу для аналитической машины, которая решила уравнение Бернулли. Конечно, алгоритмы программирования, которые применяла графиня Ада Августа Лавлейс, были весьма примитивными, но именно они заложили то самое зерно, которое было использовано при создании современных компьютерных программ. И именно ее считают во всем мире прародительницей программирования [14].

Любая компьютерная программа должна машиной каким-то образом выполняться. Ей мало написать, мол, сделай то-то и то-то. Для этого были созданы языки программирования.

Но написать последовательность команд на каком-то языке, которых сегодня существует очень много, оказывается недостаточно. Машина все равно не воспримет текстовые фразы или математические формулы [22].