сделать копию массива
				
Добавлено: 
06.05.2016 07:41:02 tmpnikl
				Есть одномерный массив символов(где-то 25 элементов), теперь этот массив надо скопировать (а=в) в цикле(от 1 до 255), в зависимости от условия случайного числа(чётное копируем, нечётное не копируем)..., т.е. я заранее не знаю сколько будет этих массивов, чтоб заранее их описать.. как можно это реализовать?
			 
			
				Re: сделать копию массива
				
Добавлено: 
06.05.2016 10:12:17 Zhbr
				Я так понял вся проблема как создать n-ое кол-во массивов?
Если да, то как вариант воспользоваться указателями:
- Код: Выделить всё
- type
 PSpis_massivov = ^Spis_massivov;
 Spis_massivov = record
 //  тут Описание своего массива
 next: PSpis_massivov   //указатель на след запись или nil если последний
 
Ну а потом с помощью New создаешь нужное количество массивов и заполняешь их.
 
			
				Re: сделать копию массива
				
Добавлено: 
06.05.2016 10:21:39 resident
				tmpnikl
Как будто в школе не учились. Любая задача оформляется как:
1. Что дано
2. Что требуется
3. Решение
Что требуется не ясно. "Что" - это не действие типа вашего "скопировать", а то какие данные должны быть на выхлопе.
			 
			
				Re: сделать копию массива
				
Добавлено: 
19.08.2016 16:26:37 serge#LVL
				Есть одномерный массив символов(где-то 25 элементов), теперь этот массив надо скопировать (а=в) в цикле(от 1 до 255), в зависимости от условия случайного числа(чётное копируем, нечётное не копируем)..., т.е. я заранее не знаю сколько будет этих массивов, чтоб заранее их описать.. как можно это реализовать?
можно сделать через динамические массивы и функцию Copy().
- Код: Выделить всё
- procedure Clon(nclons: word);
 var
 ArOrigin: array of char; // клонируемый массив
 ArClon,ArClon2: array of array of char; // 1ая размерность = кол-ву клонов, 2-ая размерность = размерности исходного массива
 i,j: longword;
 begin
 SetLength(ArOrigin,26);
 
 // массив заполняется заглавными буквами англ. алфавита (26 букв)
 for i:=Low(ArOrigin) to High(ArOrigin) do
 ArOrigin[i]:=Char(i+65);
 
 // устанавливаем размерность массива
 SetLength(ArClon,nclons,High(ArOrigin)+1);
 SetLength(ArClon2,nclons,High(ArOrigin)+1);
 
 // клонируем массив в цикле
 for i:=0 to nclons-1 do
 ArClon[i]:=copy(ArOrigin);
 
 // можно копировать указатель, а не массив
 // но в правильности сомневаюсь
 for i:=0 to nclons-1 do
 Pointer(ArClon2[i]):=@ArOrigin[0];
 end;