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

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

23.04.2014, 17:59. Просмотров 1251. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Заполнить массив случайными неповторяющимися числами (Delphi):

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

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

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

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

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

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

2
Puporev
Модератор
54127 / 41760 / 28872
Регистрация: 18.05.2008
Сообщений: 98,281
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
Привет! Вот еще темы с решениями:

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

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

Заполнить двумерный массив размерности 10х10 случайными числами на отрезке [-25,25]
Нужно не consol application а через vsl aplication Дан двумерный массив...

Как заполнить одномерный массив размерности 20 случайными числами на отрезке [-25;25]?
как заполнить одномерный массив размерности 20 случайными числами на отрезке ?


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

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

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