Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Управление технологическими процессами
Ни один из процессов создания, преобразования или транспортирования продукции не может происходить без управления. На первых порах производственными процессами полностью управлял сам человек. По мере усложнения процессов требовалось более сложное управление и возможности человека становились ограничивающим фактором. Были разработаны способы измерения параметров процессов (температуры, давления, расхода и других величин) и соответствующие устройства — датчики, а также исполнительные механизмы, оказывающие необходимое воздействие на процесс. Датчики и исполнительные механизмы — два главных элемента системы управления. Но есть еще один очень важный фактор, без которого управление неосуществимо, — это решение. Измеренное значение температуры или давления не может быть непосредственно использовано для приведения в движение исполнительного механизма. Однако его можно использовать для проведения анализа, на основании которого принимается решение и осуществляется управляющее воздействие. Пока не было вычислительных устройств, величину управляющего воздействия выбирал сам оператор. Опыт помогал ему определять, например, насколько надо изменить положение вентиля, когда измеряемый параметр достигает уровня, при котором становится необходимым воздействие на процесс. Он считывал с приборов результаты измерений, производил приближенные вы- 10 числения, принимал решение и оказывал управляющее воздействие. Однако по мере усложнения процессов даже самый квалифицированный оператор перестал справляться с задачами управления. Был разработан аналоговый регулятор, который самостоятельно осуществлял непрерывное регулирование одного параметра. Но при большом числе параметров в одном процессе требовалось много регуляторов, которые не могли взаимодействовать между собой и вести себя как единое целое. По-прежнему оператор должен был принимать решения по управлению всем процессом, даже если регуляторы обеспечивали хорошее регулирование своих параметров. Задача существенно облегчалась, если каждая операция технологического процесса оставалась неизменной в течение длительного времени, например при массовом производстве одних и тех же изделий.
Уже на рубеже 30 —40-х гг. XX в. в России появились автоматические линии для обработки деталей подшипников, а в конце 40-х гг. XX в. у нас впервые в мировой практике было создано комплексное производство поршней для тракторных двигателей с автоматизацией всех процессов — от загрузки сырья до упаковки готовой продукции. Появление электронных вычислительных машин (ЭВМ) позволило рассматривать технологический процесс не как набор независимых операций, а как единое целое. АСУ на базе ЭВМ ведут весь процесс в оптимальном режиме, выполняют пуск и останов технологического оборудования, контролируют его состояние и предотвращают перегрузки, обеспечивают отработку аварийных ситуаций, ведут учет и анализ протекания процесса; они легко перестраиваются при необходимости на выпуск другой продукции. Современные промышленные объекты представляют собой совокупность взаимосвязанных многорежимных управляемых подсистем, объединенных общей системой управления с центральной ЭВМ. Производственные процессы осуществляются на автоматических линиях гибкими производственными модулями на базе минимизированных вариантов ЭВМ — микропроцессоров и мик-роЭВМ. Гибкими их называют потому, что они способны быстро перестраиваться с производства одних изделий на производство других, что позволяет постоянно модифицировать производство, расширять ассортимент и повышать качество продукции. Вспомогательные операции и часть основных операций выполняются промышленными роботами. Все это оборудование совместно с автоматическими системами транспортирования, проектирования и подготовки производства образует гибкое автоматизированное производство. 11 Контрольные вопросы 1. Что изучает кибернетика? 2. Чем занимается автоматика? 3. Какие процессы называются технологическими? 4. Что такое автоматизация? 5. В чем заключается автоматизация технологических процессов? 6. Что такое АСУ ТП? 7. В чем отличие автоматизированной системы управления от автоматической?
8. Человек в автоматизированной системе управления — это хорошо или плохо? 9. Какие виды автоматических систем вы знаете? 10. Перечислите главные элементы системы управления. 11. Какова роль вычислительного устройства в системе управления? 12. Дайте характеристику гибкого автоматизированного производства.
ГЛАВА 2 АЛГОРИТМЫ Автоматизация производства позволяет освободить человека от непосредственного участия в производственных процессах, переложив их выполнение на плечи технических средств. Но для того чтобы «научить» их выполнению какой-либо работы, человеку надо сначала тщательно изучить эту работу самому, осознать цель работы — что именно должно получиться в результате ее выполнения, представить себе до мелочей каждое действие, понять, от каких условий и как оно зависит, и подробно описать порядок выполнения действий. Современные технические средства во многом превосходят человека — они могут выполнять различные действия быстрее и точнее, создавать большие усилия, работать без устали, не совершая ошибок продолжительное время. Но каждое действие, даже самое простое (например, вернуться в исходное положение), они могут выполнить только по команде человека. Следовательно, автоматизацию любого процесса надо начинать с подробного перечня действий, из которых состоит процесс. Такой перечень составляется и записывается по определенным правилам, которые и будут рассмотрены в этой главе. Понятие алгоритма Каждый из нас ежедневно совершает множество действий, не задумываясь о том, как именно мы их совершаем. Мы делаем покупки, пользуемся общественным транспортом, ходим в кино, готовим еду и т.д. Мы действуем автоматически и обычно получаем именно тот результат, к которому стремились. Пример 1. Предположим, что вы проголодались и хотите съесть бутерброд. Что вам для этого нужно сделать? Сначала вам придется заглянуть в хлебницу и холодильник, чтобы взять там хлеб и масло. Вы не будете намазывать масло на хлеб прямо в холодильнике — значит, вам надо будет отнести продукты на стол. Затем вы возьмете нож и отрежете кусок хлеба 13и немного масла. Потом вы намажете масло на хлеб и получите готовый бутерброд. Последовательность ваших действий: /. Открыть мебницу. 2. Взять хлеб. 3. Закрыть хлебницу. 4. Положить хлеб на стол. 5. Открыть холодильник. 6. Взять масло. 7. Закрыть холодильник. 8. Положить масло на стол. 9. Взять нож. 10. Отрезать кусок хлеба. 11. Отрезать немного масла. 12. Намазать масло на хлеб. 13. Положить нож на место. 14. Съесть бутерброд. Изготовление бутерброда — ваша цель. Для ее достижения вы совершаете несколько действий, причем в строго определенной последовательности. Вы не сможете взять масло, не открыв холодильник, или отрезать кусок хлеба, не достав хлеб из хлебницы. Попробуйте пропустить хотя бы одно действие или перепутать порядок действий — вы или сильно осложните продвижение к цели, или вообще останетесь без бутерброда.
Пример 2. Вы получили домашнее задание — решить задачу по математике. Сначала вам придется найти задачу в учебнике, потом записать условие задачи, подобрать нужную формулу, заменить в ней буквы на числа из условия и выполнить вычисления. Последовательность ваших действий: /. Подойти к столу. 2. Взять учебник. 3. Найти в учебнике заданную задачу. 4. Записать условие задачи. 5. Подобрать нужную формулу. 6. Внести в формулу данные из условия. 7. Произвести вычисления. 8. Записать ответ. Вы не можете записать условие задачи, если вы не нашли задачу в учебнике. Вы не можете выполнить вычисления, если вы еще не подобрали нужную формулу. Указанная выше последовательность действий должна быть соблюдена очень строго, только тогда она приведет вас к поставленной цели — решению задачи. Любые изменения в этой последовательности лишат вас возможности достичь намеченной цели. Алгоритм — это последовательность действий, ведущих к достижению цели. 14 Когда вы рассказываете кому-нибудь, как отремонтировать велосипед, сварить суп или подготовиться к рыбалке, вы сообщаете последовательность действий, которые при точном их выполнении приведут к желанной цели. Если в этой последовательности есть сложное действие (например, снять колесо велосипеда), то вы в зависимости от опыта вашего собеседника можете или назвать это действие целиком, или разбить его на ряд более простых действий (ослабить левую гайку, затем ослабить правую гайку и т.д.). При составлении алгоритмов сложные действия часто разбиваются на более простые, вплоть до самых элементарных. Например, в примере 2 действие 2. Взять учебник можно описать следующим образом: /. Протянуть руку к учебнику. 2. Взять учебник. 3. Поднести учебник к себе. Можно это же действие описать еще подробнее: 1. Протянуть руку к учебнику. 2. Обхватить учебник пальцами. 3. Сжать пальцы. 4. Поднять руку с учебником над столом. 5. Поднести учебник к себе. Человеку такая подробная инструкция может показаться смешной, но именно такие действия должен выполнить робот, чтобы перенести какой-либо предмет. Подробная детализация позволяет самое сложное действие представить как совокупность более простых действий, а выполнение самых простых действий можно поручить машине — это прямой путь к автоматизации.
Слово «машина» используется здесь в самом широком смысле — как техническое средство, способное выполнять за человека огромное количество самых разных действий. Причем машины могут выполнять не только чисто физические действия — перемещать что-то в пространстве или обрабатывать с помощью инструментов, но и анализировать, вычислять, оценивать, принимать решения и т.д. Все эти способности машинам дает человек. Машины в отличие от человека не обладают разумом, поэтому они способны выполнять только элементарные действия, точно соответствующие полученным командам. Если для человека алгоритм — это последовательность действий, то для машины — это последовательность команд, которые ей предстоит распознать и выполнить для достижения цели. Распознать команду машина сможет только в том случае, если эта команда однозначна и ее различные толкования невозможны. Поэтому для машины каждая команда должна быть записана особо — на понятном машине языке. 15 ся программой. 2.2. Виды алгоритмов 2.2.1. Линейные алгоритмы Алгоритмы, рассмотренные ранее, являются самыми простыми. Они описывают последовательность действий, которые выполняются в том же порядке, в котором записаны, — последовательно, одно за другим. Предполагается, что для выполнения этих действий все подготовлено и в ходе их выполнения вопросов или неожиданных ситуаций не возникнет, т.е. хлеб уже лежит в хлебнице, масло — в холодильнике, учебник — на столе, а от вас требуется только выполнить описанные в алгоритме действия в заданной последовательности. Алгоритмы, в которых все действия выполняются последовательно, одно за другим, называются линейными алгоритмами. Алгоритмы с ветвлением В реальной жизни не все так просто. Вы захотели съесть бутерброд, открыли хлебницу — а хлеба в ней нет! Что делать? Если очень хочется есть, то придется пойти в магазин, купить хлеб и принести его домой. Таким образом, ваши действия будут зависеть от условия: есть ли хлеб в хлебнице? В этой ситуации последовательность ваших действий после появления желания съесть бутерброд будет следующей: /. Открыть хлебницу. 2. Если хлеб есть, то взять хлеб. 3. Закрыть хлебницу. 4. Если хлеба нет, то пойти в магазин. 5. Купить хлеб. 6. Принести хлеб домой. 7. Положить хлеб на стол и т. д. Полужирным шрифтом выделены строки, на которые вам следует обратить особое внимание, — в данном случае в них заданы условия, определяющие ваши дальнейшие действия. Итак, теперь вы с бутербродом, однако в описании последовательности действий возникла неопределенность. Если строго следовать этому описанию, то несмотря на наличие хлеба в хлебнице и успешное выполнение действия 2....взять хлеб вам все равно придется идти в магазин, выполняя последовательно действия 3, 4, 5 и 6. Иначе не понятно, что делать после действия 3. Закрыть
16 хлебницу. Конечно, вы как человек разумный сообразите, что вам делать. А как быть, если в подобной ситуации окажется машина, которой поручено выполнение алгоритма? Очевидно, в такой ситуации в описание алгоритма надо внести некоторые уточнения. Во-первых, надо указать, что в какой-то момент последовательность выполнения действий может быть нарушена, и тогда нужно будет сделать выбор очередного действия. Этот выбор будет зависеть от выполнения (или невыполнения) некоторого условия (есть ли хлеб в хлебнице). Во-вторых, надо указать, какими именно должны быть очередные действия как при том, так и при другом результате выбора. Признаком ситуации выбора служит слово «если», которое вводит условие (хлеб есть}. Но поскольку хлеба может и не быть, в алгоритме неизбежно еще одно «если», которое вводит противоположное условие (хлеба нет). Чтобы не запутаться в этих условиях, второе условие обычно заменяют словом «иначе»: /. Открыть хлебницу. 2. Если хлеб есть, то взять хлеб. 3. Закрыть хлебницу. 4. Иначе пойти в магазин. 5. Купить хлеб. 6. Принести хлеб домой. 7. Положить хлеб на стол и т. д. Таким образом, главным является первое условие, вводимое словом «если». В зависимости от того, выполнено это условие или нет, вы переходите либо к действию J, либо к действиям 4, 5, 6. Эти варианты действий называются ветвями алгоритма. Алгоритмы, в которых производится выбор одного из нескольких вариантов действий в зависимости от выполнения некоторого условия, называются алгоритмами с ветвлением, или условными алгоритмами. Где начинается и где заканчивается каждая ветвь? При выполнении условия Если последовательность действий в алгоритме продолжается так, как она записана, — ведь никаких оснований для ее нарушения нет. Вы выполняете действия, образующие первую ветвь. Где она заканчивается? Там, где заканчиваются действия, предусмотренные условием Если, т.е. перед вторым условием — Иначе. А если условие Если не выполнено? Тогда появляются основания для нарушения последовательности действий. После проверки выполнения (точнее, невыполнения) условия Если начинается выполнение действий, стоящих в алгоритме после Иначе, т.е. действий второй ветви. Итак, в зависимости от выполнения условия Если вы совершаете действия либо первой, либо второй ветви. А дальше — опять не понятно: с какого места продолжать выполнение алгоритма, 17 например, после выполнения действия 3 первой ветви? Вы-то можете догадаться, что следующим в алгоритме должно быть действие 7. Положить хлеб на стол, но как в подобной ситуации быть машине? Она-то догадываться не умеет! Для снятия неопределенности в алгоритм вводят специальный указатель, отделяющий ветви от продолжения алгоритма. Обычно таким указателем является фраза Конец ветвления. После завершения действий любой ветви надо отыскать фразу Конец ветвления и продолжить выполнение алгоритма с действия, которое следует после этой фразы. Алгоритм будет выглядеть следующим образом: /. Открыть мебницу. 2. Если хлеб есть, то взять хлеб. 3. Закрыть хлебницу. 4. Иначе пойти в магазин. 5. Купить хлеб. 6. Принести Xjw 6 домой. 7. Конец ветвления. 8. Положить хлеб на стол и т. д. Теперь, независимо оттого, какая именно ветвь алгоритма была выполнена, очередным будет действие, стоящее после фразы Конец ветвления (8. Положить хлеб на стол). Рассмотрим еще один алгоритм с ветвлением. Предположим, что надо произвести сортировку цилиндрических изделий по диаметру и распределить их по двум магазинам (ящикам, коробкам). Изделия поступают с конвейера в устройство, которое измеряет их диаметр, и в зависимости от результатов измерения другое устройство помешает изделие в тот или иной магазин. Алгоритм сортировки может быть следующим: /. Установить изделие в измерительное устройство. 2. Измерить диаметр изделия. 3. Если диаметр больше заданного, то поместить изделие в магазин № 1. 4. Иначе поместить изделие в магазин № 2. 5. Конец ветвления. Исполнителем этого алгоритма может быть как человек, так и машина (например, робот). Если выполнение подобного алгоритма предполагается поручить машине, то нужно быть уверенным, что она не только поймет каждую команду, но и сумеет сделать выбор, т.е. машина должна иметь технические средства, способные определить, выполнено ли условие Если. В нашем случае машина должна не только измерить диаметр изделия, но и сравнить его с заданным диаметром и по результатам сравнения принять решение о помещении изделия в нужный магазин. В автоматических системах, работающих без участия человека, при возникновении различных ситуаций машине приходится са- 18 |мой принимать решение о выборе варианта действий, поэтому в таких системах часто используются алгоритмы с ветвлением. Любую ситуацию, в которой нужно выбирать один из двух или нескольких вариантов действий, всегда можно свести к одному или нескольким ветвлениям алгоритма. 2.2.3. Циклические алгоритмы Часто мы наблюдаем или участвуем в процессах, в которых много раз подряд выполняются одни и те же действия. Например, рассмотрим, как работает продавец в магазине. Каждого покупателя он обслуживает по одной схеме: выдать товар —получить деньги— выбить чек—дать сдачу. Меняются только вид и количество товаров. Контролер в кинотеатре работает по схеме: взять билет — проверить сеанс — оторвать контроль—вернуть билет. И так сотни раз в течение дня. Многократно повторяют одни и те же действия грузчик, разгружающий машину с продуктами; рабочий на конвейере; маляр, оклеивающий комнату обоями; и вы сами, когда пьете чай или отправляетесь утром на занятия. Вернемся к рассмотрению алгоритма сортировки изделий. В этом алгоритме описаны однократные действия, производимые с одним изделием. Оно отправлялось в магазин № 1 или № 2, и на этом алгоритм заканчивался. Но реальные изделия поступают на сортировку, скорее всего, в большом количестве. Значит, описанные в алгоритме действия должны повторяться вновь и вновь. Как долго? Очевидно, пока изделия имеются на конвейере. Как изменить алгоритм, чтобы процесс сортировки повторялся многократно? Какие именно действия повторять и до каких пор? Существует два варианта: • задать условие, при выполнении которого действия нужно повторять, а как только условие будет нарушено — прекратить повторение и перейти к продолжению алгоритма (например, красить доски забора, пока он не закончится, а затем приступить к • задать необходимое количество повторений одних и тех же действий (например, налить в бочку 10 ведер воды). Первый вариант более универсальный — он подходит для забора с любым количеством досок, в том числе и заранее неизвестным. Но исполнитель этого варианта алгоритма должен уметь проверять выполнение заданного условия (закончился ли забор?), что не трудно для человека, но может оказаться трудным для машины. А вот второй вариант для машины не проблема — механические, электрические, электронные и другие счетчики существуют давно и в самых разных видах. Но этот вариант лишен гибкости, и 19 при изменении условий выполнения алгоритма (например, при замене бочки на меньшую) нужно изменять команды в самом алгоритме (устанавливать другое количество наливаемых ведер). Повторяющаяся в алгоритме группа действий образует цикл. Алгоритмы, в которых повторяются одни и те же действия, называются циклическими алгоритмами. Когда цикл выполнен нужное количество раз, исполнитель алгоритма переходит к дальнейшим действиям, находящимся уже за пределами цикла. Поскольку в алгоритме сортировки изделий количество изделий заранее неизвестно, воспользуемся первым вариантом — попробуем найти условие, выполнение которого необходимо для повторения процесса сортировки. Таким условием является наличие очередного изделия на конвейере. Если сортировку производит человек, то он легко обнаружит это изделие. Если же исполнитель алгоритма сортировки — машина, то она должна уметь проверять наличие изделия на конвейере. Как машина сможет это сделать, рассмотрим далее. А сейчас дополним алгоритм сортировки условием повторения цикла: /. Пока на конвейере есть изделие, выполнять действия: 2. Установить изделие в измерительное устройство. 3. Измерить диаметр изделия. 4. Если диаметр больше заданного, то поместить изделие в магазин № 1. 5. Иначе поместить изделие в магазин № 2. 6. Конец ветвления. 7. Конец цикла. Здесь полужирным шрифтом выделены строки, имеющие отношение к повторению действий, т.е. к циклу. В алгоритме есть и ветвление, но оно записано светлым шрифтом. Для того, чтобы исполнителю было понятно, какие именно действия нужно повторять, эти действия (цикл) должны быть как-то выделены, т.е. должны быть указаны границы цикла. Так как повторение цикла зависит от выполнения заданного условия /. Пока на конвейере..., строка с этим условием может быть одной из границ цикла. Другую границу устанавливают строкой Конец цикла. Если условие / соблюдено, то выполняются действия 2... 6, расположенные между указанными границами. При нарушении условия 1 исполнителю нужно будет перейти к действию, следующему за строкой 7. Конец цикла (если имеется продолжение алгоритма). В рассмотренном алгоритме проверка условия, определяющего необходимость повторения цикла, производилась до начала выполнения самих действий цикла. Но бывает и так, что оценить необходимость повторения цикла можно только по результату, полученному после его выполнения. Выбор того или иного варианта зависит от смысла выполняемых действий. 20 Например, при погрузке контейнеров в железнодорожный вагон только после погрузки очередного контейнера можно определить, есть ли еще свободное место в вагоне и стоит ли продолжать погрузку. В этом случае строка с условием повторения цикла является его нижней границей, а верхнюю границу устанавливают строкой Начало цикла. Составим циклический алгоритм погрузки контейнеров в вагон: /. Начало цикла. 2. Поднять краном очередной контейнер. 3. Переместить контейнер к вагону. 4. Погрузить контейнер в вагон. 5. Вернуть кран в исходное положение. 6. Пока в вагоне есть свободное место, повторять действия цикла. 7. Закрыть и опечатать дверь вагона. При выполнении условия 6 будут повторяться действия 2...5, после чего снова будет проверяться выполнение условия 6. Если оно окажется нарушенным, то повторения цикла не будет и исполнитель перейдет к команде 7. Закрыть и опечатать дверь вагона, следующей за условием 6. В этот алгоритм можно ввести и предварительное условие, проверяемое до начала выполнения действий алгоритма. Ведь предназначенных для погрузки контейнеров может не оказаться вообще или их может оказаться недостаточно для заполнения всего вагона, тогда погрузка будет производиться лишь при наличии контейнеров. В этом случае весь записанный ранее алгоритм будет представлять собой цикл, повторяемый при условии наличия контейнеров, причем проверка выполнения этого условия тоже включается в цикл: 1. Начало цикла. 2. Пока есть контейнер для погрузки, выполнять действия: 3. Поднять краном очередной контейнер. 4. Переместить контейнер к вагону. 5. Погрузить контейнер в вагон. 6. Вернуть кран в исходное положение. 7. Пока в вагоне есть свободное место, повторять действия цикла. 8. Конец цикла. При нарушении либо условия 2, либо условия 7 исполнитель переходит к действию, следующему за строкой 8. Конец цикла. Мы рассмотрели два вида циклических алгоритмов: с предварительным условием (предусловием) и с последующим условием (постусловием). Рассмотрим второй вариант циклических алгоритмов — с заданным заранее количеством повторений. Как уже было ска- 21 зано, по таким алгоритмам работают исполнители, не умеющие оценивать выполнение (или невыполнение) того или иного условия, но зато умеющие работать с числами. Например, на химическом предприятии нужно обеспечить автоматическое заполнение жидкостью 10 резервуаров. Счетчик количества повторяющихся операций в исходном состоянии установлен на ноль. Резервуары расположены в один ряд, вплотную друг к другу. Шланг, из которого вытекает жидкость, может перемещаться вдоль резервуаров и в исходном положении находится вблизи первого резервуара. Каждый резервуар имеет указатель, сигнализирующий о его заполнении. Алгоритм заполнения резервуаров может быть следующим: /. Начало цикла. 2. Переместить шланг на ширину резервуара. 3. Открыть вентиль на шланге. 4. Проверить наличие сигнала указателя о заполнении резервуара. 5. При поступлении сигнала закрыть вентиль. 6. Увеличить содержимое счетчика на 1. 7. Пока содержимое счетчика не превысит 10, повторять действия. Это алгоритм с постусловием, так как только после заполнения очередного резервуара определяется, нужно ли повторять операцию заполнения еще раз (т.е. заполнены ли все 10 резервуаров). Но можно составить этот алгоритм и с предусловием: 1. Пока содержимое счетчика меньше 10, выполнять действия: 2. Увеличить содержимое счетчика на 1. 3. Переместить шланг на ширину резервуара. 4. Открыть вентиль на шланге. 5. Проверить наличие сигнала указателя о заполнении резервуара. 6. При поступлении сигнала закрыть вентиль. 7. Конец цикла. В обоих алгоритмах после того, как содержимое счетчика станет равным 10, очередная проверка условия повторения цикла (Пока содержимое счетчика...) покажет, что теперь оно уже не выполняется, и исполнитель перейдет к следующему действию 8 (если оно есть в алгоритме). В двух последних алгоритмах фактически присутствует проверка условия Если сигнал указателя поступил... Очередное действие ...закрыть вентиль выполняется только при ответе «Да», т.е. этот участок алгоритма содержит ветвление. Но так как мы рассматриваем организацию циклов, на которую наличие ветвления внутри цикла не влияет, этот участок алгоритма приведен без излишней детализации. 22 Вспомогательные алгоритмы Среди множества действий, выполняемых нами ежедневно, немало таких, которые делаются одинаково, хотя и направлены на достижение совершенно разных целей. Например, мы действуем практически одинаково, покупая хлеб, конфеты, книгу, билет в кино или на поезд. Алгоритм любых наших покупок может выглядеть следующим образом: 7. Достать кошелек. 2. Взять из кошелька деньги. 3. Дать деньги продавцу. 4. Назвать требуемый товар. 5. Получить товар. 6. Положить товар в сумку (в пакет, в карман и т.д.). 7. Взять сдачу. 8. Положить сдачу в кошелек. Если все действия в течение дня описать в виде алгоритма, то в нем, скорее всего, ни один раз встретятся эти восемь действий, только название товара будет меняться. Пять покупок, сделанных в этот день, добавят в алгоритм дня 40 строчек. А если покупок 10, то строчек будет 80. Возможно даже, что именно эти строчки составят значительную долю алгоритма дня, хотя их информационная ценность очень мала — фактически 10 раз будет повторять-(ся описание одной и той же последовательности действий. В этой ситуации удобно выделить алгоритм покупок из алгоритма всего дня и записать его отдельно под заголовком, например, «Покупка X». Тогда в алгоритме дня каждая покупка будет представлена только одной строкой вместо восьми; лишь значение Сбудет меняться (хлеб, книга и т.д.). Записав один раз этот алгоритм, его можно вставлять в любой другой алгоритм, описывающий наши действия, если среди этих действий будет покупка чего-либо. Для этого достаточно упомянуть заголовок алгоритма и указать конкретное значение X. Алгоритмы, целиком и многократно используемые в составе других алгоритмов, называются вспомогательными алгоритмами. Вспомогательные алгоритмы очень удобны при решении математических задач. Например, решение квадратных уравнений или вычисление функции sinx с помощью ЭВМ представляет собой длинную цепочку действий. Если все пункты этих алгоритмов каждый раз записывать в основном алгоритме решения задачи, то он становится слишком длинным. Удобнее записать, например, вычисление sinjc в виде вспомогательного алгоритма, а в основном алгоритме в нужных местах просто сделать ссылки на него. |Для упрощения таких ссылок вспомогательный алгоритм всегда снабжают заголовком, по которому его можно вызвать. После 23 вызова выполнение основного алгоритма приостанавливается, пока не будет выполнен вспомогательный алгоритм. При этом вспомогательному алгоритму из основного алгоритма передается информация, обработка которой и является задачей вспомогательного алгоритма. Такой информацией может быть, например, значение х при вычислении sin x или название товара при совершении покупки. Результаты выполнения вспомогательного алгоритма передаются в основной алгоритм. Например, при изготовлении разных изделий может выполняться операция нагрева какой-либо детали или вещества с помощью нагревательного элемента до той или иной температуры. Обозначим эту температуру /, а алгоритм нагрева назовем «Нагрев до t». Он может быть представлен в следующем виде: «Нагрев до f» 1. Ввести значение t. 2. Включить нагреватель. 3. Пока температура меньше 1, выполнять действия: 4. Подождать 5 с. 5. Измерить температуру. 6. Конец цикла. 7. Выключить нагреватель. При выполнении этого алгоритма каждые 5 с измеряется температура и, пока она меньше /, нагреватель остается включенным. Как только температура достигнет значения /, условие 3 окажется нарушенным и исполнитель алгоритма перейдет к действию, следующему за строкой 6. Конец цикла, т.е. выключит нагреватель. Предположим, что имеется основной алгоритм, в котором есть этап нагрева жидкости до 150 °С. В этом случае только что рассмотренный алгоритм Нагрев до t может использоваться как вспомогательный: /. Налить в резервуар жидкость № 1. 2. Налить в резервуар жидкость № 2. 3. Перемешать жидкости. 4. Нагрев до 150 °С. 5. Открыть заслонку и т. д. Здесь строка 4 означает вызов вспомогательного алгоритма «Нагрев до t», которому и передается значение температуры / = = 150°С. После выполнения вспомогательного алгоритма, т.е. нагрева жидкости до 150 "С, исполнитель переходит к следующему действию 5. Алгоритм нагрева может еще неоднократно использоваться в этом же основном алгоритме или в любом другом алгоритме, обеспечивая каждый раз нагрев до нужной температуры /. Вспомогательный алгоритм используют, например, для периодической уборки стружки на токарных станках, работающих в автоматическом режиме. В рассмотренном ранее алгоритме сортировки изделий измерение диаметра изделия тоже производится с 24 помощью вспомогательного алгоритма. В кулинарной книге рецепт (алгоритм) приготовления, например, слоеного теста описывается только один раз, а в рецептах всех изделий из этого теста приводится ссылка на этот вспомогательный алгоритм. Одни и те же вспомогательные алгоритмы могут использоваться в основных алгоритмах, предназначенных для решения совершенно разных задач. Поэтому в сложных автоматических системах, где количество выполняемых операций велико, обычно создаются библиотеки вспомогательных алгоритмов.
|
|||||||||
Последнее изменение этой страницы: 2021-04-14; просмотров: 120; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.14.253.221 (0.144 с.) |