Любая программа составлена в соответствии с некоторым алгоритмом. Алгоритм [algorithm] – это конечный набор предписаний, для которого указано, как и в какой последовательности эти предписания необходимо применять к исходным данным задачи, чтобы получить её решение. Алгоритм – это общий метод решения задачи, конкретное выражение которого будет оформлено в виде программы. Алгоритм даёт возможность чисто механически решать любую задачу из некоторого класса однотипных задач. К алгоритмам предъявляется целый ряд условий, например, алгоритм должен быть корректным, алгоритм должен решать задачу за определённое время и расходовать определённый размер памяти и т.д.
С алгоритмами любой человек имеет дело с детства. Алгоритмы изучаются в начальной школе.
Пример
Здесь представлены различные алгоритмы для сложения чисел.
1) сложение в десятичной системе
+ 345
------
2) сложение в двоичной системе
+ 01
-----
3) сложение дробей
5/3 + 7/2 = 31/6
g
До сих пор говорилось лишь об одной стороне использования алгоритмов, а именно рассматривались только действия, которые приводят к решению задачи. Существует другая сторона использования алгоритмов, которая выражается в том, что алгоритм зависит от структуры используемых им данных.
|
|
Пример
Алгоритм сложения чисел зависит от того, как эти числа представлены. Например, целые числа можно представит как набор чёрточек (подобно латинским цифрам). Алгоритм сложения будет очень простым, но вместе с тем очень громоздким для больших чисел.
Алгоритм сложения дробей предполагает, что дробь состоит из двух компонентов: числителя и знаменателя. Представление дроби как вещественного числа потребует применения совершенно иного алгоритма сложения.
g
Алгоритм может быть описан различными способами: формульно, графически, посредством некоторого языка программирования. Язык программирования [algorithmic language] – это система обозначений, предназначенная для точного описания алгоритмов для ЭВМ.
Пример
Рассмотрим задачу вычисления квадратного корня из некоторого положительного вещественного числа:
.
Такая задача решается с помощью алгоритма Герона. В формульной записи этот алгоритм будет иметь вид:
.
Имея некоторое начальное приближение, можно уточнить значение корня, а затем вновь повторить этот процесс. Алгоритмы такого рода имеют название циклических.
В графическом представлении алгоритм будет иметь более наглядную форму.
На алгоритмическом языке BASIC алгоритм может быть реализован следующим образом:
while(1)
y=y0
y=(y0+x/y0)/2
y0=y
wend
Разумеется, в реальной программе должен быть обеспечен выход из цикла. Алгоритм Герона используется при реализации библиотек стандартных математических функций.
g