Standart Sapma Hesaplama

Dizideki her bir sayının aritmetik ortalama ile farklarının, karelerinin; veri sayısının bir eksiğine bölümünün kareköküne standart sapma denir. Tanımı ne kadar saçma ve anlaşılmaz dursa bile çok önemlidir. Standart sapma, verilerin aritmetik ortalamaya göre nasıl bir yayılım gösterdiğini anlatır. Standart sapmanın küçük olması bir veri grubundaki değerlerin birbirine yakın olduğunu gösterir. Standart sapmanın büyük olması ise veri grubundaki değerlerin birbirinden uzak olduğunu gösterir.

Sayıları gir!


Nasıl çalışıyor?


Program tamamen JavaScript ile çalışıyor. Bu program gerçekten bu sitede beni en çok zorlayan programdı. Standart sapma hesaplamak programlama açısından çok zor bir olay değil. Fakat kullanıcıdan inputları tek bir girdide almak istiyorsanız sizi baya bir işlem bekliyor demek. Kullanıcının girdiği sayıları gerçek sayılara dönüştürmek çok zorladı. Devamı basit matematik işlemleri zaten... Nasıl çalıştığını görmeniz için aşağıya kodu yazdım. İnceleyerek programın nasıl çalıştığını hayal etmeye çalışın. Kendi hostinginiz veya alan adınız olmasa bile; HTML dosyası yaratıp, bu scripti içine yerleştirerek programınızı tarayıcınız ile test edebilirsiniz. Eğer JavaScript hakkında hiçbir bilginiz yoksa w3schools.com dan ayrıntılı ve düzgün bir biçimde öğrenebilirsiniz.

function ortalamaVeCount(n) {
  var i, j, eskii = -1, sayilar = [], toplam = 0, count = 0;
  for (i = 0; i < 1000; i = i + 1) {
    if (n[i] == " ") {
      count = count + 1;
      sayilar[count - 1] = 0;
      for (j = eskii + 1; j < i; j = j + 1) {
        sayilar[count - 1] = sayilar[count - 1] + n[j];
      }
      eskii = j;
    }
  }
  for (i = 0; i < count; i = i + 1) {
    toplam = toplam + parseInt(sayilar[i], 10);
  }
  return [toplam / count, count, sayilar];
}
function standartSapma() {
  var girilen, pay = 0, sonuc, i, ortalama, count, ortalamaCount, sayilar;
  girilen = document.getElementById("girilen_sayilar").value + " ";
  ortalamaCount = ortalamaVeCount(girilen);
  ortalama = ortalamaCount[0];
  count = ortalamaCount[1];
  sayilar = ortalamaCount[2];
  for (i = 0; i < count; i = i + 1) {
    pay = pay + (parseInt(sayilar[i], 10) - ortalama) * (parseInt(sayilar[i], 10) - ortalama);
  }
  sonuc = Math.sqrt(pay / (count - 1));
  document.getElementById("sonuc").innerHTML = sonuc;
}
;