Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика Учебник НГТУ Семестр 2.docx
Скачиваний:
85
Добавлен:
27.03.2015
Размер:
4.01 Mб
Скачать

23.1. Понятие алгоритма

22.3. Типовые информационные модели

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

Единого точного определения термина «Алгоритм» не существует. Разные источники дают его по-разному. Самое простое определение:

Алгоритм — это описание последовательности действий, приводящих к требуемому результату.

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

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

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

Подавляющее большинство алгоритмов, особенно научно-технических, оперируют с данными. Данные - это информация, представленная в форме, пригодной для алгоритмической обработки. Входные данные поставляются в алгоритм извне и обрабатываются им, превращаясь в выходные данные – результат работы алгоритма. В интерактивных алгоритмах входные данные вводятся неоднократно, часто в зависимости от промежуточных результатов. Все игровые программы основаны на интерактивных алгоритмах. В не интерактивных (линейных, алгоритмах типа «вход-выход») входные данные вводятся однократно и автоматически преобразуются в выходные, образуя в процессе преобразования промежуточные или внутренние данные. Понятие данных позволяет увидеть разницу между алгоритмом и компьютерной программой (которая записывается на «алгоритмическом» языке). По определению Н.Вирта [1], программа = алгоритм + структуры данных. Иными словами,

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

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

22.3. Типовые информационные модели

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

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

23.1. Понятие алгоритма

23.3. Данные алгоритмов

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

  1. Дискретность, уже обсуждавшаяся выше. Алгоритм строится из отдельных независимых команд (предписаний) и, тем самым, образует дискретную прерывистую структуру.

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

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

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

  5. Результативность – способность алгоритма завершаться определенными результата-ми, в том числе и сообщением о невозможности решения задачи при заданном наборе исходных данных.

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

23.1. Понятие алгоритма

23.3. Данные алгоритмов