Муҳокимаи татбиқи тақвим дар JavaScript
Тақвими мо ҷадвали рақамҳо аз
1 то охирин рӯзи моҳ аст.
Мушкилӣ дар он аст, ки рақамҳо дар ҷадвал дар сафи аввал
бояд аз ячейкаи аввал оғоз нашаванд.
Ин умуман равшан аст. Равшан нест, ки аз кадом ячейкаи дақиқ оғоз кардан лозим аст. Биёед баррасӣ кунем.
Бигзор ҳафта аз душанбе оғоз шавад, ва
он рӯзи сифр бошад. Дар ин ҳолат рақами рӯзи
ҳафтаи рақами аввали моҳ ба миқдори
ячейкаҳои холӣ пеш аз он мувофиқат мекунад. Масалан,
панҷшанбе рақами 3 хоҳад дошт ва пеш аз
он 3 ячейкаи холӣ хоҳад буд.
Мушкилии монанд моро дар охири ҷадвал интизорӣ мекунад. Он ҷо ҳам лозим аст, ки ячейкаҳои холӣ пас аз охирин рақами моҳ гузошта шаванд. Дар ин ҳолат миқдори ячейкаҳои холӣ ба шаш мувофиқ хоҳад буд, аз он рақами рӯзи ҳафтаи охирин рӯзи моҳро бояд кам кард.
Акнун биёед фикр кунем, ки мо чӣ тавр
ҷадвали худро ташкил хоҳем кард. Равшан аст, ки беҳтарин роҳ
доштани массиви ду-ченака аст, ки дар ҳар як зермассиви
он 7 элемент (= миқдори
рӯзҳо дар ҳафта) бошад. Дар ин ҳол, дар зермассивҳои аввал ва охир
қисми элементҳо бояд холӣ бошанд.
Алгоритми амалҳо
Функсияе созем, ки массиви
рақамҳо аз 1 то охирин рӯзи моҳ созад.
Пас функсияе созем, ки ба
аввали массив миқдори зарурии элементҳои холӣ
илова мекунад. Функсияи монанд бояд элементҳои
холӣ ба охири массив илова кунад.
Пас аз ин мо массиви якченакаро хоҳем дошт,
ки миқдори элементҳои он, ба 7 зарб мешавад.
Ин массивро ба ду-ченака табдил диҳед, ки дар ҳар зермассив 7
элемент бошад.
Пас ин массиви ду-ченакаро гирифта, бо даврҳо такрор кунед ва ҷадвали худро ташкил кунед.
Ин алгоритми амалҳоро мо бо қадамҳо дар дарсҳои оянда иҷро хоҳем кард.