Предмет: Информатика,
автор: proxiv
Реализовать процедуру заполнения массива случайными числами без повторения элементов (Pascal)
Ответы
Автор ответа:
0
// PascalABC.NET 3.3, сборка 1583 от 25.11.2017
// Внимание! Если программа не работает, обновите версию!
procedure FillRandom(var P:array of integer; a,b:integer);
begin
var (k,n):=(0,P.Length);
repeat
P:=ArrRandom(n,a,b);
k+=1;
until P.Distinct.Count=n;
Writeln('Сделано ',k,' генераций массива')
end;
begin
var n:=ReadInteger('n=');
var (a,b):=ReadInteger2('Укажите интервал значений элементов:');
if b-a+1<n then Writeln('Задание выполнить невозможно')
else begin
var x:=new integer[n];
FillRandom(x,a,b);
x.Println
end
end.
Примеры
n= 15
Укажите интервал значений элементов: 10 30
Сделано 695 генераций массива
14 26 30 18 27 20 28 10 25 12 22 29 13 15 17
n= 15
Укажите интервал значений элементов: -50 50
Сделано 6 генераций массива
20 11 31 8 12 -47 16 -27 -21 -44 32 10 47 -36 46
// Внимание! Если программа не работает, обновите версию!
procedure FillRandom(var P:array of integer; a,b:integer);
begin
var (k,n):=(0,P.Length);
repeat
P:=ArrRandom(n,a,b);
k+=1;
until P.Distinct.Count=n;
Writeln('Сделано ',k,' генераций массива')
end;
begin
var n:=ReadInteger('n=');
var (a,b):=ReadInteger2('Укажите интервал значений элементов:');
if b-a+1<n then Writeln('Задание выполнить невозможно')
else begin
var x:=new integer[n];
FillRandom(x,a,b);
x.Println
end
end.
Примеры
n= 15
Укажите интервал значений элементов: 10 30
Сделано 695 генераций массива
14 26 30 18 27 20 28 10 25 12 22 29 13 15 17
n= 15
Укажите интервал значений элементов: -50 50
Сделано 6 генераций массива
20 11 31 8 12 -47 16 -27 -21 -44 32 10 47 -36 46
Похожие вопросы
Предмет: Геометрия,
автор: musoff7
Предмет: География,
автор: nigarayakupova
Предмет: Математика,
автор: presverfai1988
Предмет: Алгебра,
автор: grishinayfnfkb
Предмет: Биология,
автор: Annushka2421