Bu makalede, C# Windows Forms uygulaması kullanarak, kullanıcıdan alınan sayılar arasından en küçük ve en büyük sayıları bulan bir uygulama yapacağız. Bu örnekte, LINQ (Language Integrated Query) kullanarak veri işleme ve en küçük ve en büyük sayıyı bulma işlemi gerçekleştireceğiz.
Projenin Amacı
- Kullanıcı, virgülle ayrılmış tamsayıları bir metin kutusuna girer.
- Program, LINQ kullanarak sayılar arasında en küçük ve en büyük sayıları bulur.
- Bu sayılar, ekranda gösterilir.
- Eğer sayı bulunamazsa kullanıcıya bir uyarı mesajı gösterilir.
Gerekli Araçlar
- Visual Studio (2022 veya daha yeni bir sürüm önerilir)
- .NET Framework ile Windows Forms App (C#)
Uygulamanın Adımları
1. Windows Forms Projesi Oluşturma
- Visual Studio’yu açın ve yeni bir Windows Forms App (.NET Framework) projesi oluşturun.
- Projenize bir isim verin (örneğin:
EnKucukEnBuyukSayi
).
2. Form Tasarımı
Form tasarımında aşağıdaki bileşenlere ihtiyacımız olacak:
- Label: Kullanıcıya bilgi vermek için (
"Virgülle ayrılmış sayıları girin:"
yazabilir). - TextBox (
txtSayilar
): Kullanıcıdan tamsayı dizisini almak için. - Button (
btnBul
): En küçük ve en büyük sayıyı bulma işlemini başlatmak için. - Label (
lblEnKucuk
): En küçük sayıyı göstermek için. - Label (
lblEnBuyuk
): En büyük sayıyı göstermek için.
Form Görünümü:
3. Kod Ekleme
Form tasarımından sonra, aşağıdaki kodu Form1.cs
dosyasına ekleyin. Bu kod, verilen sayılardan en küçük ve en büyük sayıları bulur.
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 27 28 29 30 31 32 | private void btnBul_Click(object sender, EventArgs e) { try { // Kullanıcıdan alınan metni parçala string giris = txtSayilar.Text; int[] sayilar = giris .Split(',') // Virgül ile ayır .Select(x => int.Parse(x.Trim())) // Her birini tamsayıya dönüştür .ToArray(); // LINQ ile en küçük ve en büyük sayıları bul if (sayilar.Any()) { int enKucukSayi = sayilar.Min(); int enBuyukSayi = sayilar.Max(); lblEnKucuk.Text = $"En Küçük Sayı: {enKucukSayi}"; lblEnBuyuk.Text = $"En Büyük Sayı: {enBuyukSayi}"; } else { MessageBox.Show("Lütfen geçerli sayılar girin.", "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { MessageBox.Show($"Bir hata oluştu: {ex.Message}", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error); } } |
Kodun Açıklaması
1. Kullanıcıdan Girdi Alma
1 2 3 | string giris = txtSayilar.Text; |
- Kullanıcı tarafından girilen virgüllerle ayrılmış sayıları alıyoruz.
2. Metni Tamsayı Dizisine Dönüştürme
1 2 3 4 5 6 | int[] sayilar = giris .Split(',') // Virgül ile ayır .Select(x => int.Parse(x.Trim())) // Her birini tamsayıya dönüştür .ToArray(); |
- Girilen metni virgüllerle ayırıp, her bir değeri tamsayıya dönüştürüyoruz ve bir diziye çeviriyoruz.
3. En Küçük ve En Büyük Sayıyı Bulma
1 2 3 4 | int enKucukSayi = sayilar.Min(); int enBuyukSayi = sayilar.Max(); |
Min()
metodu ile dizideki en küçük sayıyı buluyoruz.Max()
metodu ile dizideki en büyük sayıyı buluyoruz.
4. Sonuçları Ekranda Gösterme
1 2 3 4 | lblEnKucuk.Text = $"En Küçük Sayı: {enKucukSayi}"; lblEnBuyuk.Text = $"En Büyük Sayı: {enBuyukSayi}"; |
- Hesaplanan en küçük ve en büyük sayıları
Label
üzerinde gösteriyoruz.
5. Geçersiz Giriş veya Boş Veri Durumu
1 2 3 4 5 6 | else { MessageBox.Show("Lütfen geçerli sayılar girin.", "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Information); } |
- Eğer kullanıcı herhangi bir sayı girmezse veya geçersiz veri girerse, uyarı mesajı gösteriyoruz.
6. Hata Kontrolü
1 2 3 4 5 6 | catch (Exception ex) { MessageBox.Show($"Bir hata oluştu: {ex.Message}", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error); } |
- Uygulama çalışırken herhangi bir hata olursa, hata mesajı gösteriyoruz.
Örnek Çalışma
Sonuç
Bu uygulama, LINQ kullanarak dizilerdeki en küçük ve en büyük sayıları bulma işlemini kolaylaştıran basit bir örnektir. Kullanıcıdan alınan sayılarla veri işleme işlemleri gerçekleştirilmiştir.