Bu makalede, bir Windows Forms uygulaması içerisinde, ListBox bileşenine eklenen sayılar arasında asal olanları kontrol eden bir sistem geliştireceğiz. Kullanıcı, sayıları ekledikten sonra, uygulama bu sayıları kontrol eder ve asal olanları seçili yaparak kullanıcıya bilgi verir.
Projenin Adımları
- Form Tasarımı
Bu uygulama için gerekli olan bileşenler:- TextBox (txtSayi): Kullanıcının sayı girişi yapabileceği alan.
- Button (btnEkle): Kullanıcının TextBox’a girdiği sayıyı ListBox’a eklemek için kullanılır.
- ListBox (listBox1): Kullanıcının girdiği sayıları göstermek için kullanılır.
- Button (btnKontrol): ListBox’taki sayıları kontrol edip asal olanları seçmek için kullanılan butondur.
- Asal Sayı Kontrolü Metodu
Asal sayı kontrolü için bir metot oluşturulacaktır. Bu metot, girilen sayının asal olup olmadığını belirleyecek.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | private bool Asalmi(int s) { // Sayı 1 ve daha küçükse asal değildir. if (s <= 1) return false; // Sayı 2'den başlar, sayının kareköküne kadar bölünebilirliği kontrol eder. for (int i = 2; i <= Math.Sqrt(s); i++) { // Eğer sayi 'i' ile tam bölünebiliyorsa, asal değildir. if (s % i == 0) return false; } // Eğer hiçbir bölen bulunmazsa, sayı asaldır. return true; } |
Bu metot şu şekilde çalışır:
- Sayının 1 ve daha küçük olup olmadığını kontrol eder. Eğer öyleyse,
false
döner. - 2’den başlayarak sayının kareköküne kadar olan tüm sayılarla bölünüp bölünmediğini kontrol eder. Eğer bir bölen bulunursa, sayı asal değildir ve
false
döner. - Hiçbir bölen bulunmazsa, sayı asaldır ve
true
döner.
Sayılara Asal Kontrolü Yapma
Kullanıcı, ListBox’a birkaç sayı ekledikten sonra “Kontrol Et” butonuna tıklayarak bu sayılar arasında asal olanları kontrol edebilir. Kodda şu adımlar izlenir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | private void btnKontrol_Click(object sender, EventArgs e) { // Asal sayıları saymak için bir sayaç int asalSayisi = 0; // ListBox'taki tüm elemanları kontrol et for (int i = 0; i < listBox1.Items.Count; i++) { // ListBox'taki elemanı tamsayıya çevir if (int.TryParse(listBox1.Items[i].ToString(), out int sayi)) { // Eğer sayı asal ise if (Asalmi(sayi)) { // Asal sayıyı seçili yap listBox1.SetSelected(i, true); asalSayisi++; // Asal sayıları say } } } // Kullanıcıya toplam asal sayıları göster MessageBox.Show($"Toplam {asalSayisi} adet asal sayı bulundu.", "Asal Sayılar", MessageBoxButtons.OK, MessageBoxIcon.Information); } |
Kod Açıklaması:
btnKontrol_Click
metodu, “Kontrol Et” butonuna tıklanınca çalışır.- ListBox’taki her bir öğe,
for
döngüsü ile kontrol edilir. int.TryParse
kullanılarak, ListBox’taki öğe (string formatında) tamsayıya çevrilir.- Eğer öğe bir tamsayı ise,
Asalmi
metodu ile bu sayının asal olup olmadığı kontrol edilir. - Eğer sayı asal ise,
listBox1.SetSelected(i, true)
metodu kullanılarak, bu sayı ListBox içinde seçili hale getirilir. - Asal sayılar bir sayaç ile sayılır ve sonuç kullanıcıya bir mesaj kutusunda gösterilir.
ListBox Denetiminde birden fazla öğe seçilebilmesi için:
SelectionMode özelliği MultiSimple veya MultiExtended olarak ayarlanmalıdır.
Sayılara Ekleme
Kullanıcı, TextBox’a bir sayı girip “Ekle” butonuna tıklayarak sayıyı ListBox’a ekler.
1 2 3 4 5 6 7 | private void btnEkle_Click(object sender, EventArgs e) { // TextBox'taki sayıyı ListBox'a ekler listBox1.Items.Add(txtSayi.Text); } |
- Kod Açıklaması:
btnEkle_Click
metodu, kullanıcı “Ekle” butonuna tıkladığında çalışır.- TextBox’taki sayıyı alır ve ListBox’a ekler.
Uygulama Sonucu
Uygulama çalıştırıldığında kullanıcı şunları yapabilir:
- Sayılara Ekleme: Kullanıcı, sayıları TextBox’a girip “Ekle” butonuna tıklayarak ListBox’a ekler.
- Asal Sayı Kontrolü: “Kontrol Et” butonuna tıkladığında, ListBox’taki sayılar kontrol edilir ve asal olanlar seçili hale gelir.
- Sonuç Gösterme: Kaç asal sayı olduğu bir mesaj kutusunda kullanıcıya bildirilir.