6.5 – Liste Üzerinden Toplam, Ortalama vb. İşlemler

📘 6.5 – Liste Üzerinden Toplam, Ortalama vb. İşlemler


🔹 Açıklama:

Birçok uygulama, kullanıcıdan alınan veriler üzerinde toplama, ortalama alma, en büyük/en küçük değeri bulma gibi işlemler yapmayı gerektirir. Bu işlemler genellikle ListBox veya ComboBox gibi veri gösterim kontrolleri üzerinden gerçekleştirilir.

Bu bölümde öğrenciler:

  • ListBox içindeki verileri döngüyle okuyarak matematiksel işlem yapmayı
  • Seçili veya tüm öğelerle işlem yapmayı
  • Sonuçları Label, MessageBox gibi kontrollerle göstermeyi öğrenecekler

📍 Kullanım Alanları:

  • Not hesaplama uygulamaları
  • Fatura, harcama, alışveriş sepeti hesaplamaları
  • Sayısal analiz ve raporlama uygulamaları
  • Anket ve veri değerlendirme sistemleri

🎯 Kazanımlar:

  • ListBox verilerini kodla analiz etme becerisi
  • Kullanıcının girdiği verileri işleyip anlamlı çıktılar oluşturma
  • Sayısal veri güvenliği ve geçerli veri kontrolü
  • Basit veri istatistikleri üretme
  • Gerçek hayata dönük uygulamalar geliştirme

🧪 6.5 – Liste Üzerinden Toplam, Ortalama vb. İşlemler: Uygulamalı 5 Örnek


📌 Örnek 1: Sayıların Toplamını Hesaplama

🎯 Amaç:

ListBox içindeki tüm sayıları toplayarak sonucu göstermek.

🎨 Form Elemanları:

  • lstSayilar, btnToplam, lblToplam

💻 Kod:

private void btnToplam_Click(object sender, EventArgs e)
{
    int toplam = 0;

    foreach (var item in lstSayilar.Items)
    {
        if (int.TryParse(item.ToString(), out int sayi))
        {
            toplam += sayi;
        }
    }

    lblToplam.Text = "Toplam: " + toplam;
}

📝 Açıklama:

Tüm öğeler taranır, geçerli sayılar toplanır ve Label’a yazılır.


📌 Örnek 2: Ortalama Hesaplama

🎯 Amaç:

ListBox içindeki sayıların ortalamasını almak.

🎨 Form Elemanları:

  • lstNotlar, btnOrtalama, lblOrtalama

💻 Kod:

private void btnOrtalama_Click(object sender, EventArgs e)
{
    int toplam = 0, adet = 0;

    foreach (var item in lstNotlar.Items)
    {
        if (int.TryParse(item.ToString(), out int not))
        {
            toplam += not;
            adet++;
        }
    }

    if (adet > 0)
        lblOrtalama.Text = "Ortalama: " + (toplam / (double)adet).ToString("0.00");
    else
        lblOrtalama.Text = "Geçerli not yok.";
}

📝 Açıklama:

Geçerli sayı sayısı kontrol edilir, hata oluşmaz.


📌 Örnek 3: En Büyük ve En Küçük Sayıyı Bulma

🎯 Amaç:

ListBox içindeki sayılardan en büyük ve en küçüğü tespit etmek.

🎨 Form Elemanları:

  • lstDegerler, btnAnaliz, lblEnBuyuk, lblEnKucuk

💻 Kod:

private void btnAnaliz_Click(object sender, EventArgs e)
{
    List<int> sayilar = new List<int>();

    foreach (var item in lstDegerler.Items)
    {
        if (int.TryParse(item.ToString(), out int sayi))
            sayilar.Add(sayi);
    }

    if (sayilar.Count > 0)
    {
        int enBuyuk = sayilar.Max();
        int enKucuk = sayilar.Min();

        lblEnBuyuk.Text = "En Büyük: " + enBuyuk;
        lblEnKucuk.Text = "En Küçük: " + enKucuk;
    }
}

📝 Açıklama:

Tüm sayılar listeye alınır, Min() ve Max() ile analiz edilir.


📌 Örnek 4: Pozitif ve Negatif Sayıları Ayırma

🎯 Amaç:

ListBox içindeki sayıları pozitif ve negatif olarak ayırmak.

🎨 Form Elemanları:

  • lstTumSayilar, lstPozitif, lstNegatif, btnAyir

💻 Kod:

private void btnAyir_Click(object sender, EventArgs e)
{
    lstPozitif.Items.Clear();
    lstNegatif.Items.Clear();

    foreach (var item in lstTumSayilar.Items)
    {
        if (int.TryParse(item.ToString(), out int sayi))
        {
            if (sayi >= 0)
                lstPozitif.Items.Add(sayi);
            else
                lstNegatif.Items.Add(sayi);
        }
    }
}

📝 Açıklama:

Veriler iki farklı ListBox’a pozitif-negatif olarak ayrılır.


📌 Örnek 5: Seçilen Sayıların Ortalamasını Alma

🎯 Amaç:

Kullanıcının ListBox’tan seçtiği sayıların ortalamasını almak.

🎨 Form Elemanları:

  • lstSecimliNotlar (SelectionMode = MultiExtended), btnSeciliOrtalama, lblSeciliOrt

💻 Kod:

private void btnSeciliOrtalama_Click(object sender, EventArgs e)
{
    int toplam = 0, adet = 0;

    foreach (var item in lstSecimliNotlar.SelectedItems)
    {
        if (int.TryParse(item.ToString(), out int sayi))
        {
            toplam += sayi;
            adet++;
        }
    }

    if (adet > 0)
        lblSeciliOrt.Text = "Seçilen Ortalama: " + (toplam / (double)adet).ToString("0.00");
    else
        lblSeciliOrt.Text = "Seçim yapılmadı.";
}

📝 Açıklama:

Yalnızca seçilen öğeler üzerinden işlem yapılır.


✅ Özet:

Bu bölümle birlikte öğrenciler artık:

  • Veriyi analiz etmeyi
  • Matematiksel işlemler uygulamayı
  • Arayüzle veri arasında köprü kurmayı
  • ListBox kontrollerini istatistiksel araç olarak kullanmayı öğrenmiş oldu.

Leave a Reply