Рассмотрим процесс управления информационным процессом, в котором в качестве управляемого объекта выбран текст. Другими словами, рассмотрим информационный процесс, связанный с редактированием, т.е. изменением состояния текста.
Во-первых, для того, чтобы преобразовать текст, должен существовать кто-то или что-то, который эти преобразования выполняет. Иными словами, необходим исполнитель этих преобразований.
Во-вторых, процесс преобразования текста необходимо разбить на отдельные операции, которые должны быть записаны в виде отдельных команд исполнителю. Каждый исполнитель обладает определенным набором – системой команд, которые он может выполнить. В процессе редактирования текста возможны различные операции: удаление, копирование, перемещение или замена его фрагментов. Исполнитель редактирования текста должен быть в состоянии выполнить эти операции.
В-третьих, должно быть определено начальное состояние объекта, в данном случае текста, и его требуемое конечное состояние (цель преобразования).
Будем говорить, что информационный процесс, обладающий всеми перечисленными выше свойствами, называется алгоритмом.
Слово алгоритм происходит от algorithmi – латинской формы написания имени великого математика IX века Аль Хорезми, который сформулировал правила выполнения арифметических действий. Первоначально под алгоритмами и понимали только правила выполнения четырех арифметических действий над многозначными числами. В дальнейшем это понятие стали использовать вообще для обозначения последовательности действий, приводящих к решению поставленной задачи.
Алгоритм – это понятное и точное предписание исполнителю выполнить конечную последовательность команд, приводящую от исходных данных к искомому результату. Запись алгоритма распадается на отдельные указания исполнителю выполнить некоторое законченное действие. Каждое такое указание называется командой. Команды алгоритма выполняются одна за другой. После каждого шага исполнения алгоритма точно известно, какая команда должна выполняться следующей. Совокупность команд, которые могут быть выполнены исполнителем, называется системой команд исполнителя. Всякий алгоритм составляется из простых команд, команд-обращений к вспомогательным алгоритмам и структурных команд. К структурным относятся команды ветвления и команды повторения (команду повторения чаще называют циклом).
По команде ветвления исполнитель выбирает один из двух путей исполнения алгоритма с непременным выходом на общее продолжение. Выбор происходит по какому-либо условию, т.е. алгоритм выполняется в зависимости от условия или вопроса, на который можно ответить «да» или «нет», т.е. условие может быть истинным (да) или ложным (нет). На учебном алгоритмическом языке ветвление представляется так:
Если <условие> то <серия1> иначе <серия2> конец ветвления.
Здесь <серия1> и <серия2> - это в общем случае некоторые последовательности команд на положительной ветви (да) и отрицательной ветви (нет) ветвления.
Вот пример использования ветвления в бытовой ситуации:
Если на улице идет дождь то - надеть сапоги, иначе - надеть туфли
Конец ветвления - выйти из дома.
Далее приведен пример блок-схемы полного ветвления «если-то-иначе»:
Рассмотренный вариант команды ветвления называется полным ветвлением. Если же на ветви «нет» отсутствует последовательность команд, т.е. <серия2> отсутствует, то такое ветвление называется неполным. Вот пример неполного ветвления из той же бытовой серии:
Если на улице идет дождь то – взять зонт
Конец ветвления – выйти из дома.
Далее приведен пример блок-схемы неполного ветвления «если-то»
Теперь рассмотрим команду повторения. Команды повторения составляют цикл. Цикл – это команда исполнителю многократно повторить указанную последовательность команд.
Однако слово «многократно» не значит «до бесконечности». Организация циклов, никогда не приводящая к остановке в выполнении алгоритма, является нарушением требования его результативности – получения результата за конечное число шагов. В жизни мы часто выполняем один и тот же набор действий. Например, как мы моем грязную посуду? Мы берем первую тарелку, моем ее, и ставим в шкаф для посуды, затем берем вторую тарелку и делаем с ней то же самое и так мы делаем до тех пор, пока не вымоем всю посуду.
Рассмотрим графическое представление циклического алгоритма. В него входят в качестве базовых следующие структуры: блок проверки Р и блок S, называемый телом цикла. Если тело цикла S расположено после проверки условия Р (цикл с предусловием), то может случиться, что при определенных условиях блок S не выполнится ни разу. Такой вариант организации цикла, управляемый предусловием, называется цикл-пока (пока «Р» повторять «S», конец цикла).
Если условие Р не выполняется, то происходит выход из цикла на команду, записанную после строки «конец цикла». Здесь условие Р – это условие на продолжение цикла.
Возможен другой случай, когда тело цикла S выполняется по крайней мере один раз и будет повторяться до тех пор, пока не станет истинным условие Р. Такая организация цикла, когда его тело расположено перед проверкой условия Р, носит название цикла с постусловием, или цикл-до Истинность условия Р в этом случае – условие окончания цикла.
Отметим, что возможна ситуация с постусловием и при организации цикла-пока. Итак, цикл-до завершается, когда условие Р становится истинным, а цикл-пока, когда Р становится ложным. Другими словами, цикл-до выполняется «до» истинности условия, а цикл-пока выполняется, «пока» указанное логическое выражение остается истинным. На учебном алгоритмическом языке цикл-пока представляется так:
Пока на полке есть книги, взять книгу с полки, конец цикла.
Далее приведен пример изображения цикла-пока в виде блок-схемы:
Цикл-до представляется аналогично:
Брать книгу с полки до тех пор, когда возьмешь красную книгу, конец цикла.
Далее приведен пример изображения цикла-до в виде блок-схемы.
Представление информационного процесса в форме алгоритма позволяет поручить его автоматическое исполнение различным техническим устройствам, среди которых особое место занимает компьютер. При этом говорят, что компьютер исполняет программу (последовательность команд), реализующую алгоритм на каком-либо языке программирования.
Исполнитель алгоритма – это человек или автомат (в частности, им может быть процессор ЭВМ), умеющий выполнить некоторый, вполне определенный набор действий.