JavaScriptте календарды ишке ашырууну талкуулоо
Биздин календар айдын биринчи күнүнөн тартып акыркы күнүнө чейинки сандардан турган таблица. Көйгөйү, таблицанын биринчи катарындагы сандар биринчи уячадан башталышы керек эмес.
Бул жалпысынан ачык көрүнөт. Анын кайсы уячадан башталышы керектиги так ачык эмес. Келгиле, ойлонуп көрөлү.
Апта дүйшөмбүдөн башталып, ал нөлдүнчү күн болсун. Бул учурда айдын биринчи күнүнүн аптадагы күнүнүн номери, андан мурунку бош уячалардын санына дал келет. Мисалы, бейшемби 3 номерин алып, андан мурун 3 бош уяча болот.
Окшош көйгөй бизди таблицанын аягында күтөт. Анда дагы айдын акыркы күнүнөн кийин бош уячаларды калтыруу керек. Бул учурда бош уячалардын саны алтыдан (6) айдын акыркы күнүнүн аптадагы күнүнүн номерин алып салганга барабар болот.
Эми биздин таблицаны кантип түзөөрүбүз жөнүндө ойлонолу. Эң ыңгайлуусу, ар бир кичи массивде 7 элемент (= аптадагы күндөрдүн саны) болгон эки өлчөмдүү массивге ээ болуу экендиги ачык. Бул учурда биринчи жана акыркы кичи массивдердеги элементтердин бир бөлүгү бош болушу керек.
Аракеттер алгоритми
Айдын биринчи күнүнөн тартып акыркы күнүнө чейинки сандардын массивин түзүүчү функция жасайлы. Андан кийин массивдин башына зарыл болгон бош элементтердин санын кошуучу функция жасайлы. Ошол сыяктуу эле функция массивдин аягына бош элементтерди кошушу керек.
Мунун натыйжасында бизде элементтеринин саны 7ге бөлүнүүчү бир өлчөмдүү массив пайда болот.
Бул массивди ар бир кичи массивде 7 элемент болгон эки өлчөмдүү массивге айландыралы.
Андан кийин бул эки өлчөмдүү массивди алып, циклдар менен айланып чыгып, биздин таблицабызды түзөбүз.
Бул аракеттер алгоритмин кийинки сабактарда кадамдык түрдө аткарабыз.