Оригинал статьи: http://www.cyberforum.ru/pascal/thread133142.html
Благодарен всем авторам, которые внесли свой вклад в сборку кода.
type Tarr = array of integer; procedure FillArray(var a: Tarr; n, r1, r2: integer);{a - массив; n - длина массива; r1, r2 - диапазоны рандома} var i, j: integer; p: boolean; begin randomize; setlength(a, n); if r2 - r1 < n then begin for i := 1 to n - 1 do a[i] := random(r2 - r1 + 1) + r1; end else begin a[0] := random(r2 - r1 + 1) + r1; p := false; for i := 1 to n - 1 do begin repeat a[i] := random(r2 - r1 + 1) + r1; p := false; for j := 0 to i - 1 do begin if a[j] = a[i] then p := true; end; until p = false; end; end; end; procedure WriteArray(a: Tarr); var i: integer; begin for i := 0 to length(a) - 1 do begin write(a[i]:4); end; writeln; end; var MyArray: Tarr; begin FillArray(MyArray, 10, 0, 10); WriteArray(MyArray); readln; end.