yenidizi = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"];
elimde yenidizi şeklinde bir array var.ben bu arraydaki sayıların yerlerini her seferinde değiştirmek istiyorum.Delphide böyle bir kod mevcuttmu acaba?
Array Karıştırmak
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Re: Array Karıştırmak
Random ile her seferinde 1 ile 13 arasında iki sayı üret, bu sayılardaki elemanları değiştir
Örneğin;
3, 7 geldiyse arrayde 3. ve 7. elemanı değiştir, bunu sürekli yaparsan yerleri değiştirmiş olursun.
Örneğin;
3, 7 geldiyse arrayde 3. ve 7. elemanı değiştir, bunu sürekli yaparsan yerleri değiştirmiş olursun.
Re: Array Karıştırmak
Delphiabout.com dan güzel bir örnek.....
Yukardaki procedure un örnek kullanımı aşağıda...Sen kendine göre atamanı listbox a değilde diziye olacak şekilde değiştir....
Kod: Tümünü seç
procedure Shuffle(var aArray;aItemCount: Integer;aItemSize: Integer) ;
var
Inx: Integer;
RandInx: Integer;
SwapItem: PByteArray;
A: TByteArray absolute aArray;
begin
if (aItemCount > 1) then
begin
GetMem(SwapItem, aItemSize) ;
try
for Inx := 0 to (aItemCount - 2) do
begin
RandInx := Random(aItemCount - Inx) ;
Move(A[Inx * aItemSize], SwapItem^, aItemSize) ;
Move(A[RandInx * aItemSize],A[Inx * aItemSize], aItemSize) ;
Move(SwapItem^, A[RandInx * aItemSize],aItemSize) ;
end;
finally
FreeMem(SwapItem, aItemSize) ;
end;
end;
end;
Kod: Tümünü seç
procedure TForm2.Button1Click(Sender: TObject);
var
a: array[1..14] of Integer;
i: Shortint;
begin
Randomize;
for i := Low(a) to High(a)-1 do a[i] := i;
Shuffle(a, High(a), SizeOf(Integer)) ;
ListBox1.Clear;
for i := 1 to High(a) - 1 do
ListBox1.Items.Add(IntToStr(a[i])) ;
end;