Вниз
Скачать: CL | DM;

Динамический массив   Найти похожие ветки 

← →
Linder   (2002-11-14 13:53) [0]

Всем привет!

Уважаемые Мастера, подскажите, плиз.

Динамический массив описывается так:
var mas1: array of byte;

Устанавливаем длину массива так:
SetLength(mas1, 10);

В этом случае мы получим одномерный массив.
А как описать двухмерный массив? (на-пример: mas2[3,5])
И как устанавливать его длину по разным измерениям?


← →
Misha   (2002-11-14 13:59) [1]

попробуй array of array of byte

SetLength(a,10,10)


← →
Внук ©   (2002-11-14 13:59) [2]

var mas2: array of array byte;

SetLength(mas2, 3);
SetLength(mas2[0], 5);
SetLength(mas2[1], 5);
SetLength(mas2[2], 5);





← →
Alx2 ©   (2002-11-14 13:59) [3]

>Linder (14.11.02 13:53)
array of array of byte - массив массивов переменной длины.
Если хочешь сохранить жесткую структуру MxN используй одномерный массив длины m*n и проецируй его индекс на декартово произведение [1..m]x[1..n] 8-)
таким образом инекс [a,b] превратится в линейный индекс (a-1)*n+b-1 (если индексы считать от единицы)


← →
Marcus   (2002-11-14 14:01) [4]

type TByteArray = array of byte;

var
A: array of TByteArray;

SetLength(A, 10);
for i := 0 to High(A) do
SetLength(A[i], 15);

получишь массив 10х15


← →
Linder   (2002-11-14 14:06) [5]

>Alx2
Слишком много секса...
Ты бы еще предложил Интегралы использовать. :))

>Marcus
Спасибо, сейчас попробую.


← →
Alx2 ©   (2002-11-14 14:08) [6]

>Linder (14.11.02 14:06)
Я дал два варианта. Один из них без секса 8)


← →
Kibitzer ©   (2002-11-14 17:53) [7]


> Marcus (14.11.02 14:01)
> type TByteArray = array of byte;
>
> var
> A: array of TByteArray;
>
> SetLength(A, 10);
> for i := 0 to High(A) do
> SetLength(A[i], 15);
>
> получишь массив 10х15

Слишком много всего для создания "прямоугольного" массива достаточно сделать так как предложил Misha.
Если нужен "непрямоугольный" массив, тогда другое дело.

Пример "треугольного" массива:

...
var
A: array of array of Byte;
i: Integer;
begin
SetLength(A, 15);
for i := 0 to 14 do SetLength(A[i], i+1);

...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
6-82899
lumazen
2002-09-30 16:05
2002.11.25
Как маскироваться от IDS (Intrusion Detection System)


7-83032
Lyafa
2002-09-24 15:29
2002.11.25
регистрация ActiveX в системе


3-82626
KPOT
2002-11-04 18:00
2002.11.25
Zapolnenie DBGrid.


6-82901
boolean
2002-10-01 09:19
2002.11.25
Объясните


7-83018
lds78
2002-09-25 16:13
2002.11.25
Работа с датой.




   Наверх