Основы алгоритмизации и вычислений: Учебно-практическое пособие, страница 19

Попробуем проделать операцию сложения тех же чисел (15 и 17) по представленному алгоритму:

  1. Текущий разряд - крайний правый (будем складывать 5 и 7);
  2. Складываем значение цифр текущего разряда 5+7=12;
  3. Значение суммы больше 9? Да, больше, при сложении значений следующего разряда будим добавлять единицу;
  4. Записываем значение сумм правого разряда 2;
  5. Текущий разряд не последний, переходим к следующему разряду;
  6. Складываем значение цифр следующего разряда 1+1=2 и дописываем единицу, так как значение суммы чисел предыдущего разряда было больше 9: 2+1=3.
  7. Значение суммы не больше 9, записываем значение суммы чисел разряда 3;
  8. Этот разряд является последним, поэтому сложение завершено. Получили результат 32.

Заметим, что алгоритм сложения является одним и тем же для любой пары чисел, что и определяет его массовость.

            Аналогичным образом можно составить алгоритм умножения, деления, вычитания и так далее.

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

            Если применять один и тот же алгоритм к одним и тем же исходным данным, то мы всегда должны получать один и тот же результат. Например сколько бы раз мы не складывали числа «15» и «17», всегда будем получать один и тот же результат «32». И если при этом сравнивать результаты на каждом шаге выполнения алгоритма, то они так же будут идентичны. Таким образом можно говорить об однозначности алгоритмов.

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

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

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

            Существует три основных вида шагов алгоритмов это:

1.  действие(процесс) – выполнение какой либо операции, например вычисление суммы a=15+17 или положить монету в телефон автомат или набрать номер телефона, эти операции называются шагами действия – требуется что либо сделать.

2.  условие(развилка) – сравнение каких либо исходных данных и определение на основе результата сравнения дальнейших действий, например если после набора номера телефон, по которому вы звонили занят, то появляется шаг условия повторить или нет, если повторить, то следует повторно набрать номер, а если нет, то перестать звонить.