Programımız bir listbox’a 100 adet rastgele sayı aktarmakta ve bunları daha sonra küçükten büyüğe doğru sıralamaktadır.  Bunun için form üzerine bir adet listbox, iki adet de cmdekle, cmdsirala adlarıyla butonlar eklemeliyiz.

Kodumuz da şu şekilde olacak:

Public Class Form1

    Private Sub cmdekle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdekle.Click

        Dim lstrakamlar As New ArrayList

        Dim rastgele As New Random

        Dim i, j As Byte

 

        ListBox1.Items.Clear()

        lstrakamlar.Clear()

 

        For i = 0 To 99

            lstrakamlar.Add(i)

        Next i

 

     

        For j = 0 To 99

            Dim rakam As Byte = lstrakamlar.Item(rastgele.Next(99) + 1)

            ListBox1.Items.Add(lstrakamlar(rakam))

        Next j

 

    End Sub

 

    Private Sub cmdsirala_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdsirala.Click

        Dim l, m, aradeger As Byte

        For l = 0 To 99

            For m = l + 1 To 99

                If ListBox1.Items(l) > ListBox1.Items(m) Then

                    aradeger = ListBox1.Items(l)

                    ListBox1.Items(l) = ListBox1.Items(m)

                    ListBox1.Items(m) = aradeger

                End If

            Next m

        Next l

    End Sub

End Class

 

Burada

Dim lstrakamlar As New ArrayList

Komut satırı ile lstrakamlar adlı yeni bir dizi oluşturduk.

For i = 0 To 99

    lstrakamlar.Add(i)

Next i

 

Komut satırları ile  0 dan 99’a kadar 100 adet sayıyı lstrakamlar adlı dizimize aktardık.

Dim rastgele As New Random

Satırıyla rastgele adıyla rastgele tipte bir değişken tanımladık. Daha sonra

Dim rakam As Byte = lstrakamlar.Item(rastgele.Next(99) + 1)

Komut satırıyla rakam adlı byte tipinde bir değişken tanımlayarak lstrakamlar adlı diziden rastgele şekilde 100 adet sayıyı seçtik ve bu değişkene aktardık.

Sıralama bölümünde ise

For l = 0 To 99

    For m = l + 1 To 99

       If ListBox1.Items(l) > ListBox1.Items(m) Then

         aradeger = ListBox1.Items(l)

         ListBox1.Items(l) = ListBox1.Items(m)

         ListBox1.Items(m) = aradeger

       End If

    Next m

 Next l

 

Komut satırlarında öncelikle iç içe 2 döngü kurulmakta. Bu döngülerden ikincisi birincisinden bir fazla değer almakta. Bunun nedeni önceki değerle sonraki değeri karşılaştırmak için.  Burada önceki değer sonraki değerden büyükse  yer değiştirme işlemi yapılmaktadır. Yer değiştirme işlemi sırasında aradeger isimli bir değişken vasıtası ile yer değiştirme işlemini yapmaktayız. Değerler yer değiştirilmeden önce aradeger değişkenine aktarılmaktadır.

Programımızı çalıştırıp ekle düğmesine bastığımızda aşağıdaki resimde görüldüğü gibi rastgele 100 adet sayı eklenmektedir.

Sırala düğmesine bastığımızda ise sayılar sıralanarak yine aynı listbox içerisine aktarılmaktadır.

Proje dosyamızın linki:

http://www.volkanaktas.com/PrgDosya/vbnet/rastgeledizi.rar

 

 

Etiketler : VB.Net
Kategoriler : VB.Net
Yorumlar : 4 Yorum Yorum Yaz

Yorumlar

Volkan AKTAŞ 3/9/2010 8:51 PM
ubeydullah bey. Amacınıza ulaştınız mı ulaşamadınız mı tam anlayamadım. Ulaşamadıysanız yardımcı olmaya çalışırım.
ubeydullah 3/9/2010 4:37 PM
vb den excel e verı aktarımını arastırdım . amacıma ulasamdım. sıtesınıze tesekurler.
Volkan AKTAŞ 5/18/2009 9:51 AM
Proje dosyasını indirip bir daha kontrol ettim. Hata yok çalışıyor.
binnur 5/16/2009 1:37 PM
hocam son sralama kısmında hata var sanırım hata veriyo orda

Yorum Yaz

Adınız: *
E-Mail Adresiniz: *
Web Sitesi:
Yorum: *
Güvenlik Kodu: *
 
Arama
  Ara
Takvim
<September 2010>
SMTWTFS
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789
Tag Bulutu