Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмы и языки.doc
Скачиваний:
13
Добавлен:
26.08.2019
Размер:
321.54 Кб
Скачать

Свойства алгоритмов

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

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

  2. Точность, или детерминированность. Запись алгоритма должна быть такой, чтобы, выполнив очередную команду, исполнитель точно знал, какую команду надо выполнять следующей. Это приводит к тому, что алгоритм всегда выдаёт один и тот же результат для одних и тех же исходных данных.

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

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

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

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

Любой исполнитель может понимать и исполнять алгоритм только в том случае, если он представлен в виде, понятном исполнителю. Любая форма представления алгоритма должна обеспечивать свойства алгоритма: дискретности, точности, понятности, результативности и массовости.

Существуют три основных способа представления алгоритмов.

  1. Использование естественного языка.

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

  1. Графически способ..

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

Ниже приведены наиболее часто встречающиеся блочные символы.

    1. Процесс.

    1. Решение.

    1. Предопределенный процесс.

    1. Ввод-вывод.

    1. Пуск-останов.

    1. Документ.

  1. Использование алгоритмических языков.

Алгоритмический язык – это формальный язык, используемый для записи алгоритмов. Запись алгоритма на алгоритмическом языке является формализованной и подчиняется строгим требованиям синтаксиса используемого языка. В отличие от большинства языков программирования, алгоритмический язык не привязан к архитектуре компьютера, и не содержит деталей, связанных с его устройством.

Алгоритм на алгоритмическом языке в общем виде записывается в следующей форме:

алг название алгоритма (аргументы и результаты)

дано условия применимости алгоритма

надо цель выполнения алгоритма

нач описание промежуточных величин

| последовательность команд (тело алгоритма)

кон

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

Пример записи алгоритма вычисления суммы квадратов целых чисел:

алг Сумма квадратов (арг цел n, рез цел S)

дано n > 0

надо S = 1*1 + 2*2 + 3*3 + … + n*n

|нач цел i

| |ввод n; S:=0

| | |нц для i от 1 до n

| | | S := S + i * i

| | |кц

| |вывод "S = ", S

|кон