Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Функциональные программы






 

Программы решения функциональных задач предназначены для реализации алгоритмов управления конкретными устройствами и поэтому уникальны. Однако для большинства информационно-управляющих систем можно выделить ряд типичных функциональных задач, для которых используются известные математические методы. Знание этих методов и путей их решения на ЭВМ позволяет существенно облегчить процесс создания функциональных программ. К таким задачам можно отнести:

– оптимизация распределения материалов, ресурсов, потоков информации, потребления электроэнергии и др. сводится к типовым задачам математического программирования. Эта математическая дисциплина посвящена методам решения задач о нахождении экстремумов функций на множествах, определяемых некоторыми ограничениями (равенствами или неравенствами). На её основе разработано весьма много алгоритмов решения как технических, так и экономических задач (составление оптимального расписания, транспортная задача, оптимизирующая потоки грузов от производителя к потребителю, оптимизация расходования материалов и т.д.);

– организация сбора информации в управляющих системах и связанные с ней проблемы обнаружения сигналов на фоне помех, идентификация информации и событий при отсутствии чёткого различия в характеристиках исходных данных и др.;

– прогнозирование изменения информации по априорным данным о возможных характеристиках объектов и результатам предыдущих измерений исследуемых параметров;

– обеспечение взаимодействия человека и машины, состоящее из задач предоставления человеку информации, необходимой для принятия решений и их реализации в процессе управления;

– обеспечение устойчивости управления;

– самонастройка и адаптация и др.

Разработка функциональных программ начинается с выбора языка программирования, целесообразного для решения каждой из функциональных задач. Все языки программирования условно можно разделить на четыре группы сложности:

– языки нижнего уровня – ЯНУ (ассемблеры);

– языки высокого уровня – ЯВУ (Паскаль, С++, Фортран, Алгол и др.);

– языки сверх высокого уровня – ЯСВУ;

– языки ультра сверх высокого уровня – ЯУСВУ.

Чем выше уровень языка, тем меньше требуется времени на разработку программы, тем дешевле программное обеспечение. Но чем выше уровень языка, тем требуется больше память ЭВМ и тем медленнее будет работать система.

В то же время все задачи, связанные с управлением объектами, условно можно разделить на четыре группы сложности:

– к первой группе относятся задачи простейшей обработки информации: считывание показаний датчиков, сравнение некоторых показаний с эталонными значениями, перезапись нескольких байтов информации из одной области памяти в другую и т.д.;

– во вторую группу входят задачи выполнения арифметических или логических операций с однобайтными или двухбайтными целыми числами;

– к задачам третьей группы относятся расчёты, проводимые над числами в формате с плавающей запятой, работа с элементами массивов;

– четвёртая группа задач включает в себя задачи сложной логической и статистической обработки информации, самообучение системы и т.д.

Очевидно, применение языков высокого уровня для решения задач первой и второй групп не приведут к существенной экономии времени при разработке программ и удешевления программного обеспечения. Решение задач третьей и четвёртой групп на языках нижнего уровня может вызвать непреодолимые трудности. Следует учитывать также и то, что специалист, пишущий программу на ассемблере, лучше представляет, как будет функционировать система.

Существуют методы оптимизации уровня языка программирования [3]. В этой работе убедительно доказывается, что для управляющих систем (для решения задач третьей и четвёртой групп) целесообразно использовать языки ЯВУ.

Функциональные программы весьма разнообразны, но все они имеют примерно одинаковое типовое построение: заголовок программы, описание величин зоны обмена, описание величин локальной зоны и тело программы.

Заголовок программы содержит её наименование, отражающее назначение этой программы, и обширные комментарии, в которых указываются задачи, решаемые программой, откуда в неё поступают данные и в каких программах используются результаты её выполнения.

Описание величин зоны обмена определяет характеристики величин, которыми могут обмениваться программы. Это глобальные переменные и константы, являющиеся общими для всех функциональных программ.

Описание величин локальной зоны (константы и переменные, используемые только в этой программе) представляет список наименований этих величин, их типы и правила размещения их в памяти ЭВМ.

Тело программы – последовательность операторов, обеспечивающих выполнение функций программы. Программа может состоять из одного или нескольких блоков, связанных по управлению в иерархическую последовательность. Для больших программ более целесообразным является её блочное построение.

Особенностью программ для управляющих систем является то, что её выполнение может быть прервано в любой момент времени программой более высокого уровня приоритета. Программист должен предусмотреть то, что при возврате к ранее прерванной программе данные промежуточных расчётов, выполненные до прерывания, не должны быть утеряны или искажены.

Второй особенностью функциональных программ является то, что после завершения одной программы должна автоматически включиться другая. Возможны два варианта выполнения этого задания:

– подготовка необходимых переменных и констант следующей задачи и переход к её выполнению осуществляется в конце предыдущей задачи. Этот способ целесообразен, если программы выполняются в строгой последовательности;

– после окончания выполнения программы управление передаётся программе, получившей название " Местный диспетчер". Эта программа определяет следующую задачу и подготавливает для неё данные. Данный способ применяется при сложной последовательности включения программ, зависящей от текущей входной информации, и результатов, полученных при выполнении предыдущих программ.

 



Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.008 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал