С тіліндегі жиым (массив), вектор, матрицаларды пайдалану. Тілдің жиымдарды өңдеу тәсілдері

Массив немесе жиым – бір типтегі элементтердің реттелген жиыны. Олар бір атаумен – идентификатормен аталады да, индексті айнымалы ұғымына сәйкес келеді. Мысалы, мынадай тізбек

0 1 1 2 3 5 8 13 21

Си тілінде осы тізбекке сай жиымды сипаттап, оған бастапқы мән беріп инициалдау үшін былай жазамыз:

int fib[8]={0,1,1,2,3,5,8,13,21}; немесе int fib[]={0,1,1,2,3,5,8,13,21};

мұндағы fib – жиым аты, оның элементтері типі int, ал ұзындығы – 9, жиым элементтерінің индекстері 0-ден бастап нөмірленеді, сол себепті 9 элемент 8 индекспен көрсетіледі. Мәндері көрсетілсе, индексті жазбаса да болады.

Жиым элементтерін енгізу/шығару

Жиым элементтерін енгізу немесе оларды түрлендіру үшін цикл операторы қолданылады. Төменде 10 элементі бар жиымды 0-ден 9-ға дейінгі сандармен толтырып, сонан кейін оларды кері бағытта экранға шығару мысалы көрсетілген:

main ()

{int a[10]; int i; for (i = 0; i<10; i++) a[i] = i;

for (i = 9; i>=0; i--) printf(“ %i”, a[i]); }

Бірөлшемді жиым н/е вектор – элементтері бір индекспен анықталатын жиым.

Екіөлшемді жиым н/е матрица – элементтері екі индекспен анықталатын жиым. Матрицаны пайдалану үшін тік жақшалар ішінде олардың екі өлшемініңде көлемін көрсету керек. М: int a[4][3];

Алғашқы сан жолдар саны, ал екінші сан бағандар санын қөрсетеді, a 12 элементтен тұрады. Оларға бастапқы мәнді былай береміз:

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

Ішкі жүйелі жақшалардыда қоймаса болады:

a[4][3]={0,1,2,3,4,5,6,7,8,9,10,11};

Жиымдарды өңдеу есептерінің түрлері (класстары)

Жиымды өңдеу есептері көбінесе бірыңғайланған 4 түрге бөлінеді.

1. Есептердің 1-түріне жиым элементтерінің барлығын немесе көрсетілгендерін бірдей бір тәсілмен өңдеу есептері жатады.

2. Есептердің 2-түріне жиым элементтерінің орналасу реттілігін өзгерту тәсілдері жатады.

3. Есептердің 3-класына бірнеше жиымдарды қатар өңдеу немесе бір жиымның ішкі элементтерін бірнеше топқа бөліп жеке-жеке өңдеу тәсілдері жатады. Жиымдар бір тәсілмен- синхронды өңделеді немесе әр түрлі тәсілмен – асинхронды түрде өңделеді.

4. Есептердің 4-класына жиымның берілген санға тең бірінші элементін табу, яғни іздеу есептері жатады.

Есеп. Жиымның ең үлкен элементін анықтау керек

#include<stdio.h> #include<stdlib.h>

#include<conio.h>

main()

{ int a[100];

int n;

printf("\nЖиым ұзындығы: ",n);

scanf("%i",&n);

for(int i=0;i<n;i++) {

a[i]=rand()%100-50; // кездейсоқ сандар 0 – 32767

printf("%i ",a[i]); }

int max=a[0]; for(i=0;i<n;i++)

if(a[i]>max) max=a[i]; printf("\n max=%i”,max);

getch(); }

rand() функциясы 0...32767 аралығын-дағы бүтін сан береді. Оны қолдану үшін stdlib.h директивасын қолдану қажет. Жиым элементтері екі разрядты оң және теріс сандардан тұруы үшін алынған кездейсоқ сан 100-ге бөлінгендегі қалдықтан 50 алып тасталынады.

Есеп. Жиым элементтерін кері бағытта орналастыру

For(int i=0, j=n-1;i<j; i++, j--)

{ int r=a[i]; a[i]=a[j]; a[j]=r;}