![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Кто нибудь знает как динамически создавать n - мерные массивы и возможно ли это вообще?
|
|
#2
|
||||
|
||||
|
Код:
procedure TForm1.Button1Click(Sender: TObject); var m1: array of array of integer; m2: array of array of array of integer; begin SetLength( m1, 2, 2 ); SetLength( m2, 2, 2, 2 ); end; |
|
#3
|
|||
|
|||
|
Нет, не то. Вот как именно, создать динамически array of integer в нужном количестве?
|
|
#4
|
||||
|
||||
|
Поясни, что ты имеешь в виду под "создать в нужном количестве". И чем именно не устраивает такой вариант
Код:
procedure TForm1.Button1Click(Sender: TObject); var m1: array of integer; begin SetLength( m1, 10 ); end; |
|
#5
|
|||
|
|||
|
Ну, блин Mass[1-мерный,2-мерный-мерный,3-мерный,...-мерный, n-мерный]
Вот как динамически создать массив с n - array of |
|
#6
|
||||
|
||||
|
Если тебе нужен неограниченный (ограниченный только памятью) массив, используй стеки, деки или списки. Они будут ограничены только памятью.
|
|
#7
|
||||
|
||||
|
Напрямую такого не сделать, т.к. размерность нужно знать заранее. Но, как говорится - если нельзя, но очень хочется, то можно. Вот, например, как можно создать матрицу 3x3 на основе array of.
Код:
procedure TForm1.Button1Click(Sender: TObject);
const
n = 3;
m = 3;
var
a: array of integer;
i, j: integer;
s: string;
begin
SetLength( a, n*m );
// Заполнение
for i := 0 to n-1 do
for j := 0 to m-1 do
a[i*n+j] := Random( 10 );
// Вывод
for i := 0 to n-1 do
begin
s := '';
for j := 0 to m-1 do
s := s + IntToStr( a[i*n+j] ) + ' ';
Memo1.Lines.Add( s );
end;
end; |