Eğitime destek yazı dizisine devam ediyoruz. Siz de yazılım ile alakalı problemlerinizi bize yorum olarak gönderebilirsiniz. Bir önceki yazımızda rastgele sayı üretme programı yapmıştık. Yapmış olduğumuz programa ek olarak bu sefer de Üretilen 10 tane sayının ortalamaya en yakın olanını bulacağız. Yazılan örnekler Visual Studio 2013 kullanılarak hazırlanmıştır. Kullanımınıza bağlı olarak ekran fotoğrafları değişiklik gösterebilir. Örneğimize geçecek olursak;

  • Formu yeniden çalıştırdığımızda üretilen sayılar ve ortalamaları ekranda gözükmektedir.
C# Dersleri
private void btnUret_Click(object sender, EventArgs e)
        {
            listSayilar.Items.Clear(); // Daha önce üretilen sayılar temizleniyor
            Random rs = new Random();
            int Toplam = 0; // Üretilen sayıların toplamlarını tutmak için değişken tanımlanıyor.
            for (int i = 0; i < 10; i++)
            {
                listSayilar.Items.Add(rs.Next(0, 100)); // 0 - 100 arasında sayı üretilip listbox'a ekleniyor
                Toplam += Convert.ToInt32(listSayilar.Items[i]); // En son üretilen sayı toplam değişkenine ekleniyor - toplanıyor
            }
            this.Text = (Toplam / 10).ToString();
        }


        private void btnOrtalamaYakini_Click(object sender, EventArgs e)
        {
            // Daha önce hesaplanan ortalama değeri formun başlığından alınıp değişkene yazılıyor.
            Int32 Ortalama = Convert.ToInt32(this.Text);
            int[] FarklarDizisi = new int[10]; // Farkların tutulacağı dizi.

            // Ortalama sayı ile üretilen sayıların farkları alınarak yakınlık dereceleri tespit ediliyor.
            // Farkı 0 - sıfır çıkan sayı ortalama ile aynı sayıdır. :)) 
            // Sıfır yoksa arttırılarak en yakını bulunmalıdır.
            // listbox içerisinde döngü ile aradaki farklar hesaplanıp bir diziye atılıyor.
            for (int i = 0; i < listSayilar.Items.Count; i++)
            {
                FarklarDizisi[i] = Math.Abs(Convert.ToInt32(listSayilar.Items[i]) - Ortalama); // Math.Abs = Mutlak değer metodudur.
            }

            int EnKucukSayi = 1000; // En küçük sayı ile karşılaştırmak ve dizideki en küçük elemanı bulmak için büyük bi sayı ile döngüye başlanıyor.
            int BulunanSayi = 0;

            for (int x = 0; x < FarklarDizisi.Length; x++) // FarklarDizisi.Length = dizinin uzunluğu kadar döngü başlatalım.
            {
                if (EnKucukSayi > FarklarDizisi[x]) // EnKucukSayi değişkeni ile dizinin indisindeki sayı karşılaştırılıp atama yapılıyor. 
                {
                    BulunanSayi = Convert.ToInt32(listSayilar.Items[x]);
                    EnKucukSayi = FarklarDizisi[x]; // En küçük sayı yeni bulunan değer ile yer değiştiriliyor.
                }
            }
            // Döngü bittikten sonra mesaj ile en son bulunan sayı ekranda gösteriliyor.
            lblEnYakin.Text = "Ortalamaya en yakın sayı: " +  BulunanSayi.ToString();
        }
  • F9 ile durak noktası koyup kodu adım adım incelediğimizde for döngüsü sonrası aradaki farkların diziye atılmış hali aşağıdaki görseldeki gibi olmaktadır. Bu dizideki en küçük değerin dizi indis numarası ile listbox’daki sayıların indis numaraları aynı olduğundan en küçük farka karşılık gelen sayı ortalamaya en yakın sayıdır.
Kod Örneği
  • Burada çalışma anında gerçek sayılar ile ortalama farkı arası hesaplanarak oluşturulan dizinin görüntüsü verilmiştir. Bu ve bunun gibi işlemleri kodu yazarken zihninizde canlandırmanız gerekmektedir.
C# Ortalama İşlemleri

Yazıya 2 adet yorum yapılmış.

  • ardent blaze
    ardent blaze
    Cevapla

    Abi sanki kodu da gösterseniz daha tatlı olurmuş 😀

    • Divizyon
      Divizyon
      Cevapla

      Yarın güncellenecek 😉 Güncellendi 😉

Yorum Yazın

E-Posta Adresiniz görüntülenmeyecektir. Zorunlu alanlar *
Yan taraftaki HTML kodları kullanarak yorum yapabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>