![]() |
![]() ![]() ![]() ![]() |
|
Заполнение массива неповторяющимися случайными целыми числамиDelphi , Синтаксис , Массивы
Автор: DiVo
{ **** UBPFD *********** by delphibase.endimus.com ****
>>
Данная процедура заполняет заданный массив случайными неповторяющимися целыми числами.
Заполнения идет числами начиная с 1, если вам необходимо заполнить массив числами с 0,
то измените строку:
inputMass[i]:=Unic(bm,range)+1;
на
inputMass[i]:=Unic(bm,range);
Зависимости: стандартные модули
Автор: Ru, DiVo_Ru@rambler.ru, Одесса (Украина)
Copyright: DiVo 2003 creator Ru
Дата: 22 октября 2003 г.
***************************************************** }
procedure MassRand(range: integer; var inputMass: array of integer);
var
i: integer;
bm: array of boolean; //массив флагов для отслеживания было уже число
или нет
begin
SetLength(bm, length(inputMass));
for i := 0 to length(inputMass) - 1 do
begin
inputMass[i] := Unic(bm, range) + 1; //для последовательности 1,2, ... , N
//inputMass[i]:=Unic(bm,range);//для последовательности 0,1, ... , N
end;
end;
function Unic(var flag: array of boolean; range: integer): integer;
begin
{данная функция возвращает одно случайное число}
result := random(range);
while flag[result] do
result := random(range); //ищем какого числа еще нет
flag[result] := true; //это чтобы не было повторений
end;
Пример использования:
// Использовать можно по разному, например:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i: integer;
mass: array of integer; //массив над которым будем извращаться
begin
Memo1.Lines.Clear; //сюда выведем результат
SetLength(mass, strtoint(Edit1.Text)); //тут получим размерность массива
MassRand(strtoint(Edit1.Text), mass); //соответственно поимели процедуру
for i := 0 to length(mass) - 1 do
begin
Memo1.Lines.Add(inttostr(mass[i])); //отобразили пользователю результат
end;
end;
Приведенный код - это программный проект на языке Delphi, который заполняет массив случайными уникальными целыми числами в указанном диапазоне. Процедура Вот подробное описание кода:
Функция Для использования этого кода можно создать форму с текстовым полем ( Пример использования: В этом примере размер массива определяется значением, введенным в Процедура заполнения массива неповторяющимися случайными целыми числами, начиная с 1 или 0, для последовательности от 1 до N. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||