- •26. Использование цикла While и структуры варианта при обработке ошибок
- •Значения и типы данных селектора варианта
- •27. Моделирование и измерение переменных напряжений и токов в среде LabView
- •28.Создание строковых элементов управления и индикации. Функции работы со строками
- •29.Численное решение обыкновенных дифференциальных уравнений в среде LabView
- •30.Напишите методы сортировки таблицы LabView
- •31.Применение вп LabView в сохранении данных в файл, а также считывании их из файла
- •32.Сохранение данных в новом или уже существующем файле. Форматирование строк таблицы символов
30.Напишите методы сортировки таблицы LabView
Таблицы Элемент управления Таблица, расположенный в палитре Controls =» List & Table предназначен для создания таблиц на лицевой панели. Каждая ячейка находится в строке и столбце таблицы. Поэтому таблица представляет собой двумерный массив строк. Для инициализации значений ячеек таблицы используется инструмент управление или ввод текста, с помощью которых достаточно ввести текст в выделенную ячейку. Таблица представляет собой двумерный массив строк. Для ее использования в качестве элемента индикации, необходимо двумерный массив чисел преобразовать в двумерный массив строк.
Задание 14. /. Сортировка таблицы Обработайте таблицу в ВП таким образом, чтобы имелась возможность сортировать различные столбцы таблицы по возрастанию. Саму сортировку осуществите с помощью функции Sort ID Array, которая находится в палитре Functions => Array. Напомним, что эта функция сортирует элементы одномерного массива в порядке возрастания. Если массив состоит из кластеров, функция сортирует массив по первым элементам кластеров. В связи с этим таблицу следует преобразовать в массив таким образом, чтобы интересующий пользователя столбец стал первым. И потом Строки JJ сформировать из полученного массива кластер, который мы и будем сортировать. После осуществления сортировки кластер следует преобразовать массив и вернуть столбцы на свои первоначальные места. Создайте саму таблицу и целочисленный элемент управления, который будет указывать столбец для сортировки. Заполните таблицу какими-либо данными. Можете позаимствовать данные на рис. 14.10. По умолчанию заголовки столбцов и строк не видны. Чтобы заголовки столбцов стали видны в свойствах таблицы (диалоговое окно свойств вызывается из кон- текстного меню пунктом Properties) поставьте флажок напротив Show Column Headers. Кроме этого, чтобы появилась возможность редактировать заголовки, включите в контекстном меню таблицы опцию Editable Headers. Сейчас вам ниче- го не мешает сделать таблицу такой же, как это показано на рис. 14.10. Как осуществить сдвиг столбца, по которому будет проводиться сортировка? Сдвиг столбца осуществите с помощью Rotate ID Array из той же палитры Functions => Array. Одномерный массив, который подается на вход функции Rotate ID Array, представ- ляет собой строки нашей таблицы. Каждую строку получите с помощью цикла For. Если для каждой строки в отдельности поменять элементы местами, то в целом в таб- лице местами поменяются столбцы. Допустим, как и на рис. 14.10, необходимо сорти- ровать таблицу по третьему столбцу (отсчет начинается с нуля). Иначе говоря, столбец с отчествами надо поместить на первое место. Функция Rotate ID Array перемещает n элементов из начала в конец, если n > 0. И наоборот перемещает n элементов из конца в начало, если n < 0. Если на вход n подан 0, функция строку не изменяет. Столбцы таблицы надо сдвинуть на 2 столбца влево до сортировки, и на 2 столбца вправо после. Поэтому до использования функции сортировки необходимо подать -2 на вход n фун кции Rotate ID Array, а после +2. Преобразование массива в кластер и кластер в массив осуществляют функции Array To Cluster и Cluster To Array соответственно. При преобразовании кластера в массив никаких дополнительных операций проводить не требуется. А при преобразовании массива в кластер следует указать размер кластера. Предполагается, что структура таблицы известна заранее. Делается это через пункт cluster size контекстного меню функции. В нашем случае размер кластера равен 4. Итак, вы разбили таблицу на отдельные строки. В каждой строке в цикле For поменяли местами столбцы. Сформировали из элементов строки кластер. На120 Лекция 14 Рис. 14.11 Рис. 14.12 выходе из цикла For собрали из кластеров массив. Отсортировали массив класте- ров по первому элементу в кластере. Опять использовали цикл For, в котором из каждого элемента массива кластеров получили одномерный массив. Поменяли ме- стами столбцы обратно. На выходе цикла For собрали отсортированные строки в таблицу. Остается вывести этот результат в ту же таблицу. Вариант с новой таблицей на лицевой панели в виде элемента индикации, безусловно, возможен. Однако такой способ отображения информации при работе с таблицами по вполне понятным причинам не является общепринятым. Необходимо, чтобы отсортированная таблица отображалась в исходной таблице. В таких случаях удобно использовать локальные переменные. Локальную переменную для любого элемента управления или индикации можно создать из контекстного меню элемента, выбрав пункт Create => Local Variable. Этот пункт контекстного меню доступен как на лицевой панели, так и на блок-диаграмме. После того, как вы создали локальную переменную, ее терминал появится рядом с терминалом элемента управления или индикации на блок-диаграмме (рис. 14.11). Локальную переменную можно использовать в любом месте блок-диаграммы (если это не противоречит логике выполнения программы). Ее можно использовать как для чтения данных, так и для записи. В качестве последнего используйте локальную переменную, соединив ее с полученной отсортированной таблицей. ВП готов. Окончательная блок-диаграмма показана на рис. 14.12.
