Скачиваний:
65
Добавлен:
06.03.2016
Размер:
299.01 Кб
Скачать

Урок 5 Основные типы алгоритмических структур. Алгоритмы «ветвление» и «выбор»

Урок 5. Основные типы алгоритмических структур

Линейный алгоритм

Алгоритмы «ветвление» и «выбор»

В этом уроке рассматриваются основные типы алгоритмических структур. Изучается подробно алгоритмы «ветвление» и «выбор». Приведены примеры использования этих алгоритмических структур.

В этом уроке изложены вопросы:

  1. Основные типы алгоритмических структур

  2. Линейная алгоритмическая структура

  3. Алгоритмическая структура «ветвление»

  4. Алгоритмическая структура «выбор».

A. Основные типы алгоритмических структур

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

В текстовых языках Visual Basic, C++, Java и большинстве других порядок выполнения всей программы определяется расположением команд в программе. В этих языках действует так называемый принцип потока управления (controlflow): инструкции выполняются в той последовательности, в которой они написаны.

Поскольку LabVIEWне является текстовым языком программирования, его код не может исполняться «строка за строкой». Принцип, который управляет исполнением программыLabVIEW, называетсяпотоком данных(dataflow). И если традиционный поток управления осуществляется при помощи инструкций, обработка потока данных управляется самими данными, то есть зависит от данных. Программирование потока данных – движение вместе с потоком. ВLabVIEWнаходящиеся рядом (но не связанные между собой) программные блоки, с точки зрения программиста, выполняются одновременно. Поэтому в тех случаях, когда важна последовательность операций, пользователю придется самому позаботиться о порядке вычислений и заложить его в структуру программы.

В LabVIEWсуществует раздел, позволяющий регламентировать этот процесс. Это так называемые структуры. Вызов структур осуществляется из функциональной палитрыFunctionменюStructures.

Палитра Функций

ПалитраФункций используется для создания блок-диаграммы. Она доступна только на блок-диаграмме. Чтобы отобразить палитруФункций, следует либо выбрать в пункте главного меню в окне блок-диаграммыWindowShow Functions Palette,либо щелкнуть правой кнопкой мыши в рабочем пространстве блок-диаграммы. Используя кнопку в верхнем левом углу палитры можно зафиксировать ее на экране. По умолчанию палитраФункций появляется в экспресс-виде и отображает экспресс-ВП. Экспресс-ВП  — узлы функций, которые можно настраивать с помощью диалогового окна. Они используются для выполнения стандартных измерений при минимальных соединениях.

При нажатии кнопки Options(опции), показанной слева, отображается страницаControls/Functions Palettesдиалогового окнаOptions. Следует заменитьPaletteViewнаAdvanced. Такая палитра, показанная ниже, является исходной палитройФункций для всех упражнений этого курса.

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

B. Линейная алгоритмическая структура

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

В текстовых языках программирования данная алгоритмическая структура реализуется наиболее простым способом: операторы выполняются в том порядке, в каком записаны в программе. В языке программирования LabVIEWпорядок устанавливается с помощью структурыSequence Structure(последовательной структуры). Это инструмент типа многостраничного блокнота. На каждом листе этого блокнота можно сформировать некоторый фрагмент программы. Последовательность выполнения фрагментов определяется номером листа блокнота. При этом ни один лист пропущен не будет. Данная структура применяется для определения порядка выполнения сложных программ. В программах, где порядок выполнения операторов можно легко установить расположением их на блок-диаграмме, обычно не применяют эти структуры.

Классический пример линейного алгоритма сложения двух чисел и затем вычитание из полученной суммы 50.0 , записанный на текстовом языке, приобретает несколько «иную окраску», будучи выраженный средствами LabVIEW. Теряется «строгая линия» выполнения алгоритма, так ярко проявляющаяся в текстовых языках. Но она угадывается, как «генеральная линия» хода вычислений наLabVIEW. Обратите внимание на блок-диаграмму примера, который мы разобрали на предыдущем уроке.

Пример предыдущего урока: вычисление периметра и площади треугольника по заданным трем сторонам – тоже является линейным алгоритмом.

С. Алгоритмическая структура «ветвление»

В алгоритмическую структуру «ветвление» входит условие, в зависимости от выполнения или не выполнения которого реализуется та или иная последовательность команд. Условием называется высказывание, которое может быть либо истинным, либо ложным. Условие – это логическое выражение, записанное по всем правилам алгебры логики.

В среде LabVIEW.в ходе выполнения программы, определяемом потоком данных, используются структуры «ветвление». В программах

В программах, написанных на текстовых языках программирования, эта задача решается операторами if–else, операторамиcase,switchи т.д. ВLabVIEWреализовано много различных способов принятия решений. Самый простой из них - функция Select.

Функция Select

Функция Select, расположенная в палитреControls>>Comparison, в зависимости от значения на логическом входе выбирает одно из двух значений. Если на логическом входе будет значениеTRUE, то выходе функция выдаст значение, поданное на входT, если же на логическом входеFALSE, то возвращается значение с поляF.

Упражнение 5-1 ВП Деление чисел

Цель: Изучить функцию Select.

Выполним следующие шаги для построения ВП, который сравнивает делитель с нулем, если делитель отличен от нуля, вычисляется частное от деления двух вещественных чисел, в противном случае частное полагается равным -99999,0.

Лицевая панель

  1. Откроем новый ВП и создадим лицевую панель, как показано ниже.

Блок-диаграмма

  1. Создадим блок-диаграмму, показанную ниже на рисунке:

Функция Select, расположенная в палитреControls>>Comparison, в зависимости от значения на логическом входе выбирает одно из двух значений. Палитра вызывается в поле блок-диаграммы.

Поместим на блок-диаграмму функцию Divide, расположенную в палитре Functions>>Numeric. Функция возвращает значение частного от деления двух чисел.

Поместим на блок-диаграмму функцию Not Equal , расположенную в палитре Functions>>Comparison. Функция возвращает значение TRUE, если число не равно 0.

Щелкнем правой кнопкой мыши по численной константе и в контекстном меню выберем пункт Format & Precision. Установим Digits of Precision равным 1, выберем вид представления Floating Point Notation и нажмите кнопку OK. Аналогично установим формат и точность задаваемых чисел в элементах управления Делимое и Делитель на лицевой панели ВП.

  1. Сохраним созданный ВП под именем Деление чисел.vi

Запуск ВП

  1. Отобразим лицевую панель и запустите ВП.

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

Если входное значение цифрового элемента управления Делитель отлично от нуля, то значение логического выражения TRUE и вычисляется значение частного. Если значение цифрового элемента управления Делитель равно нулю, то выполнится вариант FALSE, при котором возвращается –99999,0 в цифровой элемент отображения Результат деления двух чисел.

  1. Закроем ВП.

Соседние файлы в папке Лабораторная работа №1