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