JavaScript'te Takvim Uygulaması Tartışması
Takvimimiz, ayın son gününe kadar 1'den başlayan
sayıları içeren bir tablodur.
Sorun şu ki, tablodaki sayılar ilk satırda
ilk hücreden başlamamalı.
Bu genel olarak açıktır. Tam olarak hangi hücreden başlanması gerektiği açık değildir. Haydi düşünelim.
Haftanın pazartesiden başladığını ve
bunun sıfırıncı gün olduğunu varsayalım. Bu durumda, ayın
ilk gününün haftanın gün numarası,
ondan önceki boş hücre sayısına karşılık gelir. Örneğin,
perşembe 3 numarasına sahip olacak ve
ondan önce 3 boş hücre olacak.
Benzer bir sorun tablonun sonunda da bizi bekliyor. Ayın son gününden sonra da boş hücreler bırakılması gerekiyor. Bu durumda boş hücre sayısı, ayın son gününün haftanın gün numarasından çıkarılması gereken altıya eşit olacaktır.
Şimdi tablomuzu nasıl oluşturacağımızı düşünelim.
En uygun yolun, her bir alt dizisinde
7 öğe (= bir haftadaki
gün sayısı) bulunan iki boyutlu bir diziye sahip olmak olduğu açıktır.
Bu arada, ilk ve son alt dizilerde bazı öğeler boş olmalıdır.
Eylem Algoritması
1'den ayın son gününe kadar sayılar dizisi
yapan bir fonksiyon yapalım.
Sonra, dizinin başına gerekli sayıda boş
öğe ekleyen bir fonksiyon yapalım.
Benzer bir fonksiyon da dizinin sonuna
boş öğeler eklemelidir.
Bundan sonra, eleman sayısı 7'ye bölünebilen
tek boyutlu bir dizimiz olacak.
Bu diziyi, alt dizide 7
elemana göre iki boyutluya dönüştürün.
Sonra bu iki boyutlu diziyi alalım, döngülerle tekrarlayalım ve tablomuzu oluşturalım.
Bu eylem algoritmasını sonraki derslerde aşamalı olarak uygulayacağız.