Письмо от читателя...
Здравствуйте, Валентин. Огромное Вам спасибо за сбор и систематизацию советов
по Delphi. Предлагаю Вам интересное решение заполнения массива случаными
неповторяющимися значениями. Думаю этот алгоритм небесполезен.
|
|
type arr=
array [1..255] of
integer;
procedure FillArray(var A: arr; n:
integer); var i: integer;
s: string;
q: byte; begin
randomize;
s:='';
for i:=1 to n do
begin
q:=random(i);
insert(chr(i),s, q);
end;
for i:=1 to n do
begin
A[i]:=ord(s[i]);
end; end; |
С уважением Дедок Василий. e-mail: dedokv@mail.ru
He вступая в дискуссию, цитирую следующее письмо:
Заполнять ЦЕЛОЧИСЛЕННЫЙ массив, используя строки -- ЭТО ПОШЛО!
Приведу стандартную процедуру, работает в шесть раз быстрее, не имеет
ограничений, да и кода поменьше :)
|
|
procedure
FillArray(var A: array of Integer); var
I, S, R: Integer; begin
for I := 0 to High(A) do
A[I] := I;
for i := High(A) downto 0
do begin
R := Random(I);
S := A[R]; A[R] := A[I]; A[I] := S;
end; end; |
С уважением, Иваненко Фёдор Григорьевич.
e-mail: theodor_iv@mail.ru |