Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
Григорий Карпов
4 / 4 / 1
Регистрация: 14.07.2012
Сообщений: 209
1

Заполнить массив случайными неповторяющимися числами

23.04.2014, 17:59. Просмотров 1355. Ответов 2
Метки нет (Все метки)

Дан массив A[0..n] of integer. Нужно заполнить его случайными неповторяющимися числами от 0 до n (то есть, как будто перемешать индексы). Пробовал так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
var
  i, r: integer;
  d: set of byte;
begin
  randomize;
  for i := 0 to n - 1 do begin
    repeat      
      r := random(n);
    until not (r in d);
    d := d + [r];
    A[i] := r;
  end;
  d := [];
Но почему то при i > n/2 программа виснет...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2014, 17:59
Ответы с готовыми решениями:

Заполнить одномерный массив рандомными неповторяющимися числами
СРОЧНО!!! Ребята, помогите!!! Не могу написать код, позволяющий заполнить...

Используя датчик случайных чисел, заполнить массив из двадцати элементов неповторяющимися числами
тема:массив( матрицей решается) Используя датчик случайных чисел,заполнить...

Заполнить массив из 10 чисел случайными числами
При запуске формы заполнить массив из 10 чисел случайными числами в диапазоне...

Заполнить двумерный массив случайными числами на отрезке [-25,25]
Помогите с кодом к задаче: Дан двумерный массив размерности 10х10. Заполнить...

Заполнить случайными числами массив целых чисел X и в массив Y занести 10 наименьших положительных элементов X
Заполнить случайными числами массив с чилих чисел X и в массив Y занести 10...

2
Puporev
Модератор
54684 / 42103 / 29071
Регистрация: 18.05.2008
Сообщений: 99,357
23.04.2014, 18:21 2
А так
Delphi
1
2
3
4
5
6
7
8
9
 d:=[];
  for i := 0 to n - 1 do
   begin
    repeat
      r := random(n);
    until not (r in d);
    d := d + [r];
    A[i] := r;
  end;
Добавлено через 1 минуту
Только массив
A[0..n-1] of integer.
1
Григорий Карпов
4 / 4 / 1
Регистрация: 14.07.2012
Сообщений: 209
23.04.2014, 19:40  [ТС] 3
Цитата Сообщение от Puporev Посмотреть сообщение
А так
Поставил перед циклом d:=[]; - всё заработало
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2014, 19:40

Заполнить массив случайными числами с пом польз подпрограм
Чтобы столбцы 1 и 2,а строка n-число заполнялось случайными числамиunit Unit1;...

Заполнить массив случайными числами на отрезке и вывести на печать
Как реализовать задачи на delphi consol application? 1. Дан двумерный массив...

Заполнить одномерный массив из 10 элементов случайными целыми числами
Заполнить одномерный массив из 10 элементов случайными целыми числами.Вывести...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru