IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Инициализация массивов
status
сообщение 9.10.2007 20:16
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 35
Пол: Мужской
Реальное имя: andrey

Репутация: -  0  +


Я вот у здесь нашел Массивы. Матрицы. Типичные задачи. "Инициализация массивов случайными значениями", а как правильно сделать инициализацию массива случаайными значениями и так чтобы это значения в массиве не повторялись в диопозоне 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;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 9.10.2007 20:33
Сообщение #2


Гость






Обрати внимание - дин. массив индексируется от 0 до N - 1...

procedure TForm1.Button5Click(Sender: TObject);
const
k = 1000;
var
mas: array of integer;
i, n, T, swap: integer;

begin
n := StrToInt(Edit1.Text);
SetLength(mas, k);
StringGrid1.RowCount := 1;

Randomize;
for i := 0 to k - 1 do mas[i] := i + 1;

// реализуем алгоритм перемешивания - Shuffle
for i := 0 to k - 1 do begin
swap := random(k);
T := mas[i];
mas[i] := mas[swap];
mas[swap] := T;
end;
StringGrid1.RowCount := n;
For i := 0 to n - 1 do
StringGrid1.Cells[0, i] := IntToStr(mas[i]);

SetLength(mas, 0); // Освобождаем массив
end;



Сообщение отредактировано: volvo - 9.10.2007 20:35
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.07.2025 8:42
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"