Что такое функциональная структура алгоритма
Функциональная и алгоритмическая структуры
Системы управления (СУ)
Изучение и математический анализ системы управления существенно облегчаются, если её предварительно условно расчленить на типовые элементы, выявить физические взаимосвязи между элементами и отобразить их в какой-либо условной форме на схеме.
Процесс формализации физических явлений, происходящих в системе управления весьма трудоёмок, ответственен и требует хорошего знания конструкции и принципа действия системы и её элементов.
СУ может быть разделена на части по различным признакам: по назначению частей, алгоритмам преобразования информации и конструктивной обособленности. Соответственно различают функциональные, алгоритмические и конструктивные структуры.
Функциональная структура отображает функции, выполняемые отдельными частями системы. Такими функциями могут быть: получение информации о состоянии объекта, преобразование сигнала, сравнение сигналов и т. п. Части функциональной структуры называют частями и блоками. Названия элементов и блоков указывают на выполняемые функции, например, задающий элемент, управляющий блок, исполнительный блок.
Алгоритмическая структура характеризует алгоритмы преобразования информации в системе, и состоит из элементарных алгоритмических звеньев и связей между ними.
Элементарное алгоритмическое звено – часть алгоритмической структуры СУ, соответствующая элементарному алгоритму преобразования сигнала. Каждое элементарное звено выполняет одну простейшую математическую или логическую операцию. На схемах элементарные звенья изображают прямоугольниками, внутри которых записывают соответствующие операторы преобразования сигналов. Иногда вместо операторов в формульном виде приводят графически зависимости выходной величины от входной или графики переходных функций.
Различают следующие виды элементарных звеньев: статические, динамические, арифметические и логические.
У статического звена мгновенное значение выходного сигнала зависит только от значения входного сигнала в данный момент и не зависит от характера изменения входного сигнала во времени. Связь между входным и выходным сигналами статического звена описывается обычно алгебраической функцией. К статическим звеньям относятся различные безынерционные (нелинейные и линейные) преобразователи. Статическим звеном является, например, двухпозиционное реле (рис. 1.3,а). На рисунке показаны также условное изображение реле на схемах и графики изменения входного и выходного сигналов.
Динамическое звено преобразует входной сигнал в соответствии с операциями интегрирования и дифференцирования во времени. Значение выходного сигнала динамического звена зависит не только от текущего значения входного сигнала, но и от его предыдущих значений, т. е. от характера изменения входного сигнала. Большинство динамических звеньев описывается обыкновенными дифференциальными уравнениями. К классу динамических звеньев относятся конструктивные элементы, обладающие способностью накапливать какой-либо вид энергии или вещества, например, дифференцирующая rC-цепь (рис. 1.3,б).
Арифметическое звено осуществляет одну из арифметических операций: суммирование, вычитание, умножение, деление. Наиболее часто встречающееся в автоматике арифметическое звено – звено, выполняющее алгебраическое суммирование сигналов, называют сумматором (рис. 1.3,в). На рисунке приведены также два примера суммирования сигналов – электрического (гальванического) и магнитного.
Логическое звено выполняет какую-либо логическую операцию: логическое умножение («И»), сложение («ИЛИ») и т. д. Входной и выходной сигналы логического звена являются обычно дискретными и рассматриваются как логические переменные.
Рис. 1.3. Элементарные алгебраические звенья: а – статическое;
б – динамическое; в – арифметическое
Графическое изображение любой структуры СУ, содержащее условное изображение её частей, называют структурной схемой. В соответствии с классификацией структур различают три типа структурных схем: функциональные, алгоритмические и конструктивные.
К конструктивным схемам относятся кинематические схемы различных устройств, принципиальные и монтажные схемы электрических соединений и т. п.
Функциональные алгоритмические схемы состоят из условных изображений элементов и звеньев (обычно в виде прямоугольников) и различных связей, изображаемых в виде линий со стрелками. Стрелки показывают направление передачи воздействия. Каждая линия соответствует обычно одному сигналу или одному воздействию. Иногда применяют жирные или сдвоенные линии: на функциональных схемах – для обозначения материальных и энергетических потоков, на алгоритмических схемах – для обозначения векторных величин. Около каждой линии указывают физическую величину, характеризующую данное воздействие. Обычно вначале составляют функциональную схему системы, затем – алгоритмическую.
Структурные схемы могут быть составлены с большей или меньшей степенью детализации. Схемы, на которых показаны лишь главные или укрупнённые части СУ, называются обобщёнными (см. рис. 1.1).
На рис. 1.4,а в качестве примера изображена функциональная структура СУ, в состав которой входят наиболее распространённые функциональные элементы: задающий элемент (ЗЭ), сравнивающий элемент (СЭ), датчики управляемой величины x (Дx) управляющего воздействия у (Ду), регулирующее устройство (РУ), усилитель мощности (УМ), исполнительный механизм (ИМ), исполнительный (регулирующий) орган (ИО).
В качестве исполнительных механизмов используют электрические, гидравлические и пневматические двигатели, электромагниты. Регулирующими органами обычно служат заслонки, вентили, различные дозирующие устройства (питатели). Они передают управляющее воздействие непосредственно на объект, изменяя количество поступающих в объект вещества или энергии (сырья, воды, воздуха, топлива, реагентов и т. д.).
Рис. 1.4. Функциональная (а) и алгоритмическая (б)
структуры системы управления
На функциональных схемах конкретных СУ указывают не общее назначение блоков, а их конкретное наименование, например: двигатель (Д), тиристорный преобразователь (ТП), тахогенератор (ТГ), шибер (Ш), весоизмеритель (В) и т. д.
На рис. 1.4,б приведена алгоритмическая схема системы, функциональная структура которой была рассмотрена выше. Легко заметить, что в данном примере каждому элементу функциональной структуры соответствует определённое алгоритмическое звено. В общем случае такое совпадение необязательно.
Дата добавления: 2018-05-02 ; просмотров: 498 ; Мы поможем в написании вашей работы!
Что такое функциональная структура алгоритма
Метод нисходящего проектирования предполагает последовательное разложение общей функции обработки данных на простые функциональные элементы («сверху-вниз»).
В результате строится иерархическая схема, отражающая состав и взаимоподчиненность отдельных функций, которая носит название функциональная структура алгоритма (ФСА) приложения.
Последовательность действий по разработке функциональной структуры алгоритма приложения:
Разложение должно носить строго функциональный характер, т.е. отдельный элемент ФСА описывает законченную содержательную функцию обработки информации, которая предполагает определенный способ реализации на программном уровне.
Функции ввода-вывода информации рекомендуется отделять от функций вычислительной или логической обработки данных.
По частоте использования функции делятся на:
Степень детализации функций может быть различной, но иерархическая схема должна давать представление о составе и структуре взаимосвязанных функций и общем алгоритме обработки данных. Широко используемые функции приобретают ранг стандартных (встроенных) функций при проектировании внутренней структуры программного продукта.
Пример 18.4. Некоторые функции, например Ф2, далее неразложимы на составляющие: они предполагают непосредственную программную реализацию.
Другие функции, например Ф1, Фm, могут быть представлены в виде структурною объединения более простых функций, например Ф11, Ф12 и т.д. Для всех функций-компонентов осуществляется самостоятельная программная реализация; составные функции (типа Ф1, Фm) реализуются как программные модули, управляющие функциями-компонентами. например, в виде программ-меню.
Рис. 18.2. Функциональная структура приложения:
МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ
Свойства модуля
Модульное программирование основано на понятии модуля — логически взаимосвязанной совокупности функциональных элементов, оформленных в виде отдельных программных модулей.
Таким образом, модули содержат определение доступных для обработки данных, операции обработки данных, схемы взаимосвязи с другими модулями.
Модульная структура программных продуктов
Однотипные функции реализуются одними и теми же модулями. Функция верхнего уровня обеспечивается главным модулем; он управляет выполнением нижестоящих функций, которым соответствуют подчиненные модули.
При определении набора модулей, реализующих функции конкретного алгоритма, необходимо учитывать следующее:
Рис. 18.3. Функционально-модульная структура приложения
Пример 18.5. Некоторые функции могут выполняться с помощью одного и того же программного модуля (например, функции Ф1 и Ф2).
Состав и вид программных модулей, их назначение и характер использования в программе в значительной степени определяются инструментальными средствами. Например, применительно к средствам СУБД отдельными модулями могут быть:
Алгоритмы большой сложности обычно представляются с помощью схем двух видов:
Наиболее часто детально проработанные алгоритмы изображаются в виде блок-схем согласно требованиям структурного программирования; при их разработке используются условные обозначения согласно ГОСТ 19.003-80 ЕСПД (Единая система программной документации). Обозначения условные графические, ГОСТ 19.002-80 ЕСПД. Схемы алгоритмов и программ. Правила обозначения.
СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ
Структурное программирование основано на модульной структуре программного продукта и типовых управляющих структурах алгоритмов обработки данных различных программных модулей (рис. 18.4).
Рис. 18.4. Блок-схема алгоритма поиска в базе данных.
В любой типовой структуре блок, кроме условного, имеет только один вход и выход, безусловный переход на блок с нарушением иерархии запрещен (оператор типа GoTo в структурном программировании не используется). Виды основных управляющих структур алгоритма приведены в табл. 18.1.
Пример 18.6. Алгоритм поиска в базе данных сведений о максимальном окладе сотрудников (рис. 18.4).
Таблица 18.1. Управляющие структуры алгоритмов
Последовательность включает фиксированный перечень блоков (операторов). Каждый очередной блок обрабатывается после завершения предыдущего без дополнительных условий.
Для изменения порядка обработки блоков редактируется последовательность выполняемых
Если ни одно из условий не выполнилось, происходит выход.
Условие может содержать счетчик повторений тела цикла либо логическое условие.
Алгоритмы и величины
Этапы решения задачи на компьютере
Часто эту последовательность называют технологической цепочкой решения задачи на компьютере. Непосредственно к программированию в этом списке относятся пункты 3, 4, 5. На этапе постановки задачи должно быть четко определено, что дано и что требуется найти. Здесь очень важно определить полный набор исходных данных, необходимый для решения задачи. Второй этап — формализация задачи. Здесь чаще всего задача переводится на язык математических формул, уравнений, отношений. Если решение задачи требует математического описания какого-то реального объекта, явления или процесса, то формализация равносильна получению соответствующей математической модели. Третий этап — построение алгоритма. Опытные программисты часто сразу пишут программы на языках программирования, не прибегая к каким-либо специальным способам описания алгоритмов (блок-схемам, псевдокодам). Однако в учебных целях полезно использовать эти средства, а затем переводить полученный алгоритм на язык программирования. Первые три этапа — это работа без компьютера. Дальше следует собственно программирование на определенном языке в определенной системе программирования. Последний (шестой) этап — это уже использование разработанной программы в практических целях. Выполнение учебных заданий на программирование обычно заканчивается пятым этапом, т. е. доказательством правильности составленной программы. Таким образом, программист должен обладать следующими знаниями и навыками: • уметь строить алгоритмы; Основой программистской грамотности является развитое алгоритмическое мышление. Понятие алгоритмаОдним из фундаментальных понятий в информатике является понятие алгоритма. Сам термин «алгоритм» пришел из математики. Это слово происходит от «Algorithmi» — латинского написания имени Мухамеда аль-Хорезми (787-850 гг.), выдающегося математика средневекового Востока. В XII веке был осуществлен латинский перевод его математического трактата, из которого европейцы узнали о десятичной позиционной системе счисления и правилах арифметики многозначных чисел. Именно эти правила в то время называли алгоритмами. Сложение, вычитание, умножение «столбиком», деление «уголком» многозначных чисел — вот первые алгоритмы в математике. Правила алгебраических преобразований, вычисление корней уравнений также можно отнести к математическим алгоритмам. В наше время понятие алгоритма трактуется шире.
В школьном курсе информатики с понятием алгоритма, с методами построения алгоритмов ученики впервые знакомятся на примерах учебных исполнителей: Робота, Черепашки, Чертежника и др. В учебнике для 9 класса описан графический исполнитель — ГРИС. Эти исполнители ничего не вычисляют. Они создают рисунки на экране, перемещаются в лабиринтах, перетаскивают предметы с места на место. Таких исполнителей принято называть исполнителями, работающими в обстановке. В разделе информатики под названием «Программирование» изучаются методы программного управления работой компьютера. Следовательно, в качестве исполнителя выступает компьютер. Он работает с величинами — различными информационными объектами: числами, символами, кодами и пр. Поэтому алгоритмы, предназначенные для управления компьютером, принято называть алгоритмами работы с величинами. Данные и величины
По отношению к программе данные делятся на исходные, результаты (окончательные данные) и промежуточные данные, которые получаются в процессе вычислений (рис. 3.1). Для успешного освоения программирования необходимо усвоить следующее правило: всякая величина занимает свое определенное место в памяти компьютера. Иногда говорят — ячейку памяти. Хотя термин «ячейка», с точки зрения архитектуры современных компьютеров, несколько устарел, однако в учебных целях его удобно использовать. У всякой величины имеются три основных свойства: имя, значение и тип. На уровне команд процессора величина идентифицируется адресом ячейки памяти, в которой она хранится. В алгоритмах и языках программирования величины делятся на константы и переменные. Константа — неизменная величина, и в алгоритме она представляется собственным значением, например: 15, 34.7, ‘k’, true. Переменные величины могут изменять свои значения в ходе выполнения программы и представляются символическими именами — идентификаторами, например: X, S2, cod15. Любая константа или переменная занимают ячейку памяти, а значение этих величин определяется двоичным кодом в этой ячейке. Теперь о типах величин — типах данных. С понятием типа данных вы уже встречались, изучая в курсе информатики основной школы электронные таблицы и базы данных. Это понятие является фундаментальным для программирования. В каждом языке программирования существует своя концепция типов данных, своя система типов. Однако в любой язык входит минимально необходимый набор основных типов данных, к которому относятся целый, вещественный, логический и символьный типы. С типом величины связаны три ее свойства: множество допустимых значений, множество допустимых операций, форма внутреннего представления. В таблице 3.1 представлены эти свойства основных типов данных. Типы констант определяются по контексту (т. е. по форме записи в тексте), а типы переменных устанавливаются в описаниях переменных. Есть еще один вариант классификации данных: классификация по структуре. Данные делятся на простые и структурированные. Для простых величин (их еще называют скалярными) справедливо утверждение: одна величина — одно значение. Для структурированных: одна величина — множество значений. К структурированным величинам относятся массивы, строки, множества и др.
Как известно, всякий алгоритм (программа) составляется для конкретного исполнителя, в рамках его системы команд. О каком же исполнителе идет речь в теме «Программирование обработки информации»? Ответ очевиден: исполнителем является компьютер. Точнее говоря, исполнителем является комплекс: компьютер + система программирования (СП). Программист составляет программу на том языке, на который ориентирована СП. Схематически это изображено на рис. 3.2, где входным языком исполнителя является язык программирования Паскаль. Независимо от того, на каком языке программирования будет написана программа, алгоритм решения любой задачи на компьютере может быть составлен из команд: • присваивания; Для описания алгоритмов в дальнейшем мы будем использовать блок-схемы и учебный Алгоритмический язык, применяемый в школьном курсе информатики. Вопросы и задания1. Перечислите и охарактеризуйте этапы решения задач на компьютере. 2. Дайте определение алгоритма. 3. Что такое «система команд исполнителя алгоритмов» (СКИ)? 4. Какими возможностями обладает компьютер как исполнитель алгоритмов? 5. Назовите команды, входящие в СКИ компьютера, из которых составляется любая программа обработки данных. 6. Перечислите различные варианты классификации данных. 7. Придумайте пример задачи, решаемой на компьютере, и назовите для нее исходные, промежуточные и итоговые данные. Структура алгоритмов
|