Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.25;
Скачать: 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 вся ветка

Текущий архив: 2002.11.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
3-82618
Шурик Ш
2002-11-04 13:41
2002.11.25
А можно использовать QReport для создания отчетов не по БД?


1-82846
SI-riuss
2002-11-14 12:30
2002.11.25
Печатаю из моей программы документ из нескольких листов.


4-83046
_vadim_
2002-10-14 01:48
2002.11.25
правый клик на компоненте


3-82678
ton2
2002-11-06 14:30
2002.11.25
Использование Access-базы из Delphi


4-83060
Sodom
2002-10-07 11:15
2002.11.25
Задержка выгрузки Dll