Регистры сдвига: доступ к данным предыдущей итерации цикла
При программировании некоторых задач возникает потребность в доступе к результатам выполнения предыдущей итерации (слово "рекурсия" знакомо, думаю, всем). В LabVIEW эта проблема решена достаточно интересно и разнопланово.
Наиболее простым способом получить информацию о выполнении предыдущей итерации (или нескольких итераций) цикла есть использование регистров (Shift Registers) сдвигов. Для примера рассмотрим программку, которая выводит номер итерации цикла While Loop:
Как мы знаем, за умалчиванием для цикла While Loop выключено автосоздание и автоиндексацию массивов, потому индикатор будет отображать лишь номер последней итерации (последнее значение счетчика) - число 9.
Пусть нам нужно получить предыдущее значение этого счетчика, то есть результат предыдущей итерации цикла, воспользовавшись для этого регистрами сдвигов. Для начала надо активировать регистры для цикла (как это сделать демонстрирует следующий рисунок).
Через терминал слева можно осуществить инициализацию регистру, подсоединив к нему, например, определенную константу, а также получить результат предыдущей итерации. Как используется инициализация демонстрирует следующий рисунок.
Кроме информации о предпоследней итерации можно получить значение на заданное количество шагов в глубину цикла. Для этого просто надо прибавить еще несколько "ячеек" к регистру, используя контекстное меню.
Таким образом можно получать информацию практически о каждом шаге выполнения цикла отдельно, например так:
У каждого должен быть друг с которым весело и который всегда будет предан вам. На роль лучшего друга йоркширский терьер подойдет как нельзя лучше. Ведь эти животные привязываются к хозяину и становятся его неотлучным спутником.
Категория: Полезные штучки. Добавил: PalimTemu (13-01-2013, 22:46). |
Информация