JavaScript ile not ortalaması: veriyi doğrula, hesapla, göster
Diziler, veri doğrulama ve reduce ile güvenilir bir not ortalaması fonksiyonu yaz. Görsel şema, matematiksel formül, çalışan kod ve küçük bir görevle adım adım ilerle.
Atlas · Yapay zekâ destekli içerik · EgKa Soft editör onaylı
Bir uygulamada küçük bir hesaplama yapmak kolay görünebilir. Asıl önemli olan, hangi veriyi kabul ettiğini ve beklenmedik bir durumda ne yapacağını açıkça belirlemektir. Gel, bunu not ortalaması üzerinden birlikte kuralım.
1. Önce problemi tanımla
Elimizde 60, 80 ve 100 notları var. Aritmetik ortalama için bütün notları toplar, toplamı not sayısına böleriz. Bu örnekte her notun ağırlığı eşittir; ağırlıklı ortalama hesaplamıyoruz.
Girdimiz bir sayı dizisi, çıktımız ise bir sayıdır. Bu yazıda notların 0–100 aralığında sonlu sayılar olmasını isteyeceğiz. Boş bir listeyi ya da "80" gibi metin değerlerini sessizce kabul etmeyeceğiz.
2. Matematiksel düşünceyi koda çevir
Aritmetik ortalamada n, not sayısıdır. En az bir not bulunmalıdır; sıfıra bölme yapamayız.
Bizim örneğimizde toplam 240, not sayısı 3 olduğundan sonuç 80'dir. Birazdan ekleyeceğimiz kodda da aynı adımları göreceksin.
3. Çalışan bir JavaScript fonksiyonu yaz
function notOrtalamasi(notlar) {
if (!Array.isArray(notlar) || notlar.length === 0) {
throw new Error("En az bir not içeren bir dizi gerekli.");
}
const hepsiGecerli = notlar.every((not) =>
Number.isFinite(not) && not >= 0 && not <= 100
);
if (!hepsiGecerli) {
throw new Error("Notlar 0 ile 100 arasında sonlu sayılar olmalı.");
}
const toplam = notlar.reduce((biriken, not) => biriken + not, 0);
return toplam / notlar.length;
}
console.log(notOrtalamasi([60, 80, 100])); // 80
console.log(notOrtalamasi([0, 100])); // 50
console.log(notOrtalamasi([70])); // 70every, bütün elemanların koyduğumuz koşulu sağlayıp sağlamadığını kontrol eder. Number.isFinite ise sayısal metinleri kendiliğinden sayıya dönüştürmez; bu yüzden "80", NaN ve Infinity geçerli not sayılmaz. 0 notunu geçerli kabul ettiğimize dikkat et.
reduce içindeki biriken değer 0'dan başlar. Her turda sıradaki not bu toplama eklenir. Fonksiyonun sonunda toplamı dizinin uzunluğuna böleriz. Fonksiyon orijinal diziyi değiştirmez.
4. Yuvarlamayı hesaplamadan ayır
Ortalama her zaman tam sayı çıkmayabilir. Hesaplama sonucunu sayı olarak tutup yalnız ekrana yazarken iki basamak gösterebiliriz.
const ortalama = notOrtalamasi([70, 80, 100]);
console.log(ortalama.toFixed(2)); // "83.33"Burada toFixed(2) bir metin döndürür. Sonuçla yeni bir hesaplama yapacaksan ortalama değişkenini kullan; ekrana yazdırmak için hazırladığın metni değil. JavaScript ondalık hesaplamalarının bazı değerlerde küçük hassasiyet farkları taşıyabileceğini de aklında tut.
5. Sadece doğru örneği değil, sınırları da dene
[60, 80, 100]için sonuç 80 olmalı.[0, 100]için sonuç 50 olmalı; 0 kaybolmamalı.[]hata vermeli; ortalama üretmemeli.["80", 100],[NaN, 90]ve[101, 90]reddedilmeli.
Bir örnek hata yakalama:
try {
console.log(notOrtalamasi([]));
} catch (hata) {
console.log(hata.message);
}Sıra sende
Fonksiyonu [65, 75, 100] ile çalıştır. Önce sonucu kâğıt üzerinde hesapla, sonra kodun çıktısıyla karşılaştır. Ardından ortalamaya dokunmadan, 85 ve üzeri için "Hedefe ulaştın", diğer sonuçlar için "Biraz daha çalışalım" yazdıran bir koşul ekle. Bu 85 sınırı yalnız alıştırmamızın kuralıdır; okul notlandırma ölçütü değildir.
Takıldığında şu üç soruya dön: Girdim ne? Hangi girdiler geçerli? Çıktıyı nasıl kontrol ederim? Sağlam bir programın temeli, çoğu zaman bu küçük sorularda yatar.