/** Page structure tweaks for layout editor wireframe */ body#layout #main, body#layout #sidebar { padding: 0; } -->

среда, 21 декабря 2011 г.

ՄԵԿ ՉԱՓԱՆԻ ԶԱՆԳՎԱԾՆԵՐ


Մեկ չափանի զանգվածը - մեկ ընդհանուր անունով միևնույն տեսակի տվյալների համախումբ է:
Մեկ չափանի զանգվածների հայտարարման   համար օգտագործում են հետևյալ ընդհանուր գրելաձևը`



       Տվյալի տեսակ  Զանգվածի անուն  [Ամբողջ թիվ];
Ամբողջ թվով տրվում է զանգվածի տարրերի քանակը, որը      պետք է ունենա զերոյից մեծ արժեքներ: Եթե այն ունի n արժեք, ապա    նրա արժքների բազմությունը կընդունի 0-ից մինչև n-1 արժեքները: Այդ արժեքների բազմությանը անվանում են ինդեքսներ: Ինդեքսների     տրման համար կարող են օգտագործվել արտահայտություններ, որոնց կատարման արդյունքում  ստացվում է ամբողջ թիվ: Ինդեքսները կարող են ունենալ char, sort, int, long և enum տիպեր:   Օրինակª
                     double  an[4];
հայտարարումով ստեղծվում է 4 տարր ունեցող զանգված, որոնցից յուրաքանչյուրը կարող է ունենալ double տիպի արժեք:
Զանգվածի տարրերին  կարելի է  վերագրել սկզբնական արժեքներ վերագրման հրահանգի միջոցով : Օրինակ`
                    an[0] = 4.93;
                    an[1] = -14.3;
                    an[2] = 0.5;
                    an[3] = 1.67;
Զանգվածի տարրերին սկզբնական արժեքներ կարելի է վերագրել նաև արժեքների ցուցակի օգտագործմամբ հետևյալ գրելաձևի միջոցովª
                                          int  ae[5] = {23, 10, 16, 37, 12};
Փակագծերի մեջ պերք է տրվի առնվազն մեկ արժեք: Եթե փակագծերի մեջ գրված արժեքների քանակը գերազանցում է զանգվածի տարրերի քանակին, ապա սխալի մասին հաղորդագրություն է տրվում, իսկ եթե չի գերազանցում, ապա մնացած տարրերին տրվում է 0 արժեք:
           Եթե զանգվածի տարրերին արժեքներ են վերագրվել ցուցակի միջո-ցով,ապա զանգվածի տարրերի քանակը կարելի է ցույց չտալ:Այդ դեպքում զանգվածի տարրերի քանակը կոմպիլյատորն է հաշվում: Օրինակ, այս
                                           int  ac[ ] = {23, 10, 16, 37, 12, 27};
հրահանգի կատարման ժամանակ ac զանգվածի համար կնախատեսվի 6 տարր:
Սիմվոլային զանգվածի տարրերին  սկզբնական արժեքներ  կարելի է վերագրել ինչպես ցուցակով, այնպես էլ տողային լիտերալի միջոցով: Օրինակª
                                           char  ca1[ ] = { ‘C’, ‘+’, ‘+’};
                                           char  ca2[ ] = { “C++”};
հրահանգների կատարմից հետո ca1 զանգվածը կունենա 3 տարր, իսկ  ca2 զանգվածըª 4: Վերջին դեպքում հաշվի է առնվում նաև տողային լիտերալի վերջից դրված զերոյական սիմվոլը: Ընդ որում, սխալ է
                                             char  ca2[ 3 ] = { “C++”};
տեսքով գրված հրահանգը:
Ներկառուցված զանգվածները պատճենել չի կարելի: Օրինակ, եթե
                                           int  ac1[ 6 ] = {23, 10, 16, 37, 12, 27};
                                           int  ac2[ 6 ] ;
սխալ է
                                           ac1 = ac2;
հրահանգը:
Որպեսզի  ac1 զանգվածը պատճենվի ac2 զանգվածի մեջ,     պետք է պատճենման գործողությունը կատարվի այդ զանգվածների   բոլոր տարրերի հետ: Հետևյալ ծրագիրը  ac1 զանգվածը պատճենում է ac2-ի մեջ:
                                           const  int  ia = 6;
                                           int  ac1[ ia] = {23, 10, 16, 37, 12, 27};
                                           int main()
                                           {
                                           int  ac2[ ia ] ;
                                           int i1;
                                           for  (i1 = 0; i1  < ia;  i1++)
                                           ia2[ i1 ] = ia1[ i1];
                                           return 0;
                                            }
Եթե ունենք
                            int  ac1[ 6 ] = {23, 10, 16, 37, 12, 27};
հայտարարման հրահանգը, ապա ծրագրում զանգվածի անվան
                            ac1;
գրելաձևը համարժեք է նրա առաջին տարրի հասցեինª  &ac1[ 0 ]:
Զանգվածի առաջին տարրին կարելի է դիմել երկու ձևովª
                             *ac1;  կամ  ac1[ 0 ];
գրելաձևերով:

Զանգվածի երկրորդ տարրի հասցեին դիմելու համար պետք է գրելª
                              &ac1[ 1 ]; կամ  ac1+1;

Խնդիր: Պահանջվում է գտնել տված
                125.6  178.9  132.9  23.8  452.6  12.7  125.7
6 թվերի գումարը: Խնդրի լուծումը իրագործվում է հետևյալ ծրագիրի միջոցով
                              #include <iostream.h>
                              const  int  TOX = 6;
                              int main()
                              {
                              long double  ak[TOX] =
                              { 125.6 , 178.9,  132.9,  23.8,  452.6,  12.7,  125.7  };
                              int  i1;
                              long double  dsum = 0;
                              for  (i1 = 0; i1  < TOX;  i1++)
                              dsum = dsum + ak[ i1] ;
                              cout <<  dsum << endl;
                              return 0;
                              }

Комментариев нет:

Отправить комментарий