Искомый результат: бутерброд (ломтик продукта, наложенный на ломтик хлеба) .
Предписание:
а) отрезать ломтик продукта;
б) отрезать ломтик хлеба;
Можно легко убедиться, что это предписание обладает всеми тремя свойствами алгоритма:
определенностью (всем понятно, что значит отрезать ломтик, положить один ломтик на другой и как все это сделать) ;
массовостью (хлеб может быть черным или белым, продукт – колбасой, ветчиной, сыром, маслом) ;
результативностью (при выполнении предписания получается искомый результат - бутерброд) .
При этом последовательность выполнения пунктов а) и б) не существенна. Бутерброды получаются одинаковыми в обоих случаях а) - б) - в) и б) - а) - в) . Это объясняется тем, что пункты а) и б) взаимно независимы друг от друга. Пункт в) может быть выполнен только после выполнения и пункта а) , и пункта б) , т. е. пункт в) зависит и от а) , и от б) .
Если пункты предписания изображать в виде прямоугольников, а зависимости – стрелочками, направленными в сторону зависимости, то алгоритму приготовления бутерброда будет соответствовать изображенная схема. (Интересно, что если в наличии имеются два ножа и соответствующее количество рук, то пункты а) и б) можно выполнять не только в любой последовательности, но и одновременно, и время приготовления бутерброда существенно уменьшится.)
определенностью, т. е. общепонятностью и точностью, не оставляющими место произволу;
массовостью, т. е. возможностью исходить из меняющихся в известных пределах значений исходных данных;
результативностью, т. е. направленностью на получение искомого результата.
Перечисленных свойств вполне достаточно, чтобы можно было определить, является данное конкретное предписание алгоритмом или нет.
Совершенно очевидно, что хорошо известное предписание: «Пойди туда, не знаю куда, принеси то, не знаю что» - алгоритмом не является.
Примерами алгоритмов нематематического характера могут служить различные рецепты из поваренной книги. Рассмотрим алгоритм приготовления бутерброда.
21.jpg
Исходные данные: хлеб (белый, черный) , продукт (колбаса, ветчина, сыр, масло) .
Искомый результат: бутерброд (ломтик продукта, наложенный на ломтик хлеба) .
Предписание:
а) отрезать ломтик продукта;
б) отрезать ломтик хлеба;
Можно легко убедиться, что это предписание обладает всеми тремя свойствами алгоритма:
определенностью (всем понятно, что значит отрезать ломтик, положить один ломтик на другой и как все это сделать) ;
массовостью (хлеб может быть черным или белым, продукт – колбасой, ветчиной, сыром, маслом) ;
результативностью (при выполнении предписания получается искомый результат - бутерброд) .
При этом последовательность выполнения пунктов а) и б) не существенна. Бутерброды получаются одинаковыми в обоих случаях а) - б) - в) и б) - а) - в) . Это объясняется тем, что пункты а) и б) взаимно независимы друг от друга. Пункт в) может быть выполнен только после выполнения и пункта а) , и пункта б) , т. е. пункт в) зависит и от а) , и от б) .
Если пункты предписания изображать в виде прямоугольников, а зависимости – стрелочками, направленными в сторону зависимости, то алгоритму приготовления бутерброда будет соответствовать изображенная схема. (Интересно, что если в наличии имеются два ножа и соответствующее количество рук, то пункты а) и б) можно выполнять не только в любой последовательности, но и одновременно, и время приготовления бутерброда существенно уменьшится.)