Возвращаясь к разнице между алгоритмом и программой.
Ильченко Эдуард писал(а):
Любую последовательность пространственных неоднородностей (изменения пространственных характеристик во времени), взаимодействующих с исполнителем (изменяющих состояние исполнителя) можно назвать программой.
На примере насосной станции : )))
Имеем исполнителя — насосная станция.
Устройство исполнителя неизвестно — чёрный ящик.
Внешние проявления действий исполнителя — подаёт воду, не подаёт воду, увеличивает подачу воды, уменьшает подачу воды.
Вложение:
нс-00.png [ 10.24 КБ | Просмотров: 16414 ]
Если достаточно долго наблюдать за работой исполнителя, то можно обнаружить в его работе некоторые закономерности (различными лагами по времени пренебрегаем, как встроенными в природу насосной станции):
1.
Если давление воды на входе отсутствует (ниже некоторого порога) — исполнитель не подаёт воду.
2.
Если давление воды на входе присутствует (выше некоторого порога) — исполнитель подаёт воду на выход.
3.
Если давление воды на выходе низкое — исполнитель не подаёт воду.
4.
Если давление воды на выходе высокое — исполнитель не подаёт воду.
5.
Если давление воды на выходе выше некоторого среднего значения — исполнитель уменьшает подачу воды.
6.
Если давление воды на выходе ниже некоторого среднего значения — исполнитель увеличивает подачу воды.
Получили ОПИСАНИЕ работы исполнителя.
Или АЛГОРИТМ действий исполнителя.
Это описание можно выполнить в виде ДРАКОН-схемы (структурированной блок-схемы):
Вложение:
нс-01.png [ 64.61 КБ | Просмотров: 16414 ]
А что же должно быть написано в иконе Выбор (отмечена комментарием с вопросами)?
По всей видимости: «Состояния входов-выходов». Ведь именно изменения этих состояний командуют исполнителю произвести некоторые действия. Таким образом, состояния входов-выходов можно назвать ВНЕШНИМИ КОМАНДАМИ.
И схема примет такой вид:
Вложение:
нс-02.png [ 64.79 КБ | Просмотров: 16414 ]
Обращу внимание, что команды имеют физическую сущность — давление воды.
Если определить понятие «программа» как последовательность команд, воспринимаемых исполнителем и приводящих к изменению состояния исполнителя, то можно составить программу, с целью получения от исполнителя (насосной станции) определённых действий.
Напомню, что устройство насосной станции неизвестно. Имеется лишь описание внешних проявлений активности данного исполнителя. Соответственно и воздействие на исполнителя возможно только внешнее.
Итак.
Цель: Периодически останавливать и запускать насосную станцию, например каждые полчаса.
Составляем описание (алгоритм) внешней управляющей программы (ВУП) в терминах внешних команд:
1.
Поднять давление в выходной трубе.
2.
Подождать полчаса.
3.
Сбросить давление в выходной трубе.
4.
Подождать полчаса.
5.
Перейти к пункту 1.
Переходим к реализации алгоритма.
Формируем последовательность ВНЕШНИХ КОМАНД - программу.
1.
Подаём насосной станции внешнюю команду на останов подачи воды перекрытием потока воды в выходной трубе.
РЕЗУЛЬТАТ — насосная станция не подаёт воду.
2.
Ждём полчаса и открываем поток воды.
РЕЗУЛЬТАТ — насосная станция подаёт воду.
3.
Ждём полчаса и переходим к пункту 1.
Итог.
С помощью подачи насосной станции последовательности ВНЕШНИХ КОМАНД (программы), добились от неё предсказуемого заранее определённого целевого поведения.
Разница между алгоритмом работы насосной станции и программой (внешней) для насосной станции очевидна:
Алгоритм описывает возможные варианты поведения насосной станции в зависимости от поступающих к ней внешних команд, которые суть изменение физических пространственных характеристик, взаимодействующих с насосной станцией.
Программа же (последовательность внешних команд) жёстко задаёт реальное поведение насосной станции здесь и сейчас.
- - -
Конечно, на практике никто специально не программирует (не командует) таким образом насосной станцией. Это происходит естественным образом, как воздействие внешнего мира на насосную станцию.
Внешний алгоритм работы (поведения) насосной станции обеспечивается её внутренним устройством. Например, программно-техническим комплексом (ПТК), имеющим в своём составе управляющую программу (УП), реализующую определённое поведение внутренних частей насосной станции, с целью получения внешнего поведения насосной станции, согласно приведённому выше алгоритму.
Внутренняя управляющая программа может иметь различную природу:
А.
Памятка для оператора насосной станцией. Оператор вручную меняет параметры внутреннего оборудования станции в зависимости от давления на входе-выходе и в соответствии с содержанием памятки.
Б.
Определённым образом скоммутированные реле.
В.
Программа для программируемого логического контроллера.
Во всех трёх случаях можно изменить управляющую программу в целях изменения внешнего поведения насосной станции.
А: Изменением содержания памятки для оператора.
Б: Перекомутацией реле.
В: Перезаливкой программы в ПЛК.
Поскольку существует управляющая программа, то существует и её алгоритм (описание).
Принципиально важно различать алгоритм работы (внешний) исполнителя и алгоритм управляющей (внутренней) программы исполнителя.
P.S.
Всё сказанное применимо не только к насосным станциям : ))), но и к любому другому исполнителю.
P.P.S.
TAU писал(а):
Программа - нечто легко изменяемое, без необходимости менять структуру или схему устройства.
Вопрос к уважаемому TAU.
Содержит ли (в случае Б) внутреннее устройство насосной станции программу и
можно ли считать перекоммутацию реле (в случае Б) перепрограммированием?