![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Добрый день.
Вопрос в следующем: подскажите, как во время работы программы создать несколько доп. массивов, размер которых заранее не известен. В var же не возможно описать все, с чем можно столкнуться. P.S.: если можно, то желательно на примере. И еще, поделитесь ссылками на библиотеки по работе с матрицами, чтобы самому не писать коды по сложению, умножению матриц и т.д. Заранее спасибо. |
|
#2
|
||||
|
||||
|
Создай вариантный массив.
Код:
var Mas: Variant; begin Mas:=VarArrayCreate([0, 2], varVariant); Mas[0]:=15; Mas[1]:='Text'; Mas[2]:=VarArrayOf([0, True, 'OtherText', 14.0]); end; |
|
#3
|
|||
|
|||
|
А если массивов несколько, их количество заранее не известно,а в какой-то момент времени надо будет что-то сделать со всеми (сколько их было создано до этого) массивами?
|
|
#4
|
||||
|
||||
|
Обращайся по очереди к каждому из них.
|
|
#5
|
||||
|
||||
|
Массивы вариантов занимают много памяти, лучше использовать динамические массивы
Код:
var
ar : array of Integer; // одномерный массив
ar2 : array of array of Integer// массив массивов или двумерный массив
// Выделение памяти под массив с помощью SetLength
SetLength(ar, 10); // Для одномерного массива (10 это количество элементов в массиве)
ar[0] := 1000; // Обращение к элементу массива
ar[2] := 3000;
SetLength(ar2, 20); // Для думерного массива. Сначала задаем количество массивов,
for i := 0 to 19 do // потом задаем размер каждого массива
SetLength(ar2[i], 5); //
ar2[1][3] := 4000; // Обращение к элементу двумерного массива
// Освобождение занятой памяти
ar := nil;
for i := 0 to 19 do
ar2[i] := nil;
ar2 := nil; |
|
#6
|
||||
|
||||
|
alexei Вы бы описали задачу, возможно ее можно решить и не используя массивы.
|
|
#7
|
||||
|
||||
|
Цитата:
|