Մխիթար Սեբաստացի կրթահամալիր<br />Ծրագրավորում<br />
Հանոյանաշտարակներ<br />     Թադևոս Մարկոսյան, Արտաշես Կիզոգյան (12-րդ դասարան)<br />Նախծրագիրըխաղալուհնարավորություն է տալ...
Սկավառակըտեղափոխելուհամարպետք է կտցնելմկնիկովուղարկողառանցքիտիրույթում և հետոստացողառանցքիտիրույթում: Երկուհարևանառանցքներ...
երկրորդդեպքում` երկրորդառանցք): Լուծումըտրվում է Demo_ պրոցեդուրայիգործողությամբ, որնօգտագործում է րեկուրսիվկանչեր: Ինչպես...
կանչելմեկուրիշկրկնօրինակի և տալնրանառաջադրանք, և այդպեսշարունակ: <br />Այսպիսով, եսպետք է կազմեմայնպիսիալգորիթմ, որպեսզիես...
    (ճիշտինձնմանակին) և կառաջարկեմնրանտեղափոխելվերին n-1 սկավառակներըբուֆերայինառանցքին (դաոչայնառանցքն է, որիցեսպետք է n ...
տեղափոխվելէինօգնականիկողմիցբուֆերայինառանցքին (դեռհարց է՝ կկարողանաարդյոքնակատարելտրվածխնդիրը): Այսպիսով, եսկկարողնամտեղափ...
տեղափոխելումեկսկավառակովպակաս, քանինքը: Այսպիսով՝ իմօգնականներըկլուծենտրվածխնդիրը, եթենրանցօգնականներըկարողանանլուծելիրենց...
խնդիրներըառաջարկելօգնականներին (հեշտացնելովխնդիրըտեղափոխվողսկավառակներիթիվըմեկովպակասեցնելով), ապամիպահկլինի, որհերթականաշ...
խնդիրէրառաջարկել. և այդպեսամբողջշղթան՝ վարիցվեր: Դանշանակում է, որնաևեսկկարողանամկատարելինձառաջադրվածխնդիրը: Իհարկեյուրաքա...
սկավառակներենտեղափոխում, երկրորդը` տեղափոխվողսկավառակներիքանակը, երրորդը` առանցքը, որիվրա Demo_-ն պետք է տեղափոխիսկավառակն...
    (այն, որըչիհիշատակվումառաջին և երրորդպարամետրերում).<br />    - կառավարումըստանալուցհետոտեղափոխում է մնացածամենավերինս...
Սկավառակիյուրաքանչյուրտեղափոխությունիցհետոսկավառակներիդիրքըարտահայտվում է TextBox2-ում առանձինտողով: Րեկուրսիվկանչերիպատմո...
Upcoming SlideShare
Loading in …5
×

Hanoy towers

765 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
765
On SlideShare
0
From Embeds
0
Number of Embeds
101
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Hanoy towers

  1. 1. Մխիթար Սեբաստացի կրթահամալիր<br />Ծրագրավորում<br />
  2. 2. Հանոյանաշտարակներ<br /> Թադևոս Մարկոսյան, Արտաշես Կիզոգյան (12-րդ դասարան)<br />Նախծրագիրըխաղալուհնարավորություն է տալիսօգտվողին: Խաղինպատակն է տեղափոխելբոլորսկավառակներըառաջինառանցքիցերկրորդկամերրորդ: Խաղացողինհնարավորություն է տրվումսկավառակներըտեղափոխելմիառանցքիցմյուսըայնդեպքում, եթեընդունողառանցքըդատարկ է կամսկավառակըավելիփոքր է այնսկավառակից, որիվրադրվում է (անթույլատրելիտեղափոխություններըչենկատարվում): <br />
  3. 3. Սկավառակըտեղափոխելուհամարպետք է կտցնելմկնիկովուղարկողառանցքիտիրույթում և հետոստացողառանցքիտիրույթում: Երկուհարևանառանցքներիմիջևնեղտիրույթումկամառանցքներիկատարներիցվերկտցնելըչեղյալ է հայտարարումառաջինկտոցիհետևանքը:<br />Երկրորդ՝ ծրագիրըկարող է ինքնուրույնտեղափոխելսկավառակներնառաջինառանցքիցերկրորդկամերրորդ: Demo_1 կամ Demo_2 կոճակինսեղմելովակտիվացնումենքսկավառակներնինքնուրույնտեղափոխողծրագիրը (առաջինդեպքում` երրորդառանցք, իսկ<br />
  4. 4. երկրորդդեպքում` երկրորդառանցք): Լուծումըտրվում է Demo_ պրոցեդուրայիգործողությամբ, որնօգտագործում է րեկուրսիվկանչեր: Ինչպես՞ է նակարողանումլուծելայսխնդիրը: Փորձեմտրամաբանելնրափոխարեն: Այսպես. ինձկանչումեն, երբպետք է լուծելայսխնդիրը: Րեկուրսիայիսկզբունքըենթադրում է, որեսկարողեմկատարելխնդրիմիմասը (թեկուզշատփոքր), և կարողեմկանչել (անհրաժեշտությանդեպքումմիքանիանգամ) ճիշտինձնմանաշխատողի և նրանառաջադրանքտալ: Իմկողմիցկանչվածաշխատողըկարող է կատարելնույնատիպգործողություն, այսինքն՝ կարող է ի կատարածելաշխատանքիմիմասը, ինչպեսնաև<br />
  5. 5. կանչելմեկուրիշկրկնօրինակի և տալնրանառաջադրանք, և այդպեսշարունակ: <br />Այսպիսով, եսպետք է կազմեմայնպիսիալգորիթմ, որպեսզիես և իմկողմիցկանչված (մեկըմյուսիմիջոցով) աշխատողներըկարողանանքլուծելտրվածխնդիրը: Սկսումեմտրամաբանելհետևյալկերպ: Դիցուք` եսպետք է տեղափոխեմտրվածառանցքիվրա n թվովսկավառակներ: Եթե n=1 այդմիակսկավառակըինքսկտեղափոխեմ` դամեծջանքչիպահանջումինձնից: Իսկեթե n>1: Ենթադրենք, որանգամերկուսկավառակտեղափոխելըինձհամարանլուծելիխնդիր է, այդդեպքումեսկկանչեմօգնականիս<br />
  6. 6. (ճիշտինձնմանակին) և կառաջարկեմնրանտեղափոխելվերին n-1 սկավառակներըբուֆերայինառանցքին (դաոչայնառանցքն է, որիցեսպետք է n հատսկավառակներտեղափոխեմ, և ոչէլընդունողառանցքն է, որինպետք է տեղափոխեի n սկավառակներ): Եթեիմկողմիցկանչվածօգնականըկատարիտրվածխնդիրը (դեռհարց է՝ նակարող է դաանել), ապաեսկտեղափոխեմմնացածներքևիսկավառակըընդունողառանցքին (դաեսկարողեմանել), որիցհետոնորիցկկանչեմօգնականիս (նույնինթեմեկուրիշի` կարևորչէ, քանիորնրանքնմանեն) և կառաջարկեմնրանընդունողառանցքինտեղափոխելայն n-1 սկավառակները, որոնքավելիվաղ<br />
  7. 7. տեղափոխվելէինօգնականիկողմիցբուֆերայինառանցքին (դեռհարց է՝ կկարողանաարդյոքնակատարելտրվածխնդիրը): Այսպիսով, եսկկարողնամտեղափոխել n սկավառակները, եթեիմօգնականներըտեղափոխեն n-1 սկավառակները:<br />Իհարկե, եթեինձհամարերկուսկավառակներիցավելիտեղափոխելըանլուծելիխնդիր է, ապաայնանլուծելիկլինինաևիմօգնականներիհամար: Սակայն, նրանցխնդիրըիմինիցհեշտ է, քանիորնրանքպետք է տեղափոխենմեկովավելիքիչսկավառակ, քանես: Ավելացնենքնաև, որնրանքկարողենինձնմանվարվել, այսինքն՝ կանչելուրիշօգնականների և յուրաքանչյուրինառաջարկել<br />
  8. 8. տեղափոխելումեկսկավառակովպակաս, քանինքը: Այսպիսով՝ իմօգնականներըկլուծենտրվածխնդիրը, եթենրանցօգնականներըկարողանանլուծելիրենցխնդիրը: Եվկրկին, վերջիններիսխնդիրնավելիհեշտ է՝ իմօգնականներիխնդրից, քանիորնրանքպետք է տեղափոխեն n-2 սկավառակներ: Իհարկեենթադրվում է, որիմօգնականներիօգնականներընույնպեսկարողենառաջարկելմեկովքիչթվովսկավառակներիտեղափոխությունըիրենցօգնականներին՝ ինքնուրույնկատարելովմիայնմեկսկավառակիտեղափոխություն:<br />Եթեբոլորաշխատողներըսկսենսեփական<br />
  9. 9. խնդիրներըառաջարկելօգնականներին (հեշտացնելովխնդիրըտեղափոխվողսկավառակներիթիվըմեկովպակասեցնելով), ապամիպահկլինի, որհերթականաշխատողինկմնատեղափոխելուընդամենըմեկսկավառակ, իսկդակարող է կատարելյուրաքանչյուրը։ Եվնակկատարիայդգործողությունըինքնուրույն: Դավճռորոշպահն է: Քանիորյուրաքանչյուրաշխատողիխնդրիլուծումըհնարավորէրայնպայմանով, որլուծվածկլինեիննրակողմիցիրօգնականներինառաջադրվածխնդիրները, իսկայդշղթայիամենավերջինաշխատողըխնդիրըինքնուրույն է կատարել: Դանշանակում է, որիրսեփականխնդիրըկկարողանակատարելնաևայնաշխատողը, որընրան<br />
  10. 10. խնդիրէրառաջարկել. և այդպեսամբողջշղթան՝ վարիցվեր: Դանշանակում է, որնաևեսկկարողանամկատարելինձառաջադրվածխնդիրը: Իհարկեյուրաքանչյուրոք, ումտրված է սկավառակտեղափոխելուառաջադրանք, պարտավոր է ծրագիրըկազմելիսսահմանելիրօգնականներիհամար, թեորառանցքից և որիվրապետք է տեղափոխելսկավառակներ:<br />Վերընշվածը Demo_ պրոցեդուրայինկատմամբվերոհիշյալըկընդունիհետևյալտեսք: Խնդիրըշարադրված է, այնպարամետրերով, որոնքփոխանցվումենպրոցեդուրային (առաջինպարամետրըորոշում է այնառանցքը, որից<br />
  11. 11. սկավառակներենտեղափոխում, երկրորդը` տեղափոխվողսկավառակներիքանակը, երրորդը` առանցքը, որիվրա Demo_-ն պետք է տեղափոխիսկավառակներ):<br />Եթեպահանջվում է տեղափոխելմեկսկավառակ, ապաայդգործողությունըայնկատարում է ինքնուրույն, և դրանովնրաաշխատանքըավարտվում է: Իսկեթեպահանջվում է մեկիցավելիսկավառակներտեղափոխել, ապաայն.<br /> - կանչում է ինքնիրենայնպարամետրերով, որոնքբխումենմեկովքիչսկավառակներիտեղափոխությանպահանջից՝ այնառանցքից, որիցսկավառակներպետք է տեղափոխելբուֆերայինառանցքիվրա<br />
  12. 12. (այն, որըչիհիշատակվումառաջին և երրորդպարամետրերում).<br /> - կառավարումըստանալուցհետոտեղափոխում է մնացածամենավերինսկավառակըայնառանցքից, որիցինքըպետք է տեղափոխերսկավառակներայնառանցքիվրա, որինինքըպետք է տեղափոխերսկավառակներ.<br /> - կանչում է ինքնիրենայնպարամետրերով, որոնքորոշումենմեկովքիչսկավառակներիտեղափոխությունբուֆերայինառանցքիցայնառանցքիվրա, որինինքըպետք է տեղափոխերսկավառակներ:<br />Հենցայդպեսէլաշխատում է Demo_ պրոցեդուրան:<br />
  13. 13. Սկավառակիյուրաքանչյուրտեղափոխությունիցհետոսկավառակներիդիրքըարտահայտվում է TextBox2-ում առանձինտողով: Րեկուրսիվկանչերիպատմությունըդուրս է բերվում TextBox1-ում:<br />Տեսանյութըդիտելուհամարսեղմելայստեղ:<br />

×