Ответ:
"Алгоритм и его свойства"
На протяжении всей нашей жизни мы сталкиваемся с алгоритмами, даже не осознавая этого. Алгоритмы появляются в ситуациях, которые можно описать в виде последовательности действий. Приведите примеры.
Мы с вами не нашептываем стиральной машине команду «отстирать пятно на воротничке блузки», а пользуемся только теми операциями, которые указаны в инструкции в качестве исполнимых, и задаем их по строго определенным правилам. Например, нажатием на кнопку включаем режим стирки или отжима белья.
В этой ситуации мы видим 2 объекта: управляющий (дающий команды) и управляемый (исполняющий команды). В данном примере исполнителем является машина.
При переходе через дорогу мы руководствуемся сигналами светофора…
В этой ситуации мы также видим 2 объекта: управляющий (дающий команды) и управляемый (исполняющий команды). Но в данном случае исполнитель человек.
«… Пришел дед к берегу синего моря и забросил невод. Поймал дед рыбку, да не простую, а золотую. И исполняла рыбка все его желания…»
В повседневной своей деятельности мы с вами интуитивно понимаем, что только в сказках существуют такие замечательные универсальные исполнители, как «золотая рыбка», которые понимают все-все-все и могут все-все-все, да еще обладают телепатическими способностями догадываться, чего бы нам хотелось.
Наверное, те из вас, кто с детства привык свои просьбы к родителям и бабушкам формулировать в пределах разумного и исполнимого или доступного, достиг большего удовлетворения, чем те, кто просил достать с неба звезду, купить живого розового слона и т.п. И поэтому решение задачи алгоритмизации будем строить на языке, понятном конкретному исполнителю, используя на каждом шаге алгоритма только те операции или команды, которые данный исполнитель способен выполнить.
Итак, алгоритм – последовательность команд управления каким-либо объектом. Очевидно, что исполнителем алгоритма может быть как живое существо, так и машина.
Свойства алгоритмов (требования к алгоритмам):
1. Дискретность. Процесс решения задачи должен быть разбит на последовательность отдельных шагов. Таким образом, формируется упорядоченная совокупность отделенных друг от друга команд (предписаний). Образованная структура алгоритма оказывается прерывной (дискретной): только выполнив одну команду, исполнитель сможет приступить к выполнению следующей.
2. Понятность. Алгоритм должен быть понятен исполнителю, и исполнитель должен быть в состоянии выполнить его команды. Следовательно, алгоритм нужно разрабатывать с ориентацией на определенного исполнителя, то есть в алгоритм можно включать команды только из системы команд данного исполнителя.
3. Детерминиротнностъ. Будучи понятным, алгоритм не должен содержать команды, смысл которых может восприниматься неоднозначно. (Например, робот будет поставлен в тупик командой «Взять две - три ложки песка»: что значит «две-три»?, какого песка). Кроме того, недопустимы ситуации, когда после выполнения очередной команды исполнителю не ясно, какую команду выполнять на следующем шаге. Нарушением составителем алгоритма этих требований (называемых требованием определенности, или детерминированности) приводит к тому, что одна и та же команда после выполнения разными исполнителями дает неодинаковый результат.
4. Результативность. Смысл этого обязательного требования к алгоритмам состоит в том, что при точном исполнении всех команд алгоритма процесс решения задачи должен, прекратиться за конечное число шагов и при этом, должен быть получен определенный постановкой задачи ответ.
5. Массовость. Разработка алгоритмов - процесс интересный, творческий, но непростой, требующий многих, часто коллективных, умственных усилий и затрат времени. Поэтому предпочтительно разрабатывать алгоритмы» обеспечивающие решение всего класса задач данного типа. Например, если составляется алгоритм решения квадратного уравнения аx2 + bx + с = 0, он должен быть вариативен, то есть обеспечивать возможность решения для любых допустимых исходных значений коэффициентов: а, b, с. Про такой алгоритм говорят, он удовлетворяет требованию массовости.