Средства структурного программирования


Как известно, любая программа строится из трёх базовых управляющих конструкций: последовательность, ветвление, цикл. Последовательность — однократное выполнение операций в том порядке, в котором они записаны в тексте программы. Ветвление — однократное выполнение одной из двух или более операций, в зависимости от выполнения заданного условия. Цикл — многократное исполнение одной и той же операции до тех пор, пока выполняется заданное условие (условие продолжения цикла). Все перечисленные конструкции должны иметь один вход и один выход.

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

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

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

1. Sequence Structure (последовательная структура) – это инструмент типа многостраничного блокнота. При вызове структуры устанавливается одна страница. Для добавления страниц из контекстного меню вызывается команда Add Frame After (добавить кадр после) или Add Frame Before (добавить кадр перед). Структура позволяет четко определять последовательность отдельных вычислений.

На рисунке 13.1 показан простейший пример , в котором сформированы 2 кадра. На одном вводится А и передается для обработки и вывода.

Рисунок 13.1

 

2. Case Structure(структура с выбором) – это инструмент типа условного оператора текстовых программ используется для создания разветвляющих процессов в зависимости от выполняемого условия, подключаемого к терминалу выбора (рисунок 13.2)..

Рисунок 13.2

При вызове структуры по умолчанию устанавливаются сразу две страницы –TrueиFalse(истина и ложь), которые переключаются между собой стрелками вверху рамки или левым щелчком на прямоугольнике и выбором нужной позиции. При работе программы сначала проверяется некоторое условие, а затем по результату проверки выбирается нужная страница, что соответствует условному оператору if<условие>then <оператор> else <оператор>в текстовых языках программирования.

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

При нажатии правой клавиши мыши по контекстному меню можно добавлять страницу после (Add Case After), дублировать страницу (Duplicate Case), удалять данную страницу (Delete This Case), удалить пустые страницы (Remov Empty Cases), показывать страницу (Show Case), назначить страницей по умолчанию (Make This The Default Case).

Ниже на рисунке 13.3 показано применение структуры Case для определения при генерации 1000 случайных чисел с равномерным распределением их количества по величмне меньше 0,5 и больше.

Рисунок 13.3

3. For Loop(цикл определенный) – это оператор цикла, в котором заранее указывается количество повторяемых итераций (цикл с заданным числом проходов). На пиктограмме цикла обязательны терминалы для установки

числа повторенийNи счетчика циклов i (i=0,1,2, … , N).

В поле цикла записываются операции, которые должны выполняться при каждом значении переменной цикла i.В цикле предусмотрена возможность начинать работу с некоторых начальных условий, а также сохранять значения результатов операций на текущем шаге для передачи их на следующий шаг. Для этого существуют сдвиговые регистры (Shift Registrs).

Следует отметить, что в цикле по умолчанию включена возможность индексации, т.е. создание на выходе цикла массива из тех переменных, которые вычисляются на каждом шаге. Существует команда Disable Indexing, отменяющая индексацию.

На рисунке 13.4 приведен пример использования цикла для генерации N случайных чисел с равномерным распределением ri=0÷1. определения математическое ожидание и вывода их в виде массива и на графики двух типов.

Рисунок 13.4

Ниже приведены примеры использования цикла для вычисления факториала (рисунок 13.5) и последовательности Фибоначи (рисунок 11). В последнем примере из регистра выбирается предыдущее значение и используется для суммирования. Для этого используется опция Add Element из контекстного меню.

Рисунок 13.5

4. While Loop(цикл по условию) – это оператор цикла, в котором количество итераций заранее неизвестно, но имеется дополнительное условие для выхода из цикла, определяемое значением логической переменной, присоединенной к терминалу условия выхода из цикла. При этом операции внутри цикла выполняются, пока на терминале True(истина). Если в ходе проверки контрольного условия на терминале окажется False( ложь), то цикл завершается.

Этот цикл часто используется для алгоритмизации итеративных процессов. В качестве приемра рассмотрим процесс вкючения катушки индуктивности (рисунок 13.6).

Рисунок 13.6

Уравнение переходного процесса записывается в форме Коши

и решается, начиная из начального состояния t=0, i0 = 0, используя формулы tk+1 = tk+Δt;

Рисунок 13.6

 

Еще один пример. При расчете звена передачи, когда известно напряжение в начале U1, а мощность в конце P2, приходится подбирать такое U2, при котором расчет звена с конца позволяет получить в начале заданное напряжение с определенной точностью. Применительно к цепи постоянного тока последовательность расчета: принимается исходное U2o, затем J=P2/U2o, потом потеря напряжения dU=R×J. далее U1p=U2o+dU и, наконец, проверка условия | U1-U1p|£ eps.

Виртуальное устройство, реализующее алгоритм, показано на рисунке 13.7. Все промежуточные результаты индексированы с помощью Enable Indexing.

Рисунок 13.7

 

5. Formula Node(формульный узел) – это окантованное рамкой поле, в которое можно текстовым курсором записывать формулы для вычислений по определённым правилам (рисунок 13.8). При вызове структуры устанавливается только рамка, размер которой может меняться курсором стрелка. В поле можно записать несколько арифметических выражений, завершая каждое знаком «;». Для обмена данными на рамке с помощью контекстного меню устанавливается набор входных (Add Input) и выходных или промежуточных (Add Output) переменных. В появившиеся курсоры латинскими буквами вписываются идентификаторы переменных. При записи формул используются стандартные арифметические знаки (+ - * / **) и функции.

Рисунок 13.8

 



Дата добавления: 2016-11-29; просмотров: 1976;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

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

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.011 сек.