Информатика. Ч.2 Майстренко А.В. - 33 стр.

UptoLike

Составители: 

Разделение процесса разработки программ на шесть этапов носит весьма условный характер. В слу-
чае простых программ, некоторые этапы сливаются, например, проектирование с разработкой алгоритма
или кодирование с отладкой. В случае сложных программ могут добавиться новые фазы разработки, на-
пример, проектирование базы данных.
Более важным является то, что работа над сложной программой состоит в многократном прохождении
цикла разработки, так как в процессе тестирования могут быть обнаружены такие ошибки, для ис-
правления которых придется вернуться не только к кодированию или алгоритмизации, но и к про-
ектированию, а в особых случаяхпересмотреть и постановку задачи.
Если же удалось разработать полезную программу, то работа над ней не заканчивается этапом тес-
тирования, а переходит в фазу сопровождения. Программа живет, приобретает новые функции, совер-
шенствует старые, избавляется от последних ошибок и, наконец, умирает, уступив натиску более новых
и совершенных программ.
АЛГОРИТМ И ЕГО СВОЙСТВА
Среди перечисленных этапов разработки программ центральное место занимает этап разработки ал-
горитма.
Само слово "алгоритм" происходит от имени персидского математика Аль Хорезми, который в IX
веке разработал правила четырех арифметических действий (сегодня мы бы сказали алгоритмы арифме-
тических действий).
В начале ХХ века алгоритмы стали объектом изучения математиков, появились различные матема-
тические уточнения понятия "алгоритм" и возникла целая отрасль математикитеория алгоритмов. Ре-
зультаты, полученные теорией алгоритмов, служат теоретическим фундаментом всей компьютерной
технологии, но в повседневной программистской практике не используются, поэтому сейчас мы будем
обсуждать алгоритмы в их интуитивном, "бытовом" понимании.
Итак, алгоритмэто описание некоторой последовательности действий, приводящее к решению по-
ставленной задачи, но не всякое, а обладающее определенными свойствами. Основными сойствами
алгоритма являются:
1) Дискретность. Под дискретностью понимается то, что алгоритм состоит из описания последова-
тельности шагов обработки, организованных таким образом, что в начальный момент задаётся исходная
ситуация, а после каждого следующего шага ситуация преобразуется на основе данных, полученные в
предшествующие шаги обработки. Дискретность алгоритма означает, что он исполняется по шагам: ка-
ждое действие, предусмотренное алгоритмом, исполняется только после того, как закончилось испол-
нение предыдущего, то есть преобразование исходных данных в результат происходит во времени дис-
кретно. Но здесь важно заметить, что не стоит увлекаться детализацией алгоритма и разбиением его на
все более и более мелкие шаги.
2) Детерминированность (определенность). Это свойство означает, что на каждом шаге алгоритма
однозначно определяется преобразование данных, полученных на предшествующих шагах алгоритма,
то есть на одинаковых исходных данных алгоритм должен всегда давать одинаковые результаты.
3) Результативность (конечность). Свойство результативности обычно подразумевает завершение
работы алгоритма за конечное число шагов (при этом количество шагов может быть заранее не извест-
ным и различным для разных исходных данных).
4) Массовость (универсальность). Это свойство состоит в том, что алгоритм решения задачи разра-
батывается в общем виде, то есть он должен быть применим для некоторого класса задач, различаю-
щихся лишь исходными данными. При этом исходные данные выбираются из некоторой области, назы-
ваемой областью применимости алгоритма.
5) Понятность. Каждый шаг алгоритма должен обязательно представлять собой какое-либо допус-
тимое действие, т.е. алгоритм строится для конкретного исполнителя автором и должен быть им обоим
понятен. Это облегчает проверку и модификацию алгоритма при необходимости.
СПОСОБЫ ПРЕДСТАВЛЕНИЯ АЛГОРИТМОВ
Алгоритм представляет решение задачи в виде точно определенной последовательности действий
по преобразованию исходных данных в результат. Процесс составления алгоритмов называют алгорит-
мизацией.
Алгоритм, реализующий решение задачи, можно представить различными способамис помощью
графического или текстового описания. Графический способ представления алгоритмов имеет ряд пре-