ჯავასკრიპტზე კალენდარის იმპლემენტაციის განხილვა
ჩვენი კალენდარი წარმოადგენს ცხრილს
რიცხვებით 1-დან თვის ბოლო დღემდე.
პრობლემა ის არის, რ რიცხვები ცხრილში პირველ
რიგში არ უნდა იწყებოდეს პირველი უჯრიდან.
ეს ზოგადად აშკარაა. არ არის აშკარა, რომელი უჯრიდან ზუსტად უნდა დაიწყოს. მოდით დავფიქრდეთ.
დავუშვათ, კვირა იწყება ორშაბათიდან, და
ის არის ნულოვანი დღე. ამ შემთხვევაში, პირველი
რიცხვის კვირის დღის ნომერი შეესაბამება
ცარიელი უჯრების რაოდენობას მის წინ. მაგალითად,
ხუთშაბათს ექნება ნომერი 3 და მის
წინ იქნება 3 ცარიელი უჯრა.
მსგავსი პრობლემა დაგველოდება ცხრილის ბოლოსაც. იქაც საჭიროა ცარიელი უჯრების დატოვება თვის ბოლო რიცხვის შემდეგ. ამ შემთხვევაში, ცარიელი უჯრების რაოდენობა იქნება ექვსის ტოლი, რომელსაც უნდა გამოვაკლოთ თვის ბოლო დღის კვირის დღის ნომერი.
ახლა ვიფიქროთ, როგორ ვაპირებთ ჩვენს ცხრილის
ფორმირებას. აშკარაა, რომ ყველაზე მოსახერხებელია
ორგანზომილებიანი მასივის ქონა, სადაც თითოეულ ქვემასივში
იქნება 7 ელემენტი (= კვირის დღეების
რაოდენობა). ამ შემთხვევაში, პირველ და ბოლო
ქვემასივებში ელემენტების ნაწილი უნდა იყოს ცარიელი.
მოქმედებების ალგორითმი
გავაკეთოთ ფუნქცია, რომელიც შექმნის მასივს
რიცხვებით 1-დან თვის ბოლო დღემდე.
შემდეგ გავაკეთოთ ფუნქცია, რომელიც დაამატებს
მასივის დასაწყისში საჭირო რაოდენობის ცარიელ
ელემენტებს. მსგავსმა ფუნქციამ უნდა დაამატოს
ცარიელი ელემენტები მასივის ბოლოში.
ამის შემდეგ, ჩვენ მივიღებთ ერთგანზომილებიან მასივს
ელემენტების რაოდენობით, 7-ის ჯერადი.
გარდავქმნათ ეს მასივი ორგანზომილებიანად 7
ელემენტის მქონე ქვემასივებში.
შემდეგ ავიღოთ ეს ორგანზომილებიანი მასივი, გადავუაროთ ციკლებით და ჩამოვაყალიბოთ ჩვენი ცხრილი.
ამ მოქმედებების ალგორითმს ეტაპობრივად შევასრულებთ შემდეგ გაკვეთილებზე.