Заполнение массива неповторяющимися случайными целыми числами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 и FreePascal. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |