|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
n - мерные массивы
Кто нибудь знает как динамически создавать 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; |