Форум: "Основная";
Текущий архив: 2003.10.13;
Скачать: [xml.tar.bz2];
ВнизСортировка массивов Найти похожие ветки
← →
Soi (2003-10-01 06:08) [0]Помогите пожалуйста. Связался с delphi и столько сразу проблем, в ПЕРЛЕ такого я и не знал.
Проблема такая:
1) Как забить массив случайными числами (например в диапазоне 1..100), но так, чтобы эти числа не повторялись?
2) Или если можно, то существующий массив m:array[1..50] of integer отсортировать в произвольном порядке.
Заранее благодарен.
← →
Soi (2003-10-01 06:43) [1]1
← →
Думкин (2003-10-01 06:51) [2]У МВо есть программа, которая все делает с массивами и РНД.
Далее:
http://delphibase.endimus.com/?action=viewtopic&topic=mathsort
procedure TForm1.FormCreate(Sender: TObject);
begin
//Randomize выполняется один раз, например, при старте программы
//если этого не сделать, при каждом запуске программы последовательность
//чисел будет начинаться одинаково!
//Не следует вызывать Randomize в цикле:
// for ...
// Randomize;
// i:=Random(100);
// end;
//Поскольку Randomize инициализирует счетчик по времени,
//скорее всего значения i будут многократно повторяться
Randomize;
end;
.....
procedure TForm1.Button6Click(Sender: TObject);
var
A: array[1..N] of Integer;
i, j, temp: Integer;
begin
//получение массива случайных неповторяющихся чисел
//в диапазоне 1..N
//перемешиванием массива последовательных чисел
Memo1.Lines.Add("");
for i := 1 to N do
A[i] := i;
for i := 1 to N do begin
temp := A[i];
J := Random(N) + 1;
A[i] := A[j];
A[j] := temp;
end;
for i := 1 to N do
Memo1.Lines.Add(IntToStr(A[i]));
end;
Текст взят из программы любезно предоставленной МВо. ССылку не знаю.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c