Существуют такие свойства алгоритма как понятность, дискретность, определенность, результативность, массовость. Если не будет у алгоритма такого свойства, например, как понятность, тогда алгоритм данным исполнителем просто не может быть выполнен.
так, если исполнителю трехлетнему ребёнку дать алгоритм нахождения корней квадратного уравнения или алгоритм по приготовлению борща или починке телевизора, то он просто не поймёт как это сделать и алгоритм даже не начнёт выполняться. Или на каком-то непонятном для исполнителя шаге он остановится. Или если алгоритм написан на китайском, то человек, не знающий этого языка, его не поймёт. Если не будет такого свойства как определенность, то на каком-то шаге алгоритм или остановится, так как исполнитель не будет знать по какому из путей следует идти или же может пойти по неправильному пути. Если не будет свойства результативности, то после выполнения алгоритма, мы не получим результат. Например, если составлен алгоритм, а то, что насчитали забыли вывести на экран - результат уже не получим. Или например, при нахождении корней квадратного уравнения не учтем, что дискриминант может получиться отрицательный, то программа выдаст ошибку. Или если определяем какое число больше другого таким образом: если а-в>0 , то а больше, если а-в<0 , то в больше. Всегда ли получен результат? - не всегда. Нарушено свойство результативности. Пропущена команда: Если а-в =0 , то числа равны. Вот теперь все в порядке. То есть алгоритм можно исправить, если какое-то свойство не выполняется. Если нарушено свойство массовости, то по данному алгоритму можно решать только узкий класс задач, что нежелательно. Так как алгоритмы все-таки должны быть достаточно универсальными, чтобы выучив один алгоритм не пришлось для каждой похожей задачи учить или составлять новый.