|
|
Регистрация | << Правила форума >> | 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; Что делать, когда сломался комп: 1. Если вы юзер - делать ноги. 2. Если ремонтник - делать деньги. 3. Если вы программист - делать вид, что так было задумано. |
#3
|
|||
|
|||
А если массивов несколько, их количество заранее не известно,а в какой-то момент времени надо будет что-то сделать со всеми (сколько их было создано до этого) массивами?
|
#4
|
||||
|
||||
Обращайся по очереди к каждому из них.
Что делать, когда сломался комп: 1. Если вы юзер - делать ноги. 2. Если ремонтник - делать деньги. 3. Если вы программист - делать вид, что так было задумано. |
#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; Не профи, но и не чайник . D6 - лучше не придумали. Пока. |
#6
|
||||
|
||||
alexei Вы бы описали задачу, возможно ее можно решить и не используя массивы.
|
#7
|
||||
|
||||
Цитата:
|