Список представляет собой последовательность значений (числовых или символьных), называемых элементами списка. Для обращения к списку необходимо указать его имя. Доступ к элементам списка осуществляется путем указания имени списка и номера элемента, помер - положительное целое число без знака.
Списки в ТК Solver используются различными способами. Они могут ассоциироваться с переменными и использоваться для хранения значений входных данных задачи и получать значения выходных данных задачи в режиме списковых вычислений решателя. Списки служат для хранения аргументов и результатов в списковых функциях. Списки используются для организации связи по данным ТК Solver с другими системами через файлы.
Переменная модели задачи будет иметь тип данного список и в модели появляется список с одинаковым с переменной именем, если при объявлении переменной на панели Variable Sheet в поле Status указать тип L. После этого каждая ссылка к этому имени во всех компонентах ТК Solver интерпретируется как обращение к списку. В выражениях и аргументах ВМ-функций и процедур-функций к спискам ссылаются путем указания в форме символьного значения, т.е. имени переменной типа список должен предшествовать апостроф.
Например:
call blank('abc)
дает тот же результат, что и call blank(uv), если uv='abc, здесь abc - имя списка.
Для того, чтобы обратиться к элементу списка, необходимо в операторах и предложениях вычислимости использовать конструкцию вида:
[]
Например, оператор 'abc[4]:=100 присваивает четвертому элементу списка abc значение, равное 100. Все имена списков текущей модели задачи хранятся в панели List Sheet. Имя нового списка автоматически заносится в панель List Sheet, если:
352
Новый список появляется в модели задачи также, если переменная в уравнении пли операторе принимает значение несуществующего списка. Например, если выполнено правило place('abc,2)=pi() или оператор 'abc[2]:=pi(), то создастся список abc и второй элемент его принимает значение 3.14159... Данное обстоятельство позволяет моделировать многомерные массивы, представимые в этом случае как списки списков. Например, после выполнения оператора присваивания вида 'abc[i][j][k]: = i*j*k, при i=4, j=6 и k=5 будет создан главный список abc и его 4-й элемент будет именовать подсписок с именем 'abc#4, затем будет создан список abc#4, и в 6-й его элемент будет помещено имя подсписка нижнего уровня 'abc#4#6; окончательно будет создан список abc#4#6 и значение 120 (=i*j*k) будет присвоено его 5-му элементу.
353
352 :: 353 :: Содержание