Student Diaries

10 Days of Striving: The Challenge

Ուսանողական մարտահրավերներ

Academy Writer
Picsart Academy

--

Ակադեմիայում հաճախակի կազմակերպվում են մարտահրավերներ տարբեր մակարդակի ու խմբերի ուսանողների համար։ Սկսնակ C++ ծրագրավորողների համար հորինել ենք “10 Days of Suffering” տարօրինակ անունով մարտահրավերը։

Մարտահրավերի նպատակը C++ լեզվի հիմնական կառուցվածքների ամփոփումն է՝ մինչև կլասներ և օբյեկտ-կողմնորոշված ծրագրավորում։ Մարտահրավերը տևում է տասը օր (ինչպես հուշում է անվանումը) և յուրաքանչյուր օր հանձնարարվում է ընտրված գրքից գլուխ կամ գլուխներ, ինչպես նաև մի շարք գործնական առաջադրանքներ։

Մարտահրավերի համար ընտրվել է Siddhartha Rao-ի “Sams Teach Yourself C++ in One Hour a Day” գիրքը։

Մարտահրավերին մասնակցող ուսանողները պետք է օրվա ընթացքում կարդան տրված գլուխն ու կատարեն լրացուցիչ հանձնարարություններ՝ մինչև օրվա վերջ ուղարկելով GitHub repository-ի հղումը։

Օր 1 (նախապատրաստական)

Կարդալ գլուխներ 1 և 2

Օր 2 (փոփոխականներ, հաստատուններ)

Կարդալ գլուխ 3

Օր 3 (զանգվածներ, տողեր)

Կարդալ գլուխ 4

Օր 4 (խնդիրներ)

Լուծել հետևյալ խնդիրները.

  1. Մուտքագրել զանգվածի տարրերի արժեքները։ Գտնել եւ տպել առավելագույն արժեքով տարրի ինդեքսը։
  2. Մուտքագրել զանգվածի տարրերի արժեքները։ Գտնել եւ տպել նվազագույն արժեքով տարրի ինդեքսը։
  3. Մուտքագրել զանգվածի տարրերի արժեքները։ Տպել զանգվածի առավելագույն եւ նվազագույն արժեքների գումարը։
  4. Մուտքագրել զանգվածի տարրերի արժեքները։ Տպել զանգվածի տարրերը հակառակ հերթականությամբ։
  5. Մուտքագրել երկու զանգվածներ, տպել դրանց արտադրյալը։
  6. Մուտքագրել երկու զանգվածներ, տպել դրանց գումարը։
  7. Տպել քառակուսային մատրիցի գլխավոր անկյունագծի տարրերը։
  8. Տպել քառակուսային մատրիցի օժանդակ անկյունագծի տարրերը։
  9. Տպել քառակուսային մատրիցի գլխավոր եւ օժանդակ անկյունագծերի տարրերի գումարները։
  10. Քառակուսային մատրիցի գլխավոր եւ օժանդակ անկյունագծերի տարրերի արժեքները տեղերով փոխել։
  11. Տպել զանգվածի կենտ թվերի քանակը։
  12. Տպել զանգվածի զույգ թվերի քանակը։
  13. Մատրիցի բոլոր տարրերը արտագրել միաչափ զանգվածի մեջ։ Տպել արդյունքը։
  14. Մուտքագրել տող։ Գտնել եւ տպել տողում ամենաշատ կրկնվող սիմվոլը։
  15. Մուտքագրել տող։ Տպել տողում իրար հաջորդող նույնարժեք սիմվոլների ամենաերկար շարքը։
  16. Գտնել եւ տպել զանգվածի տարրերի գումարի ու արտադրյալի միջին թվաբանականը։
  17. Տրված նախադասության համար տպել ամենակարճ բառը։
  18. Տրված նախադասության համար տպել ամենաերկար եւ ամենակարճ բառերը։
  19. Տրված նախադասության համար գտնել եւ տպել բոլոր թվերը։

Օր 5 (արտահայտություններ, օպերատորներ)

Կարդալ գլուխ 5, կատարել գլխի վարժությունները։

Օր 6 (պայման, ցիկլ)

Կարդալ գլուխ 6, կատարել գլխի վարժությունները։

Օր 7 (Ֆունկցիաներ)

Կարդալ գլուխ 7, կատարել գլխի վարժությունները։

Օր 8 (խնդիրներ)

Լուծել հետևյալ խնդիրները.

  1. Իրականացնել թվի ֆակտորիալի հաշվարկումը ռեկուրսիվ եղանակով։
  2. Իրականացնել թվի ֆակտորիալի հաշվարկումը իտերատիվ եղանակով։
  3. Գրել ռեկուրսիվ ֆունկցիա, որը որպես արգումենտ ստանում է num ամբողջ տիպի փոփոխականը եւ տպում է num-ից մինչեւ 0 արժեքները։
  4. Նախորդ խնդրի ֆունկցիան իրականացնել իտերատիվ տարբերակով։
  5. Գրել Ֆիբոնաչիի հաջորդականության n-րդ թիվը գտնող ռեկուրսիվ ֆունկցիա։
  6. Գրել Ֆիբոնաչիի հաջորդականության n-րդ թիվը գտնող իտերատիվ ֆունկցիա։
  7. Գրել ռեկուրսիվ ֆունկցիա, որը ստանում է զանգված եւ էկրանին տպում է զանգվածի տարրերը։
  8. Գրել ֆունկցիա , որը ստանում է տող եւ վերադարձնում տողի շրջված տարբերակը։
  9. Գրել ֆունկցիա, որը ստանում է զանգված եւ ինդեքս, հեռացնում է զանգվածի՝ տրված ինդեքսով տարրը եւ վերադարձնում նոր զանգվածը՝ որպես արդյունք։
  10. Գրել ֆունկցիա, որը վերադարձնում է թվի առաջին k թվանշանները։ Թիվն ու k-ն մուտքագրել։

Օր 9 (ցուցիչներ, հղումներ)

Կարդալ գլուխ 8-ի առաջին հատվածը։

Օր 10 (ցուցիչներ, հղումներ)

Վերջացնել գլուխ 8, կատարել գրքի վարժությունները։

Սկսնակների համար այս մարտահրավերն ամբողջությամբ իրականացվելու դեպքում բավական արդյունավետ է։

Այսօր ևս մեկ ուսանող միացավ մարտահրավերին։

Ցանկության դեպքում ընթերցողները ևս կարող են մասնակցել մարտահրավերին և փորձել կատարել բոլոր հանձնարարությունները տասը օրվա ընթացքում։

--

--