Масиви і цикли у LabVIEW


Продовжую розповідь про використання масивів у LabVIEW і цього разу зачепимо таку цікаву штуку як застосування циклів. Хто вчився програмувати бодай на паскалі чи бейсику, той в курсі, що працювати з масивами найкраще якраз використовуючи цикли. LabVIEW у цьому плані взагалі класна штука.

От наприклад, спробуємо зробити невеличку програму, яка виводитиме в масив числа від 0 до 9. Для цього організовуємо цикл While, термінал Loop Iteration порівнюємо з константою (т. як лічильник ітерацій починає свою роботу з 0, то константу беремо рівною 9) і зупиняємо цикл, якщо рівність справджується. Результат виводимо на числовий індикатор.

Приклад циклу While Loop

Приклад циклу While Loop

Ой… Як бачите, програма видала не всі числа, а тільки останнє з них (та й індикатор ніяк не схожий на масив). Це тому, що для циклів типу While Loop за замовчуванням вимкнено автостворення масивів (Indexing). Спробуємо це виправити. Натискаємо праву кнопку миші на тунель (синій квадратик на межі циклу) і в контекстному меню обираємо “Enable Indexing”.

Вмикаємо автостворення масивів

Вмикаємо автостворення масивів

Насправді, як тільки ми увімкнемо автостворення масивів, програма відразу “зламається”, бо числовий індикатор не підходить у даному випадку. Тому видаляємо індикатор і створюємо його заново (в контекстному меню тунеля вибираємо Create->Indicator). Зверніть увагу на те, що сам тунель зараз має дещо інший вигляд: це вже не синій квадратик, а квадратик із квадратними дужками [], які, власне, і вказують на те, що результатом операції буде масив.

На лицьовій панелі з’явився індикатор-масив, його треба ще розтягнути, аби було видно всі десять елементів масиву.

Приклад циклу While Loop з автостворенням масиву

Приклад циклу While Loop з автостворенням масиву

Загалом все добре і така програма навіть працюватиме. Та насправді для роботи із масивами більше підходить цикл з параметром, в якому кількість ітерацій задана наперед (цикл “For”). У LabVIEW такий цикл є і знаходиться він у палітрі All Functions -> Structures -> For Loop.

Приклад циклу з параметром (For Loop)

Приклад циклу з параметром (For Loop)

Термінал “Параметр” (позначено буквою N) служить для задання і відображення загальної кількості ітерацій, а термінал “Лічильник ітерацій” показує номер поточної. Тут можна трохи заплутатися, але загалом все зрозуміло. Важливо те, що для таких циклів автостворення масивів увімкнено за замовчуванням, тому отака програма працюватиме аналогічно попередній, тільки без зайвих маніпуляцій.

Приклад створення масиву у циклі For Loop

Приклад створення масиву у циклі For Loop

Зверніть увагу також на той факт, що в даному випадку ми вказуємо кількість ітерацій, а не номер останньої. Тобто якщо у першому випадку писали цифру 9, бо нумерація ітерацій починається з 0 і десята має номер 9, то тут треба вказувати 10.

Так само легко можна створити і двовимірний масив (таблицю) за допомогою двох вкладених циклів:

Створення двовимірного масиву (таблиці)

Створення двовимірного масиву (таблиці)

Внутрішній цикл задає кількість рядків, а зовнішній – кількість стовбців. Якщо на вхід циклу подати масив, то кількість ітерацій N можна не задавати – вона вибереться автоматично відповідно до кількості даних у масиві. Це називається автоіндексацією.

Автоматичне визначення кількості ітерацій циклу

Автоматичне визначення кількості ітерацій циклу

Тобто отака програма працюватиме без підключення терміналу N, хоча завжди можна вказати і кількість ітерацій, відмінну від кількості елементів у масиві.

Зауважу ще, що для циклу з параметром теж можна вимкнути автостворення масивів (вимкнеться тоді і автоіндексація), це робиться у контекстному меню тунеля (опція Disable Indexing).

Почитайте ще оце:

Залиште коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *