Array

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
rahim_azeri
Üye
Mesajlar: 113
Kayıt: 20 Eyl 2010 07:42

Array

Mesaj gönderen rahim_azeri »

Merhaba Arkadaslar.Mesela ben su rakamlari (1,2,3,4,5,6,7) random ile , array icerisine nasil dahil ede bilerim.Orn: myArray[5,1,7,2,6,3,4].Onceden tesekkurler.
varyemez
Üye
Mesajlar: 262
Kayıt: 01 Oca 2009 11:00
Konum: Bursa
İletişim:

Re: Array

Mesaj gönderen varyemez »

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
dizim:ARRAY of integer;
 i:integer;
begin
setlength(dizim,10); //arrayın boyunu 10 yap
for i:= 0 to 9 do begin
  dizim[i]:=random(100);   // 100 e kadar bir sayı rastgele
memo1.Lines.Add(inttostr(dizim[i]));
end;
end;
rahim_azeri
Üye
Mesajlar: 113
Kayıt: 20 Eyl 2010 07:42

Re: Array

Mesaj gönderen rahim_azeri »

Kardes ben istiyorum ki memo icerisinde ayni rakamdan 1 tane olsun,ayni rakamdan 2 tane ve cok olmasin.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Array

Mesaj gönderen sabanakman »

Başka bir memo içine sırayla tüm sayıları ekleyin ve tüm bu rakamlar arasından rasgele sayılar çekin.

Kod: Tümünü seç

Randomize;
MemoSayilar.Clear;
Adet:=20;
for i:=1 to Adet do MemoSayilar.Lines.Add(IntToStr(i));
MemoKarisik.Lines.Clear;
for i:=1 to Adet do begin
  j:=Random(MemoSayilar.Lines.Count);
  MemoKarisik.Lines.Add(MemoSayilar.Lines[j]);
  MemoSayilar.Lines.Delete(j);
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Array

Mesaj gönderen SimaWB »

sabanakman yazdı:Başka bir memo içine sırayla tüm sayıları ekleyin ve tüm bu rakamlar arasından rasgele sayılar çekin.

Kod: Tümünü seç

Randomize;
MemoSayilar.Clear;
Adet:=20;
for i:=1 to Adet do MemoSayilar.Lines.Add(IntToStr(i));
MemoKarisik.Lines.Clear;
for i:=1 to Adet do begin
  j:=Random(MemoSayilar.Lines.Count);
  MemoKarisik.Lines.Add(MemoSayilar.Lines[j]);
  MemoSayilar.Lines.Delete(j);
end;
Sanırım bu örnekte ufak bir hata var. Random sonunucunda aynı değer bir daha dönerse problem olur.
There's no place like 127.0.0.1
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Array

Mesaj gönderen SimaWB »

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
const
  Sayilar = '1234567';
var
  i, ln: integer;
  s: string;
begin
  Randomize;
  Memo1.Clear;
  ln := Length(Sayilar);
  while Memo1.Lines.Count <> ln do
  begin
    s := Sayilar[Random(ln)+1];
    if Memo1.Lines.IndexOf(s) = -1 then
      Memo1.Lines.Add(s);
  end;
end;
There's no place like 127.0.0.1
rahim_azeri
Üye
Mesajlar: 113
Kayıt: 20 Eyl 2010 07:42

Re: Array

Mesaj gönderen rahim_azeri »

Tesekkur ederim...
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Array

Mesaj gönderen sabanakman »

SimaWB yazdı:Sanırım bu örnekte ufak bir hata var. Random sonunucunda aynı değer bir daha dönerse problem olur.
Seçilen sayı MemoSayilar.Lines.Delete(j); koduyla listeden silindiği için her sayı bir kere seçilmektedir, sanırım gözden kaçtı ama çok önemli bir detay :wink: .
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Array

Mesaj gönderen SimaWB »

sabanakman yazdı:
SimaWB yazdı:Sanırım bu örnekte ufak bir hata var. Random sonunucunda aynı değer bir daha dönerse problem olur.
Seçilen sayı MemoSayilar.Lines.Delete(j); koduyla listeden silindiği için her sayı bir kere seçilmektedir, sanırım gözden kaçtı ama çok önemli bir detay :wink: .
Evet haklısınız, kusura bakmayın...
There's no place like 127.0.0.1
Cevapla