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