Воплотить функцию наполнения массива случайными числами без повторения частей (Pascal)

Реализовать функцию наполнения массива случайными числами без повторения частей (Pascal)

Задать свой вопрос
Лилия Бобахо
Там как-то через if надобно делать
1 ответ
// 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+1lt;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
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт