JavaScript-ով օրացույցի իրականացման քննարկում
Մեր օրացույցը ներկայացնում է աղյուսակ
1-ից մինչև ամսվա վերջին օրվա թվերով:
Խնդիրն այն է, որ աղյուսակի թվերը առաջին
տողում պետք է չսկսվեն առաջին բջիջից:
Ընդհանուր առմամբ դա ակնհայտ է: Ակնհայտ չէ, թե հենց որ բջիջից պետք է սկսել: Եկեք մտածենք:
Ենթադրենք, շաբաթը սկսվում է երկուշաբթիից, և
այն զրոյական օրն է: Այս դեպքում ամսվա առաջին
օրվա շաբաթվա օրվա համարը համապատասխանում է
դատարկ բջիջների քանակին դրանից առաջ: Օրինակ,
հինգշաբթին կունենա 3 համար և դրանից
առաջ կլինի 3 դատարկ բջիջ:
Նմանատիպ խնդիր մեզ կսպասի աղյուսակի վերջում: Այնտեղ նույնպես անհրաժեշտ է թողնել դատարկ բջիջներ ամսվա վերջին թվից հետո: Այս դեպքում դատարկ բջիջների քանակը հավասար կլինի վեցի, որից պետք է հանել ամսվա վերջին օրվա շաբաթվա օրվա համարը:
Հիմա մտածենք, թե ինչպես ենք մենք ձևավորելու
մեր աղյուսակը: Ակնհայտ է, որ ամենահարմարը
ունենալ երկչափ զանգված է, որի յուրաքանչյուր
ենթազանգվածում կլինի 7 տարր (= շաբաթվա
օրերի քանակը): Այդ դեպքում առաջին և վերջին
ենթազանգվածներում տարրերի մի մասը պետք է լինի
դատարկ:
Գործողությունների ալգորիթմ
Կստեղծենք ֆունկցիա, որը կկազմի թվերի զանգված
1-ից մինչև ամսվա վերջին օրը:
Այնուհետև կստեղծենք ֆունկցիա, որը կավելացնի
զանգվածի սկզբում անհրաժեշտ քանակությամբ դատարկ
տարրեր: Նմանատիպ ֆունկցիա պետք է ավելացնի
դատարկ տարրեր զանգվածի վերջում:
Դրանից հետո մենք կստանանք միաչափ զանգված
տարրերի քանակով, որն 7-ի բազմապատիկ է:
Այս զանգվածը կվերածենք երկչափ զանգվածի՝
ենթազանգվածում 7 տարրով:
Այնուհետև կվերցնենք այս երկչափ զանգվածը, կփոխադարձենք ցիկլերով և կձևավորենք մեր աղյուսակը:
Գործողությունների այս ալգորիթմը մենք փուլ առ փուլ կկատարենք հաջորդ դասերում: