(решено) Многомерный неоднородный массив, в одномерный
 Добавлено: 11.04.2020 22:18:29
Добавлено: 11.04.2020 22:18:29Есть массив, например такой:
заполняется примерно так:
Теперь многомерный неоднородный massiv[a,b,c] -- нужно преобразовать к одномерному массиву. Если-бы массив был-бы однородным, то это просто.
А вот, для неоднородного многомерного массива, есть-ли готовая формула перевода в одномерный массив?
PS: безусловно вариант с inc(i) -- 100% не подходит, потому что, в итоге, нужно получить доступ к значениям в одномерном массиве по тем-же вышеприведённым циклам: a, b, c.
			- Код: Выделить всё
- var
 massiv : array of array of array of byte;
 CountB : array [0..11] of byte;
 CountC : array [0..21] of byte;
заполняется примерно так:
- Код: Выделить всё
- for a := 0 to 10 do CountB[a] := a; // таким образом неоднородно заполняем CountB
 for b := 0 to 20 do CountC[b] := b; // таким образом неоднородно заполняем CountC
 // тут создаём неоднородный массив
 SetLength(massiv, 11),
 for a := 0 to 10 do begin
 SetLength(massiv[a], CountB[a]+1);
 for b := 0 to CountB[b] do
 SetLength(massiv[a,b], CountС[b]+1);
 end;
 // и как следствие получаем многомерный неоднородный массив, который потом заполняем:
 for a := 0 to 10 do
 for b := 0 to CountB[a] do
 for c := 0 to CountC[b] do
 massiv[a,b,c] := c div 2;
Теперь многомерный неоднородный massiv[a,b,c] -- нужно преобразовать к одномерному массиву. Если-бы массив был-бы однородным, то это просто.
А вот, для неоднородного многомерного массива, есть-ли готовая формула перевода в одномерный массив?
PS: безусловно вариант с inc(i) -- 100% не подходит, потому что, в итоге, нужно получить доступ к значениям в одномерном массиве по тем-же вышеприведённым циклам: a, b, c.
