![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | 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; |