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