БЕРІЛГЕНДЕРДІҢ КҮРДЕЛІ ТИПІ: МАССИВТЕР


  1. Массивтер.
  2. Бір өлшемді және көп өлшемді массивтер.
  3. Сандық массивтерді өңдеудің типтік алгоритмдерін программалау.
  4. Бір өлшемді массивтер мен нұсқауыштар.

Массивбұл бір типті ақырлы сандардың жиыны.

Массив атпен аталады.

Мысалы, 1.6, 14.9, -7, 0, -4  сандарының терілімін 5 элементтен тұратын  массив деп санауға болады және белгілі бір атпен атауға мысылы, А болады.

Массивтің әр элементі массивтің аты мен квадратты жақша ішінде индексін көрсетумен аталады.

Массив элементтері индекстерінің ретімен реттелген.

Массивтерді сипаттауда:

  • Элементтерінің типін,
  • Массивтің атын,
  • Өлшемін , яғни, нақты элеметті көрсетуге қажет, индекстерінің санын көрсету қажет.

Сонымен қатар, сипаттауда әр индекс қабылдайтын мәндердің саны көрсетіледі. Мысалы, int а[10];  10 элементтен тұратын а[0], а[1], ..., а[9] массивті анықтайды. float Z[13][[6];  бірінші индексі 0 ден 12 ге дейінгі 13 мәннен, екінші индексі  0 ден 5 ке  дейінгі  6  міннен тұратын екі өлшемді массивті анықтайды. Сөйтіп, Z екі өлшемді массив элементтерін келесідей көрсетуге болады: Z[0][0],   Z[0][5],   , Z[12][5]

Си тілінің синтаксисіне сәйкес, тек бір өлшемді массивтер ғана болады, дегенмен, бір өлшемді массивтің элементері массив бола алады. Сондықтан екі өлшемді массив массивтің массиві ретінде анықталады. Сөйтіп, мысалда әрқайсысы float типті 6 элементтен тұратын  13 элемент-массивтерден тұратын массив берілген. Кез келген массив элементін нөмірлеу  0- ден басталып,  N-1  -ге дейін нөмірленетініне назар аударыңыз, мұндағы  N –индекс мәндерінің саны .

            Массивтердің шектелуі, яғни, Си тілінде оның элементінің индекстерінің санына жоқ. Си тілінің стандарты  транслятор  31- ге дейінгі массивтердің сипаттамасын ғана өңдеуге рұқсат етеді . Әдетте, көбінесе, бір өлшемді және екі өлшемді массивтер кеңінен қолданылады.

Массивтердің инициализациясы. Массивтерді сипаттауда олардың иницализациясы мүмкін, яғни, бастапқы мәндерді олардың элементтеріне меншіктеу. Маңызы бойынша (анығығырақ, нәтижесі бойынша), инициализация – бұл обьектіні оған нқты бір мәнді меншіктеу арқылы сипаттау. Инициализацияны қолдану массивті сипатау форматын өзгертуге мүмкіндік береді. Мысалы, бір өлшемді массив элементінің анық санын сипаттамай қоюға болады, тек инициализация тізімінде олардың бастапқы мәнін көрсету:

double d[   ]={1.0, 2.0, 3.0, 4.0, 5.0};

Бергілген мысалда массивтің ұзындығын  компилятор фигуралық жақшалардың ішіндегі бастапқы мәндер саны бойынша есептейді. Осындай сипаттаудан кейін элемент d[0] тең 1.0, d[l] тең 2.0  және т.с.с d[4]  тең 5.0.

Егер массивтің сипатталуындаоның өлшемі көрсетілмеген болса,онда бастапқы мәндрдің саны массив элементінің санынан көп болмайды.  Егер бастапқы мәндердің саны массив элементінің санынан аз болса, онда ол мәндер массивтің алғашқы элементтеріне ғана меншіктеледі:

int М[8]={8,4,2};

Берілген мысалда келесі айнымалылардың мәні ғана анықталған: М[0], М[1] және М[2], олар сәйкесінше 8, 4 және 2 –ге тең. М[3],..., М[7] элементтері  инициализацияланбаған.

Көп өлшемді массивтерді инициялизациялау ережесі бір өлшемді массивті сипаттаған  сияқты, көп өлшемді массивті сипаттаумен сәйкес келеді. Бір өлшемді массивтер  фигуралық  жақшаға алынған бастапқы мәндері тізімі арқылы инициализацияланады. Егер бастапқы мән өз кезегінде массивке қатысты болса және фигуралық жақшаға алынған  бастапқы мәндерден тұрса. Мысалы,  Екі жол және үш қатардан тұратын екі өлшемді А  массивінің элементтеріне нақты  бастапқы мән меншіктеу келесідей болады:

 double A[3][2]={{10,20}, {30,40}, {50,60}};

Бұл жазу келесі меншіктеу операторының кезектілігіне эквивалентті: А[0][0]=10; А[0][1]=20; А[1][0]=30; А[1][1]=40; А[2][0]=50; А[2][1]=60; Осы тізімді келесі инициализациялау тізімі арқылы да алуға болады:

double A[3][2]={10,20,ЭО,40,50,60};

Инициализацияның көмегімен көп өлшемді массивтің барлық  элементтеріне мән меншіктемеуге болады. Мысалы, матрицаның тек бірінші  бағанына ғана мән меншіктеу келесідей болады:

double  Z[4][6]={{1}, {2}, {3}, {4}};

Келесі жазылым 5 жол және 4 бағаннан тұратын бүтін санды  массивте "үшбұрышты" матрицада түрлендіреді:

int х[5][4]={{1}, {2,3}, {4,5,6}, {7,8,9,10}};

Бұл мысалда ақырғы бесінші жол х[4] толтырылмаған, ал бастапқы үш жол толықтай толтырылмаған болып қалады.