АЛГОРИТМ И ЕГО СВОЙСТВА

Среди перечисленных этапов разработки программ центральное место занимает этап разработки ал-горитма.

Само слово "алгоритм" происходит от имени персидского математика Аль Хорезми, который в IX веке разработал правила четырех арифметических действий (сегодня мы бы сказали алгоритмы арифме-тических действий).

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

ставленной задачи, но не всякое, а обладающее определенными свойствами. Основными сойствами

алгоритма являются:

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

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

3) Результативность (конечность). Свойство результативности обычно подразумевает завершение работы алгоритма за конечное число шагов (при этом количество шагов может быть заранее не извест-ным и различным для разных исходных данных).

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

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