PDA

Դիտել ողջ տարբերակը : Criss-Cross_ խաչբառի կառուցում C++-ով



ArmSOAD
01.04.2008, 16:19
Բարև բոլորին:
Մի խնդրի առաջ եմ կանգնել ու օգնություն եմ խնդրում: Որևէ մեկը լուծել է երբևէ այս խնդիր C++ -ով:
Ծրագրորդը մուտք է անում անգլերեն բառերի շարան և ծրագիրը պետք է փորձի դրանցով խաչբառ կառուցել:
Վոնց մտածում եմ, բազմաթիվ ստուգումների մեջ խճճվում եմ: Ինչ ալգորիթմ կառաջակեք:

Gevorg Harutyunyan
01.04.2008, 17:07
MySQL, որպես տվյալների բազա, mysqlpp կամ mysql++, որպեսզի C++-ով կարողանաս օգտագորցես բազան, կամ էլ եթե դժվարանաս ODBC:
Կարաս օգտագործես MFC կամ, եթե Linux հարգում էս Qt գրաֆիկական մասի համար:
Արագ ու ինչ ավելի կարևորա որակով կարաս սարքես:
:B

Ալգորիթմը կարևոր չի էլ:

ArmSOAD
02.04.2008, 14:23
Դու երևի չպատկերացրիր ինչ եմ հարցնում: Ես ոչ մի ուրիշ բանից չպիտի օգտվեմ: C++-ով պիտի ծրագիր գրեմ, որը ցուցակում կպահի ներմուծված բառերը, հետո հենց ինքը պիտի փորձի կառուցել խաչբառ:
Հերթական բառը պիտի փորձի տեղադրել, եթե չստացվի, պիտի մի քայլ հետ գնա, նախորդ բառը հանի ու ուրիշը տեղավորի: Աըսինքն հատ հատ տառերը համեմատի, եթե նույնից գտավ, տեսնի տեղավորվում ա բառը, թե չէ:
Ինձ հիմա գրաֆիկական մասը չի հետաքրքրում: Ուզում եմ հնարավորինս արդյունավետ եղանակով ծրագիրը գրեմ:

firewall
02.04.2008, 14:57
Դու երևի չպատկերացրիր ինչ եմ հարցնում: Ես ոչ մի ուրիշ բանից չպիտի օգտվեմ: C++-ով պիտի ծրագիր գրեմ, որը ցուցակում կպահի ներմուծված բառերը, հետո հենց ինքը պիտի փորձի կառուցել խաչբառ:
Հերթական բառը պիտի փորձի տեղադրել, եթե չստացվի, պիտի մի քայլ հետ գնա, նախորդ բառը հանի ու ուրիշը տեղավորի: Աըսինքն հատ հատ տառերը համեմատի, եթե նույնից գտավ, տեսնի տեղավորվում ա բառը, թե չէ:
Ինձ հիմա գրաֆիկական մասը չի հետաքրքրում: Ուզում եմ հնարավորինս արդյունավետ եղանակով ծրագիրը գրեմ:

Criss-Crossy ինչա՞:

ArmSOAD
02.04.2008, 15:13
Խաչբառ, բայց ոչ թե հարցեր են տված, որ լրացնես պատրաստի խաչբառը, այլ հենց խաչբառի կառուցումն է տված բառերից:

firewall
02.04.2008, 15:26
Խաչբառ, բայց ոչ թե հարցեր են տված, որ լրացնես պատրաստի խաչբառը, այլ հենց խաչբառի կառուցումն է տված բառերից:

Իսկ խաչբաոը ինչ տեսք պետք է ունենա՞: Թե կարեվոր չէ՞: Այսինքն մնում է միայն մի ռեկուրսիվ ֆունկցիա գրել, որը կկգտնի a1,a2..an(n>=0) տեղերում b1,b2..bn տառեր ունեցող բառ, հա՞: :think

ArmSOAD
02.04.2008, 15:45
Դե տեսքը հենց էտ ա որ հաըտնի չի: Տեսքը պիտի վերջում ստացվի:
Ես մտածում եմ, որ պիտի ամեն բառի ամեն տառի համար ստուգվի բոլոր հնարավոր դեպքերը տեղադրման:
Օրինակ տված են բառերը- "աթոռ, անապատ, տանձ": Իմ կարծիքով, սկզբում պիտի վերցնի ամենաերկար բառը` "անապատ" ու փորձի մյուսը տեղադրել: Ասենք ստեղ "աթոռ"-ը սկզբում դնումա "անապատ"-ի 1-ին "ա"-ով դեպի ներքև, հետո "տանձ"-ը "անապատ"-ի "տ"-ից ներքև: Բայց եթե նենց լինի, որ "տանձ"-ի համար տեղ չգտննվի, պիտի "աթոռ"-ը հանի, ուրիշ տեղ դնի, ասենք "անապատ"-ի 2-րդ "ա"-ից ներքև: Եթե բոլոր հնարավոր դեպքերը չբավարարեն, պիտի "աթոռ"-ը հանի, սկզբում "տանձ"-ը դնի, կամ եթե ուրիշ բառեր էլ կան, ապա հաջորդ ամենաերկարը: Ու տենց անընդհատ, մինչև բոլոր բառերը դնի, կամ ասի, որ տվյալ բառերով հնարավոր չէ խաչբառ ստանալ:

ArmSOAD
12.04.2008, 16:12
Ինչ է ոչ մեկ, երբեք այսպիսի խնդիր չի լուծել? Գոնե ինչ ալգորիթմներ կառաջարկեք?:(

firewall
13.04.2008, 10:21
Ռեկուրսիվ

ArmSOAD
14.04.2008, 15:15
Ինչ ռեկուրսիվ? Էտքանը ես էլ եմ հասկանում: Չէ, տենց բան դուրս չի գա: Աչքիս ես առանց օգնության էլ կլուծեմ: Մի ձև եմ գտել, որը ահագին թեթևացնումա: Որոշել եմ խաչբառը ստանալ գրաֆի մեջ: Տենց համ մի քայլ ետ գնալն ա հեշտ (մի գագաթի հեռացում) համ ահագին ստուգումներ քչանում են:

Merujan99
13.10.2014, 00:46
գրե՞լ ես

Արամ
13.10.2014, 01:57
․․․․