Ամեն տարի մեծանում է հետաքրքրությունը ծրագրավորման նկատմամբ։ Եվ եթե ծրագրեր գրելու մեջ մասնագիտացած հաստատություններում հենվում են այնպիսի ծրագրավորման լեզվի վրա, ինչպիսին է C ++-ը, ապա դպրոցներում և տեխնիկումներում ուսանողները ծանոթանում են «Պասկալի» հետ։ Եվ արդեն այս լեզվի հիման վրա նրանք սկսում են ընկալել ծրագրավորումը Delphi ծրագրային ապահովման միջոցով։ Անմիջապես պետք է նշել, որ այս ծրագրավորման լեզուները հսկայական տարածք են տալիս իրենց երևակայության դրսևորման համար։ Իսկ եթե Pascal լեզվի օգնությամբ կարելի է ծանոթանալ ծրագրավորման հիմնական հասկացություններին, ապա Դելֆիում արդեն կարելի է լիարժեք ծրագիր գրել։ Իսկ հաղորդումներ գրելու մեջ երբեմն բավականին կարևոր տեղ է զբաղեցնում «Pascal»-ով զանգվածներ լուծելը։
Մեծ թվով շատ տարբեր փոփոխականների առկայություն
Ծրագրավորման լեզվում կան բավականին շատ տարբեր փոփոխականներ, որոնք բնութագրվում են միայն մեկ արժեքի առկայությամբ: Նրանք կարողանում են պահպանել մեկ արժեք, որն ունի որոշակի տեսակ: Բացառություն են լարային փոփոխականները: Նրանք ենայն տվյալների հավաքածուն է, որոնց համար բնորոշ է նիշերի տեսակը: Բայց նույնիսկ այդպիսի փոփոխականները սովորաբար դիտարկվում են առանձին արժեքի դիրքից։
Գաղտնիք չէ, որ համակարգչի օգնությամբ դուք կարող եք զգալիորեն կրճատել մեծ քանակությամբ տվյալների հետ կապված որոշակի աշխատանք կատարելու ժամանակը։ Բայց ինչպե՞ս, երբ օգտագործվում են միայն այն փոփոխականները, որոնք ունեն մարդկանց հայտնի տեսակներ, հնարավո՞ր է աշխատանքի արդյունքները պահել հիշողության մեջ, ինչպես նաև մշակել այն տվյալները, որոնք պարունակում են մեծ թվով տողեր: Նման առաջադրանքները բավականին տարածված են գործունեության ցանկացած ոլորտում։
Իհարկե, դուք միշտ կարող եք մուտքագրել այնքան փոփոխականներ, որքան անհրաժեշտ է ձեր նպատակներին հասնելու համար: Դուք կարող եք նաև որոշ արժեքներ սահմանել նրանց համար: Բայց ծրագրի կոդը սրանից միայն կավելանա։ Դժվար է կարդալ այն կոդը, որն ունի մեծ թվով տողեր։ Հատկապես, երբ անհրաժեշտ է գտնել սխալներ։
Համապատասխանաբար, ծրագրավորողները մտածել են այս հարցի շուրջ։ Այդ իսկ պատճառով մինչ այժմ մշակված լեզուներն ունեն այնպիսի փոփոխականներ, որոնք հնարավորություն են տալիս իրենց մեջ պահել հսկայական քանակությամբ տվյալներ։ «Pascal»-ում զանգվածը շատ է փոխվել ծրագրավորման մոտեցումներում։ Հետևաբար, այն համարվում է կարևոր փոփոխական ծրագրավորման լեզվում:
Զանգվածների օգտագործումը կարող է կտրուկ նվազեցնել կոդի չափը
Այս տերմինի տակ թաքնված է տվյալների պատվիրված հաջորդականություն, որը բնութագրվում է մեկ տիպով։ Բացի այդ, այս բոլոր տվյալները ստանում են նույն անունը: Այն նաև պետք էՊետք է նշել, որ իրական աշխարհի շատ առարկաներ կարող են տեղավորվել այս սահմանման մեջ՝ բառարաններ, մուլտֆիլմեր և շատ ավելին: Այնուամենայնիվ, «Pascal»-ում զանգված ներկայացնելու ամենահեշտ ձևը աղյուսակի ձևն է: Յուրաքանչյուր առանձին բջիջ պարունակում է մեկ փոփոխական: Օգտագործելով կոորդինատները՝ կարող եք որոշել փոփոխականի դիրքը, որը այն կզբաղեցնի ընդհանուր աղյուսակում:
Ի՞նչ է նշանակում միաչափ զանգված:
Ամենապարզ աղյուսակը գծային է: Այս զանգվածում պարամետրի գտնվելու վայրը որոշելու համար բավական է նշել միայն մեկ թիվ։ Դրանց հիման վրա ձևավորվում են ավելի բարդ զանգվածներ։
Միաչափ զանգվածները «Pascal»-ում նկարագրելու համար պարզապես մուտքագրեք հետևյալ կոդը. Տիպեք Array of.
Թվերն այն փոփոխականներն են, որոնք կարող են ունենալ հերթական տեսակ։ Շրջանակ նշելիս արժե հասկանալ, որ սկզբնական թիվը չի կարող ավելի բարձր լինել, քան վերջնականը։ Զանգվածի տարրերի տեսակը կարող է լինել բացարձակապես ցանկացած բան՝ կա՛մ ստանդարտ, կա՛մ արդեն նախկինում նկարագրված: Ընտրությունը կախված կլինի որոշակի խնդրի լուծման անհրաժեշտությունից:
Ինչպե՞ս է նկարագրվում գծային զանգվածը:
Հնարավոր է անմիջապես նկարագրել միաչափ զանգվածները «Pascal»-ում։ Դա պետք է արվի հատուկ բաժնում, որն անհրաժեշտ է այս կոնկրետ ընթացակարգի համար: Դուք պետք է մուտքագրեք հետևյալ կոդը՝ Var: Array Of.
Որպեսզի հասկանաք, թե ինչպես կարող եք նկարագրել զանգվածը Pascal-ով, դուք պետք է մուտքագրեք հետևյալ կոդը՝
- Var
- S, VV: Array[5..50] Real;
- K. զանգված ['C'.. 'R'] ամբողջ թվով;
- Z. զանգված [-10..10] Word;
- E: Array [3..30] Real.
Այս օրինակում S, VV և T փոփոխականները այն թվերի զանգվածն են, որոնք իրական են: K փոփոխականը թաքցնում է նիշերի տեսակը և այդ տարրերը: Որոնք ամբողջ թվեր են: Z զանգվածը պահում է թվեր, որոնց տեսակը Word է։
Բոլոր գործողությունների մեջ, որոնք կարելի է օգտագործել զանգվածի հետ աշխատելիս, կարելի է առանձնացնել հանձնարարությունը։ Ամբողջ աղյուսակը կարող է ենթարկվել դրան: Օրինակ՝ S:=VV. Բայց պետք է հասկանալ, որ հանձնարարական գործողությունները կարող են ենթարկվել միայն «Pascal»-ի զանգվածին, որն ունի որոշակի տեսակ:
Այլևս չկան գործողություններ, որոնք կարող են կատարվել միանգամից ամբողջ զանգվածի վրա: Այնուամենայնիվ, դուք կարող եք աշխատել տարրերի հետ այնպես, ինչպես այլ պարզ թվերի հետ, որոնք ունեն որոշակի տեսակ: Անհատական պարամետրին անդրադառնալու համար պետք է նշեք զանգվածի անունը: Օգտագործելով քառակուսի փակագծեր, դուք պետք է որոշեք այն ցուցանիշը, որը բնորոշ է ցանկալի տարրին: Օրինակ՝ K[12].
Հիմնական տարբերությունները զանգվածների և այլ փոփոխականների միջև
Աղյուսակի բաղադրիչների և պարզ փոփոխականների հիմնական տարբերությունն այն է, որ փակագծերում հնարավոր է տեղադրել ոչ միայն ինդեքսի արժեքը, այլ նաև այնպիսի արտահայտություն, որը կարող է հանգեցնել ցանկալի արժեքին: Անուղղակի հասցեավորման օրինակ կարող է լինել՝ V[K]: Այս դեպքում K փոփոխականը ստանում է որոշակի արժեք։ Սրանիցհետևում է, որ զանգվածը լրացնելիս, մշակելիս և տպելիս կարող եք օղակ օգտագործել։
Կազմակերպման այս ձևը կարող է առաջանալ տողային փոփոխականների դեպքում, որոնք իրենց հատկություններով բավական մոտ են Char տիպի զանգվածներին: Բայց կան նաև տարբերություններ. Դրանք հետևյալն են՝
- Տողային փոփոխականները միշտ կարելի է մուտքագրել ստեղնաշարից և տպել էկրանին:
- Տողային փոփոխականները սահմանափակ են երկարությամբ: Դուք կարող եք մուտքագրել առավելագույնը 255 նիշ: Զանգվածի կրիտիկական չափը 64 կբ է։
Ի՞նչ մեթոդներ կարող են օգտագործվել զանգվածի տվյալները էկրանին ցուցադրելու համար:
Պետք է ուշադրություն դարձնել զանգվածի բովանդակության ցուցադրման ձևին: Կան մի քանիսը:
- գրել (A[1], A[2], A[3]): Նման օրինակը, թեև պարզունակ է, կարող է ցույց տալ, թե ինչպես կարող եք ուղղակիորեն մուտք գործել աղյուսակին բնորոշ յուրաքանչյուր առանձին տարր: Այնուամենայնիվ, Pascal զանգվածների որոշ առավելություններ պարզ փոփոխականների նկատմամբ տեսանելի չեն այստեղ:
-
Ծրագիր A1;
Var B. զանգված [1..10] Integer;
K: Integer;
Սկիզբ
K:=1-ից մինչև 10 Do {Այս հրամանը պտտվում է պարամետրով }
Readln(A[K]); {A[I] մուտքագրվում է ստեղնաշարի միջոցով }
For K:=10 Downto 1 Do {Աղյուսակը տպվում է հակառակ հերթականությամբ}
Write(A[K], 'VVV') Վերջ.
Ծրագրի նմանատիպ ծածկագիրը զանգվածների համար «Pascal»-ում ցույց է տալիս, թե ինչպես կարելի է ստեղնաշարի միջոցով մուտքագրել 10 թվեր, տպել դրանք՝ արժեքները վերադասավորելով հակառակ հերթականությամբ: Եթե նույն ծրագիրը վերագրված էօգտագործելով մեծ թվով փոփոխականներ զանգվածի փոխարեն, ապա կոդը զգալիորեն կավելանա: Եվ սա մեծապես բարդացնում է ծրագրի ընթերցման գործընթացը։
Հնարավորությունների ավելացում զանգվածների օգտագործման միջոցով
Հնարավոր է նաև աղյուսակները լրացնել արժեքներով, որոնք հավասար են տարրերի ինդեքսների քառակուսին: Հնարավոր է նաև «Pascal»-ում ստեղծել տողերի այնպիսի զանգված, որը թույլ կտա ավտոմատ կերպով մուտքագրել բոլոր թվերը։ Ինչպես տեսնում եք, զանգվածի օգտագործումը մեծապես մեծացնում է Pascal ծրագրավորման լեզվի հնարավորությունները:
Գծային զանգվածների մշակումը շատ տարածված է տարբեր առաջադրանքներում: Ուստի ոչ մի տարօրինակ բան չկա նրանում, որ դրանք ուսումնասիրվում են ինստիտուտներում ու դպրոցներում։ Բացի այդ, զանգվածների հնարավորությունները բավականին ընդարձակ են։
Ի՞նչ է թաքնված երկչափ զանգվածների տակ:
Դուք կարող եք պատկերացնել աղյուսակ, որը բաղկացած է միանգամից մի քանի տողից: Յուրաքանչյուր առանձին տող պարունակում է մի քանի բջիջ: Նման իրավիճակում բջիջների դիրքը ճշգրիտ որոշելու համար անհրաժեշտ է նշել ոչ թե մեկ ինդեքս, ինչպես գծային զանգվածների դեպքում էր, այլ երկու՝ տողին և սյունակին բնորոշ թվեր։ «Pascal»-ի երկչափ զանգվածները բնութագրվում են նմանատիպ պատկերով։
Ինչպե՞ս նկարագրել այս տեսակի աղյուսակները:
Տվյալների կառուցվածքը, որը հայտնաբերված է Պասկալ լեզվում, որպեսզի պահպանի նման աղյուսակի արժեքները.երկչափ զանգվածի անվանումը. Նման զանգվածի նկարագրությունը հնարավոր է անմիջապես երկու եղանակով։
- Var B՝ զանգված[1..15] զանգված [1..30] ամբողջ թվով;
- Var B. զանգված [1..15, 1..30] Ամբողջ թվով.
Այս բոլոր դեպքերում նկարագրվում է երկչափ զանգված, որն ունի 15 տող և 30 սյունակ։ Վերևում տրված նկարագրությունները բացարձակապես համարժեք են: Տարրերից որևէ մեկի հետ աշխատելու համար անհրաժեշտ է հատկացնել երկու ինդեքս. Օրինակ՝ A[6][5] կամ A[6, 5]։
Էկրանի ելքը կլինի գրեթե նույնը, ինչ միաչափ զանգվածի դեպքում: Դուք միայն պետք է նշեք երկու ինդեքս: Մնացած բոլոր առումներով տարբերություններ, որպես այդպիսին, չկան, ուստի կարիք չկա դրա մասին երկար խոսել։
Տեսակավորելու առաջին եղանակը
Երբեմն անհրաժեշտ է դառնում տեսակավորել տվյալները: Դրա համար լեզուն ունի համապատասխան հրամաններ։ Գոյություն ունեն երկու ալգորիթմներ, որոնց միջոցով զանգվածը կարելի է տեսակավորել Pascal-ում: Ուղղակի ընտրության մեթոդի իմաստը կայանում է նրանում, որ ցիկլը բույն դնելով, սեղանի բացարձակապես յուրաքանչյուր փոփոխական կհամեմատվի այլ արժեքների հետ: Այսինքն, եթե կա 15 թվերի զանգված, ապա առաջին համարը 1-ը կհամեմատվի այլ թվերի հետ։ Դա տեղի կունենա այնքան ժամանակ, մինչև, օրինակ, գտնվի այն տարրը, որը մեծ է առաջին թվից: Հետագայում համեմատությունը տեղի կունենա հենց այս ցուցանիշով։ Դա կկրկնվի այնքան ժամանակ, մինչև հայտնաբերվի ամենամեծը:տարր բոլոր առաջարկներից: Այս մեթոդը բավականին պարզ է այն ծրագրավորողների համար, ովքեր նոր են սկսել աշխատել լեզվով։
Զանգվածի տեսակավորման երկրորդ մեթոդ
Երկրորդ ճանապարհը փուչիկն է: Այս տեխնիկայի էությունը կայանում է նրանում, որ հարևան տարրերը համեմատվում են զույգերով: Օրինակ՝ 1 և 2, 2 և 3, 3 և 4 և այլն: Այն դեպքում, երբ գտնված արժեքը լիովին համապատասխանում է տեսակավորման պայմաններին, այն կտեղափոխվի ամբողջ զանգվածի վերջ, այսինքն՝ կհայտնվի որպես «պղպջակ». Այս ալգորիթմը ամենադժվարն է հիշելու համար: Այնուամենայնիվ, պետք չէ այն մանրացնել: Հիմնական բանը կոդի ամբողջ կառուցվածքը հասկանալն է։ Եվ միայն այս դեպքում կարելի է հավակնել ծրագրավորման մեծ բարձունքների հասնելու։
Եզրակացություն
Հուսով ենք, որ դուք հասկանում եք, թե ինչ են զանգվածները և ինչպես կարող եք տեսակավորել որոշակի արժեք գտնելու կամ կոնկրետ նպատակին հասնելու համար: Եթե կոնկրետ խնդիր լուծելու համար ընտրել եք «Պասկալ»-ը, որում կարևոր տեղ են զբաղեցնում զանգվածները, ապա ձեզ հարկավոր է մանրակրկիտ մոտենալ դրանց ուսումնասիրությանը։ Դրա վրա ազդում է այնպիսի գործոն, ինչպիսին է լեզվում բավականաչափ մեծ թվով փոփոխականների առկայությունը, որոնք օգտագործվում են որոշակի իրավիճակներում՝ ամբողջ ծածկագիրը որպես ամբողջություն պարզեցնելու համար: Զանգվածներն իրավամբ համարվում են հիմնական մեծություններ, որոնց ուսումնասիրությունը պետք է տեղի ունենա անխափան։