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