![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
status |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 35 Пол: Мужской Реальное имя: andrey Репутация: ![]() ![]() ![]() |
Я вот у здесь нашел Массивы. Матрицы. Типичные задачи. "Инициализация массивов случайными значениями", а как правильно сделать инициализацию массива случаайными значениями и так чтобы это значения в массиве не повторялись в диопозоне 1 до 1000? Помогите пожалуйста!
я делаю так и незнаю как правильно сделать проверку на повторение : Код rocedure TForm1.Button1Click(Sender: TObject); const k=1000; var mas:array of integer; i,n:integer; begin n:=StrToInt(Edit1.Text); SetLength(Mas, n); Stringgrid1.RowCount:=1; randomize; for i:=0 to n do mas[i]:=random(k); Stringgrid1.RowCount:=n; For i:=0 to n do Stringgrid1.cells[0,i]:=inttostr(mas[i]); end; |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Обрати внимание - дин. массив индексируется от 0 до N - 1...
Сообщение отредактировано: volvo - 9.10.2007 20:35 |
status |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 35 Пол: Мужской Реальное имя: andrey Репутация: ![]() ![]() ![]() |
Получается размер массива равен константе к , а мне надо размерность вводить самому т.е. размер массива должен быть равен N. При попытке изменить размер на N не выполняет ининцилизацию, почему?
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Цитата размер массива должен быть равен N Это у тебя где написано? У тебя написано, что тебе надо проинициализировать StringGrid.Cells случайными значениями (по крайней мере это следует из твоей программы)... А уж каким способом - это не оговаривается... Не нравится std::shuffle из стандартной библиотеки С++ - придумывай свой велосипед... Добавлено через 6 мин. В крайнем случае всегда можно после перемешивания массива уменьшить его размер до требуемого: SetLength(mas, n); Сообщение отредактировано: volvo - 10.10.2007 16:56 |
status |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 35 Пол: Мужской Реальное имя: andrey Репутация: ![]() ![]() ![]() |
А зжесь нельзя размер массива самому произвольно вводить через Edit (n := StrToInt(Edit1.Text) - это должно быть размером массива ) ?
Добавлено через 2 мин. ой, предидущее сообщен ие написал до редоктирования! |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Можно-то оно можно, только пойми: если ты установишь размер массива не в 1000, то тебе придется при занесении элементов в этот массив проверять дубликаты вместо того чтобы просто заполнить элементы значениями индексов как это сделал я...
|
status |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 35 Пол: Мужской Реальное имя: andrey Репутация: ![]() ![]() ![]() |
Да я понял, просто мне надо было изменить размер массива на N что бы потом в этом массиве производить поиск ключа. SetLength(mas, n); - это вроде помогло! Спасибо за помощь!
|
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 23:37 |