Индексные переменные
Индексные переменные – это переменные, названия которых состоят из двух частей: собственно названия переменной и индекса. Эти переменные используются, как правило, при обработке таблиц при помощи циклов.
Переменной-индексом может быть любая переменная числового или строкового типа.
Пример использования
и = 3 ст = "_всего" п!и // аналог переменной "п3" п!ст // аналог переменной "п_всего" ВЫЧИСЛИТЬ // В результате выполнения цикла ЦИКЛ ДЛЯ (и = 1, 10) // задаются значения 10 переменных: стр!и = и // стр1 = 1, стр2 = 2 и т.д. КОНЕЦ_ЦИКЛА КОНЕЦ
Существуют два взаимно совместимых синтаксиса обращения к индексным переменным:
-
<префикс>!<идентификатор или константа> [!<идентификатор или константа>[ ... ]]
Пример:
X = 2 Y = 2 элем!X!Y = 3 // или эквивалентные формы записи: инд = СТР(X) + СТР(Y) элем!инд = 3 элем!22 = 3 // элем!2!2 = 3 // все это - допустимые обращения к одной и той же элем!"22" = 3 // переменной элем!"2"!"2" = 3 //
-
<префикс>[<выражение числового или строкового типа>]
Пример:
элем [ "22" ] = 3 // или элем [ "2" + "2" ] = 3 // или X = 2 Y = 2 элем [ СТР ( X ) + СТР ( Y ) ] = 3
Замечания:
- К одним и тем же индексным переменным допускается обращение как по первой схеме, так и по второй. Синтаксис выбирает программист из соображений удобства в конкретной ситуации.
- В интерпретаторе индексных переменных самих по себе нет, из значений индексов и префикса склеивается полное имя переменной, то есть к переменной сумма!1 можно обратиться через сумма1. Данная возможность поддерживается только интерпретатором и при использовании компилятора приведет к ошибке. Компилятор будет считать сумма1 и сумма!1 двумя разными переменными.
- Если индексная переменная находится слева от знака "=", то происходит добавление нового элемента индексной переменной, в противном случае, если индексная переменная находится справа от знака "=" (в каком-либо выражении или при вызове функции) указанный элемент индексной переменной должен существовать, иначе возникает ошибка.
- Для избежания непредвиденных ошибок следует использовать функцию СУЩ_ПЕРЕМ для проверки существования элемента индексной переменной.
См. также: