C# Standart Sapma ve Ortalama Hesaplama

Herkese merhaba, C# yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda girilen 10 tane sayının ortalaması ve standart sapmasını hesaplamayı anlatacağım. Hadi başlayalım !
Table of Contents
Standart Sapma ve Ortalama Nedir ?
Standart sapma, veri değerlerinin aritmetik ortalamalarından farklarının karelerinin veri sayısından 1 eksiğine bölümünün karekökü olarak ifade edilen verilerin ortalamadan sapmalarının karaler ortalamasının kareköküdür ve matematikte sıklıkla kullanılmaktadır. C# ile standart sapmayı hesaplayabilmek için öncelikle sayıların ortalamasını hesaplamamız gerekiyor. Sayıları da kullanıcıdan alacağız. Ben kullanıcıdan 10 tane sayı alacak ve bunları bir integer dizisinde biriktireceğim. Sonrasında bir fonksiyon ile bu sayıların ortalamasını hesaplayacak ve son olarakta standart sapmayı hesaplayacağım. O yüzden öncelikle kullanıcıdan 10 tane sayı alalım. Bunları bir döngü yardımıyla teker teker alalım ve bir integer dizisinde biriktirelim. Yani kodumuz şu şekilde olacaktır;
int[] sayilar = new int[10];
for(int i = 0; i < 10; i++)
{
Console.Write((i + 1) + ". Sayıyı Giriniz: ");
int sayi = Convert.ToInt32(Console.ReadLine());
sayilar[i] = sayi;
}
Ortalama Hesaplama
Şimdi de ortalamayı hesaplayan fonksiyonu yazalım. Ortalama tüm sayıların toplamının toplam sayı adedine bölünmesiyle hesaplanmakta. Tüm sayıların toplamını bir döngü ile yapacağım ve döngünün her bir adımında daha önce oluşturduğum bir değişkene ekleme yapacağım. Yani şöyle bir kod yazacağım;
static double ortalamaHesapla(int[] dizi)
{
double toplam = 0;
for (int i = 0; i < 10; i++)
toplam += dizi[i];
return toplam / 10;
}
Standart Sapma Hesaplama
Ortalamayı hesapladığımıza göre artık standart sapmayı da hesaplayabiliriz. Standart sapmayı da yine bir döngü yardımıyla tüm sayıları dönecek ve her bir döngü adımında o anki sayıdan ortalama değeri çıkarıp karesini alacak ve toplayacağız. Karesini almak için Math sınıfı altındaki static olarak bulunan Pow() fonksiyonunu kullanacağız. Bu fonksiyon double tipte 2 tane parametre alıyor ve birinci parametrenin ikinci parametre kadar kuvvetini hesaplayıp geriye döndürüyor. Döngü bittikten sonra da toplam değeri sayı adetinin 1 eksiğine bölecek ve çıkan sonucunda karekökünü alacağız. Karekök hesaplamasını Math sınıfı altında static tipte bulunan Sqrt() fonksiyonunu kullanarak hesaplayacağız. Bu fonksiyon double tipte bir tane parametre istiyor ve parametre olarak aldığı sayının karekökünü geri döndürüyor.
static double standartSapmaHesapla(int[] dizi)
{
double ortalama = ortalamaHesapla(dizi);
double toplam = 0;
for (int i = 0; i < 10; i++)
toplam += Math.Pow((dizi[i] - ortalama), 2);
return Math.Sqrt(toplam / 9);
}
Kullanıcıya Bildirme
Artık hem ortalama, hemde standart sapmayı hesaplayan fonksiyonları oluşturduk. Sıra geldi bunları çağırmaya. Çağırma işlemini de Main() fonksiyonu içerisinde yapalım. Kullanıcıdan sayıları alıp diziye attıktan sonra hem ortalama hemde standart sapmayı hesaplayan fonksiyonları çağıralım ve sonuçlarını ekrana yazdıralım.
double ortalama = ortalamaHesapla(sayilar);
double standartSapma = standartSapmaHesapla(sayilar);
Console.WriteLine("Sayıların Ortalaması: " + ortalama);
Console.WriteLine("Sayıların Standart Sapması: " + standartSapma);
Tüm Kodlar
Evet C# ile ortalama ve standart sapma hesaplama bu şekilde yapılmakta. Ben 10 tane sayıyı kullanıcıdan alıp hesapladım ve ekranda gösterdim fakat siz bu kodların çeşitli varyasyonlarını yazarak örneğin kullanıcı boş sayı girene kadar girilen sayıların ortalama ve standart sapmasını hesaplayan programı da yazabilirsiniz. Yazdığımız tüm kodları daha toplu olması için aşağıya bırakıyorum;
static void Main()
{
int[] sayilar = new int[10];
for(int i = 0; i < 10; i++)
{
Console.Write((i + 1) + ". Sayıyı Giriniz: ");
int sayi = Convert.ToInt32(Console.ReadLine());
sayilar[i] = sayi;
}
double ortalama = ortalamaHesapla(sayilar);
double standartSapma = standartSapmaHesapla(sayilar);
Console.WriteLine("Sayıların Ortalaması: " + ortalama);
Console.WriteLine("Sayıların Standart Sapması: " + standartSapma);
}
static double ortalamaHesapla(int[] dizi)
{
double toplam = 0;
for (int i = 0; i < 10; i++)
toplam += dizi[i];
return toplam / 10;
}
static double standartSapmaHesapla(int[] dizi)
{
double ortalama = ortalamaHesapla(dizi);
double toplam = 0;
for (int i = 0; i < 10; i++)
toplam += Math.Pow((dizi[i] - ortalama), 2);
return Math.Sqrt(toplam / 9);
}
Tüm C# yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.