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

МЕТОДЫ ПОСТРОЕНИЯ АЛГОРИТМОВ

Этапы решения задач с помощью ЭВМ

Решения задачи обработки информации с помощью ЭВМ складывается из следующих этапов:

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

2. Выбор метода решения задачи (построение компьютерной модели, чаще математической - формализация задачи).

3. Построение алгоритма реализации выбранного метода решения.

4. Кодирование алгоритма для выполнения решения с помощью ЭВМ (написание программы).

5. Перевод программы в программу в машинных кодах (трансляция)

6. Отладка и тестирование программы.

7. Выполнение расчетов созданной программой и анализ полученных результатов

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

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

· Определенность - алгоритм должен однозначно, точно и понятно задавать выполняемые действия (для одних и тех же исходных данных должен получаться один и тот же результат);

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

· Результативность - алгоритм должен приводить к желаемому точному результату за конечное время;

· Массовость - алгоритм должен быть приемлем для решения всех задач определенного класса.

Алгоритмизация -это процесс проектирования алгоритма, то есть выделение совокупности действий, используемых в математическом методе, и сведения их к совокупности действий, которые будет выполнять ЭВМ.

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

Существует три способа изображения (записи) алгоритмов.

1. Словесный (вербальный) – на естественном (человеческом) языке.

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

Недостатки – неточность в деталях из-за многозначности человеческих языков, плохая обозримость подробных алгоритмов. Обычно этим способом описания пользуются для укрупненных (обобщенных) алгоритмов, особенно на функциональном уровне описания.

2. На алгоритмическом языке – на формальном (искусственном) однозначном языке.

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

Ниже приведен пример записи алгоритма нахождения наибольшего общего делителя для двух натуральных чисел на языке А. П. Ершова. Его идея основана на том свойстве, что если M>N, то НОД(М, N) = НОД(М-N,N). Другой факт, лежащий в основе алгоритма, тривиален — НОД(М, М) = М.

 

алг нахождение наибольшего общего делителя (натM, N, нат НОД)

аргM, N

резНОД

начпокаM≠N

нц

еслиM>N

тоM:=M-N

иначеN:=N-M

все

кц

НОД:=M

кон

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

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

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

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