Кому создать динамический массив и изменить его размер в Mosel Xpress IVE? - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь создать динамический массив размером 5 ( x : dynamic array(5) of integer), я инициализирую массив с x(1)=1,x(2)=4,x(3)=1,x(4)=2,x(5)=3.

Благодаря этому я хочу решить проблему. Затем в той же программе я хочу увеличить размер кристалла этого массива до 7, чтобы добавить еще одно значение x(6)=2,x(7)=3, предоставив мне алгоритм, который может это сделать.

1 Ответ

0 голосов
/ 21 ноября 2018

Вы можете использовать эту форму:

declarations
  x: dynamic array(R:range) of integer
end-declarations
x(1):=1; x(2):=4; x(3):=1; x(4):=2; x(5):=3

, а затем

x(6):=2; x(7):=3

Обратите внимание, что если в задаче оптимизации предполагается, что «x» является массивом переменных решения, то вам необходимо объявить массив с типом «mpvar», и в этом случае записи динамического массива не могут быть определены присваиванием но должен быть создан явно:

declarations
  x: dynamic array(R:range) of mpvar
end-declarations
forall(i in 1..5) do
  create(x(i))
  x(i) is_integer           ! To state that variables are discrete
end-do
x(1)=1; x(2)=4; x(3)=1; x(4)=2; x(5)=3
...