В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
Йома
Йома
16.12.2020 23:17 •  Информатика

Реализовать процедуру заполнения массива случайными числами без повторения элементов (pascal)

Ответ:
IVIOPGAN
IVIOPGAN
07.10.2020 09:25
// 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
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?