Использование автоматического индексирования

Цикл с фиксированным числом итераций и цикл по условию могут автоматически поочередно обращаться к элементам входящего массива или накапливать новый массив на выходе, добавляя элементы по одному. Эта способность называется автоиндексированием (auto-indexing).

Следует помнить одну важную вещь: по умолчанию автоиндексирование включено в цикле с фиксированным числом итераций и выключено в цикле по условию.

На рис. 7.7 показано, как цикл с фиксированным числом итераций автоматически создает массив в его границах. Каждая итерация создает следующий элемент массива. После завершения цикла выходной массив поступает на элемент отображения. Данные в массиве недоступны до тех пор, пока цикл не завершится. Обратите внимание, что проводник становится толще после превращения в проводник данных массива на границе цикла.

Если необходимо вывести скалярную величину из цикла с фиксированным числом итераций без создания массива, отключите автоиндексирование путем вызова контекстного меню в точке ввода/вывода (квадратик с символом | ]) и выбора опции Отключить индексирование (Disable Indexing), как показано на рис. 7.8.

Автоиндексация на границе массива с фиксированным числом итераций

Рис. 7.7. Автоиндексация на границе массива с фиксированным числом итераций

Отключение автоиндексации в контекстном меню

Рис. 7.8. Отключение автоиндексации в контекстном меню

На рис. 7.9 автоиндексация отключена, на выходе массива только последнее из случайных чисел. Обратите внимание, что толщина проводника не изменяется при пересечении границы. Всегда следите за толщиной проводника, потому что ошибка с автоиндексацией - одна из самых распространенных у новичков. Из-за нее массивы возникают там, где не нужно, или исчезают там, где они нужны. Можно сойти с ума, разыскивая причину разорванного проводника.

Автоиндексация на границе массива отключена

Рис. 7.9. Автоиндексация на границе массива отключена

Автоиндексирование применяется также в случаях, когда вы вводите массивы в циклы. Если индексирование включено, как это показано в цикле (А) на рис. 7.10, то цикл будет переходить к следующему индексу массива при каждой итерации (обратите внимание на утончение проводника во время его вхождения в цикл). Если же индексирование отключено, как показано в случае (Б), то массив целиком передается в цикл.

Входной туннель массива со включенной (А) и отключенной (Б) автоиндексацией

Рис. 7.10. Входной туннель массива со включенной (А) и отключенной (Б) автоиндексацией

Поскольку цикл с фиксированным числом итераций часто используется для ф обработки массивов, в 1дЬ11Ш по умолчанию включено автоиндексирование для этой структуры. Однако для цикла по условию автоиндексирование по умолчанию выключено. Если вы хотите его включить, вызовите контекстное меню точки ввода/вывода массива в цикл и выберите опцию Включить индексирование. Всегда проверяйте состояние индексации - в нем источник многих ошибок.

Использование автоиндексирования для установки количества повторений циклов с фиксированным числом итераций

Когда вы разрешаете автоиндексированне для массива, входящего в цикл с фиксированным числом итераций, ЬаЬУШХУ автоматически устанавливает число повторений равным размеру массива, устраняя таким образом необходимость подключения определенного значения к терминалу числа итераций. Если вы зададите взаимоисключающие значения, например задав число и введя в действие автоиндексирование (или разрешив автоин- дексировать два массива с разными размерами), то ЬаЬУ1ЕУ установит значение терминала количества итераций в наименьший из вариантов. На рис. 7.11 показано, что размер массива, а не число, подключенное к терминалу, определяет количество итераций цикла, так как размер массива является наименьшим из двух.

Рис. 7.11. Число итераций цикла равно 10

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >