Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
ВнизМассив Найти похожие ветки
← →
Rim (2004-03-11 21:48) [0]Помогите пожалуйста,как сделать что бы цыфры в StringGrid1 не повторялись.
procedure TForm1.Button1Click(Sender: TObject);
var
a: array [1..7] of integer; //наш массив
i: integer; //индексная переменная
begin //случайно задаем массив
randomize; //инициализируем генератор случайных чисел
for i:=low(a) to high(a) do
//от нижнего к верхнему
begin
a[i]:=random(10);
//берем случайное в пределах 10
StringGrid1.Cells[i-1,0]:=IntToStr(a[i]);
//кидаем строчку полученную из целого числа в соответствующую ячейку СтрингГрида1
end; //все
end;
← →
ssk (2004-03-11 22:15) [1]держи :-)
procedure TForm1.Button1Click(Sender: TObject);
var
a: array [1..7] of integer; //наш массив
i: integer; //индексная переменная
begin
randomize;
for i:=low(a) to high(a) do
begin
//берем случайное в пределах 10
repeat
a[i]:=random(10);
until StringGrid1.Rows[0].IndexOf(IntToStr(a[i]))=-1;
//кидаем строчку полученную из целого числа в соответствующую ячейку СтрингГрида1
StringGrid1.Cells[i-1, 0]:=IntToStr(a[i]);
end; //все
end;
← →
Rim (2004-03-11 22:34) [2]А нельзя ли наполнить массив случайными не повторяющимися числами ?
← →
ssk (2004-03-11 22:53) [3]можно. один из вариантов:
procedure TForm1.Button1Click(Sender: TObject);
const
xMax = 7; // размеры нашего массива
yMax = 7;
var
m: array [0..xMax, 0..yMax] of byte;
c, r, k, q: byte;
begin
for c:=0 to xMax do
for r:=0 to yMax do
m[c, r]:=0; // обнуляем массив (на всякий случай)
// здесь мы собственно и заполняем массив
for k:=1 to xMax*yMax do
repeat
c:=random(xMax);
r:=random(yMax);
if m[c, r]=0 then
m[c, r]:=k;
until m[c, r]=k;
// выводим массив в стринггрид
StringGrid1.RowCount:=xMax;
StringGrid1.ColCount:=yMax;
for c:=0 to xMax do
for r:=0 to yMax do
StringGrid1.Cells[c, r]:=IntToStr(m[c, r]);
end;
если кому-то покажется кривовато, то извините... ;-)
← →
Rim (2004-03-11 23:28) [4]Есть функция заполнения массива случайными неповторяющимися числами:
procedure FillArray(var A: array of Integer);
var
I, S, R: Integer;
begin
for I := 0 to High(A) do A[I] := I;
for i := High(A) downto 0 do begin
R := Random(I);
S := A[R]; A[R] := A[I]; A[I] := S;
end;
end;
помогите ее применить в моём примере
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.034 c