Tekrar Etmeyen Rastgele Sayılar
Bilindiği gibi bilgisayarda üretilen sayılar yalancı rastgele sayılardır ve tekrar edebilirler. Daha önceki örneklerde klasik yöntemleri anlatmıştık, şimdi kendi geliştirdiğimiz yöntemle rastgele üretilen bir sayıdan bir daha üretilmemesini sağlayacağız.
Öncelikle Form üzerinde bir Button nesnesi ve bir tane Listbox nesnesi oluşturuyoruz. Ardından button'un üzerine çift tıklayarak Click olayına aşağıdaki kodlarımızı yazıyoruz.
Öncelikle Form üzerinde bir Button nesnesi ve bir tane Listbox nesnesi oluşturuyoruz. Ardından button'un üzerine çift tıklayarak Click olayına aşağıdaki kodlarımızı yazıyoruz.
Random motorunu hatırlayacağınız gibi aşağıdaki satır ile başlatıyorduk.
Random rastgele = new Random();
Spor Loto'da sayılar 1 ila 49 arasında üretileceği için aşağıdaki gibi sınırı 50 yapıyoruz.
sayi = rastgele.Next(1, 50);
Burada her bir sayının ne kadar tekrarli geleceğini bilmediğimiz için sonsuz döngü kruuyoruz. Sonsuz döngü aşağıdaki şekilde kurulmaktadır. İstediğimiz adete ulaşınca break ile döngüyü kesip çıkıyoruz.
for( ; ; ){
}
Sayıyı her ürettiğimizde Listbox içine atıyoruz, daha sonra yeni üretilen sayı Listbox içinde var mı diye baştan sona taratıyoruz. Hatırlayacağınız gibi Listbox içindeki eleman sayısını Listbox1.Items.Count ile öğreniyorduk. Burada bir döngü açıp 0'dan listedeki eleman sayısına kadar gidip kontrolümüzü gerçekleştiriyoruz.
Döngüye girmeden önce Boolean (Mantıksal) tipteki yok değeri true, eğer döngüde herhangi bir tekrar eden sayıya rastlarsak yok değerini false yapıyoruz. Döngü bittikten sonra yok değeri true kalmışsa listeye ekliyoruz. Böylece tekrarı önlemiş oluyoruz.
Aşağıda kodların tamamı yer almaktadır.
private void button1_Click(object sender, EventArgs e)
{
Random rastgele = new Random();
int sayi, sayac=0;
listBox1.Items.Clear();
for (; ; )
{
sayi = rastgele.Next(1, 50);
Boolean yok = true;
for (int i = 0; i < listBox1.Items.Count ;i++)
{
if (sayi == (int)listBox1.Items[i])
{
yok = false;
}
} //listenin eleman sayısı kadar döner
if (yok)
{
listBox1.Items.Add(sayi);
sayac++;
if (sayac == 6)
break;
} //if şartı bitimi
}//sonsuz döngü
} //button click
Yukarıdaki ekran görüntüsünden de görüldüğü rastgele 6 sayı üretilmiş ama tekrar etmemektedir.
Mutlu kodlamalar,
Oğuzhan TAŞ
Aralık, 2021
Dil Değiştir(Change Language)
Kategoriler
- Csharp(58)
- Csharp Formlar(23)
- Web Tasarım(9)
- CSS(27)
- JavaScript(37)
- PHP(50)
- Laravel(3)
- ASP.net(38)
- Excel(15)
- Güvenlik(4)
- E-Ticaret(3)
- Kariyer(5)
- SQL Server(29)
- MySQL(16)
- Linux(17)
- MacOSX(8)
- Ayarlar(12)
- Bilgisayar Ağları(3)
- Symfony(1)
- Teknoloji(7)
- VBS(1)
- Arduino(6)
- RaspberryPi(1)
- Algoritmalar(15)
- HTML(3)
- Python(2)
- Bash Script(7)
- C Programlama(10)
- Flutter - Dart(11)
- Bootstrap(1)
En çok Okunan 18 Makale
- :: Excelde EĞER Fonksiyonu Kullanımı...
- :: Csharp ile Access Veritabanı Bağlan...
- :: SQL nedir, Temel SQL Komutları nele...
- :: Hangi Linux Dağıtımı?
- :: OSX İşletim Sistemine PHP, MySQL, A...
- :: PHP dilini kullanarak MySQLi tekniğ...
- :: Excel Hesap tablosunda EĞERSAY Fonk...
- :: Excel Hesap tablosunda ÇOKETOPLA Fo...
- :: Excel Hesap tablosunda ETOPLA Fonks...
- :: Excel Hesap tablosunda ÇOKEĞERSAY F...
- :: Hangi Programlama Dilini Öğrenmeliy...
- :: Mac Bilgisayarınıza Windows 7 Yükle...
- :: PHP ile Basit Dosya Yükleme
- :: C# Programlama Dili ile İlgili Örne...
- :: PHP Dili kullanarak MySQLi Tekniği ...
- :: Excel hücrelerinde yıldız koyarak b...
- :: PhpMyAdmin Şifresi Nasıl Değiştiril...
- :: Hangisi acaba, PHP mi ASP.NET mi ?