Массив – бір типке жататын, бір атауға біріктірілген элементтер тізбегі. Массив элементтері жадының тізілген ұяшықтарына орналасып, массив аты мен индексі арқылы белгіленеді. Массивті құрайтын әрбір мән оның компоненті, яғни массив элементі деп аталады.
Массив элементтері программада құрылымдық тип айнымалылары ретінде қарастырылады. Массивке ат берілгеннен соң, оның элементтеріне немесе бүкіл массивке сілтеме жасалына береді. Массив элементтерін құрайтын айнымалылар индексті айнымалылар деп аталады, олар программада қарапайым берілгендерді ұсынады. Элементті белгілеу кезінде индекс тұрақты, айнымалы немесе тізбектелген тип өрнегі бола алады.
Егер әрбір массив элементіне оның бір ғана реттік нөмері сәйкес келсе, массив сызықтық деп аталады. Массив элементтерінің индекс санын массив өлшемі анықтайды. Сол себептен, массивтер бірөлшемді (сызықтық), екі өлшемді, үш өлшемді, т.с.с. бөлінеді.
Мысал: натурал сандардың жұп тізбегі берілген: 2, 4, 6, ..., N бұл бір өлшемді массивті құрайды. Массив элементтері А[1]=2, А[2]=4, А[3]=6, ..., А[К]=2*К, мұндағы К — элемент нөмері, ал 2, 4, 6, ..., N — мәндер. Индекс (элементтің реттік нөмері) массив атауынан кейін тік жақшаға алынып жазылады.
Мысалы, A[7] — А массивінің жетінші элементі; D[6] —D массивінің алтыншы элементі.
Компьютер жадында массивті орналастыру үшін массив элементінің типі, ұзындығы және элемент санына байланысты орын бөлінеді.
тип атау[қатар саны];
Мысалы,
int B[5]; char R[34];
— 5 элементтен тұратын В массиві мен 34 элементтен тұратын R символдық массиві сипатталған.
Массив элементінің типі файлдық типтен басқа барлық тип бола алады. Массив элементінің нөмері әрқашан нөлден басталады.
Массивті келесі әдіспен толтыру:
Бірінші әдіс меншіктеу операторының көмегімен. Бұл әдіспен толтыру элементтер арасында қандайда бір тәуелділік бар болған кезде, мысалы, арифметикалық немесе геометриялық прогрессия болса, өте ыңғайлы.
Есеп 1. Бір өлшемді массив элементтерін келесі қатынасты қанағаттандыратындай етіп толтыру:
a1=1; a2=1; ai=ai-2+ai-1 (i = 3, 4, ..., n).
cin >> N; /*элементтер санын енгізу*/
A[0] = 1;
A[1] = 1;
for(int i=2; iA[I] = A[I - 1] + A[I - 2];
Массив элементтерінің мәнін кездейсоқ сандар арқылы меншіктеу әдісімен толтырудың екінші нұсқасы.
Есеп 2. Массив элементтерінің барлығы әртүрлі сан болатындай етіп кездейсоқ сандар арқылы бір өлшемді массивті толтыру.
// массив толтыру программасы
#include
#include
#include
void main()
{
int A[99]; /* 100 элементтен тұратын массив*/
cout << "массив элементі санын енгіз";
int N;
cin >> N;
randomize();
A[0] = -32768 + random(65535);
for(int i=1; i{
int log=1;
do
{
A[i] = -32768 + random(65535);
int j = 1;
while((log==1) && (j <= i - 1))
{
if(A[i] != A[j]) log = 0;
j++;
}
}while(log==1);
}
for(i=0;i}
Екінші әдіс массив элементтерін пернетақтадан енгізу, бұл әдіс көбінесе элементтер арасында ешқандай тәуелділік жоқ кезінде қолданылады. Мысалы, мына сандар тізбегі:
1, 2, -5, 6, -111, 0 жадыға келесі әдіспен енгізіледі:
int A[99], n;
cout << "массив элементтер санын енгіз ";
cin >> n;
for(int i=0; i{
cout << " A[" << i << "] енгіз";
cin >> A[i];
}
Массив элементтері арасында мынадай әрекеттер орындалады:
а) мәнін іздеу;
б) өсу, кему реті бойынша сұрыптау;
в) берілген шарт бойынша массив элементтеріне санау жүргізу.
Массив элементтерінің қосындысын S=S+A[I] формуласы бойынша есептейміз, ол үшін алдын ала S=0 деп аламыз. Ал массив элементтерінің санын К=К+1 формуласы бойынша, алдын ала К=0 деп алып есептейміз. Массив элементтерінің көбейтіндісін алдын ала P = 1 деп меншіктеп алып, P = P * A[I] формуласымен есептейміз.
Есеп 3. Бүтін сандардан тұратын бір өлшемді массив берілген. Неше түрлі сан бар екенін анықтайтын программа құрыңыз.
{Шешу жолы: қосымша көмекші массив енгіземіз, ол мәндерді анықтап отырады (0 – егер ол элемент кездессе, 1 – егер ол элемент кездеспесе)}
// түрлі сандар программасы
#include
void main()
{
int A[50], Lo[50], n;
cout << "массив элементтер санын енгіз: ";
cin >> n;
for(int i=0; i{
cout << "A[" << i << "]=";
cin >> A[i];
Lo[i] = 1;
}
int kol = 0; /*түрлі сандарды есептеуге арналған санауыш*/
for (i=0;i{
if (Lo[i]==1)
{
kol++;
for(int k=i; k{
Lo[k] = (A[k] != A[i]) && Lo[k];
}
}
}
cout << "түрлі сандар саны: " << kol;
}
Тест: N = 10; массив элементтері - 1, 2, 2, 2, -1, 1, 0, 34, 3, 3. Жауабы: 6.
Есеп 4. Бірөлшемді массив берілген. Элементтерді өсу реті бойынша сұрыптаңыз.
{Шешу жолы: массивтің қандайда бөлігі сұрыпталған болсын. Сұрыпталмаған бөлігіндегі ең кіші элементті тауып, оны келесі элементпен алмастыру керек }
// таңдау әдісімен сұрыптау программасы
#include
void main()
{
int A[30], n;
cout << "Элемент санын енгіз: ";
cin >> n;
for(int i=0; i{
cout << "A[" << i << "] енгіз";
cin >> A[i];
}
for(i=0; i
{
int k = i;
for(int j=i+1; jif(A[j]<=A[k]) k = j;
int buf = A[i];
A[i] = A[k];
A[k] = buf;
}
for(i=0; i{
cout << A[i] << " ";
}
}
Тест: N = 10; массив элементтері - 1, 2, 2, 2, -1, 1, 0, 34, 3, 3.
Жауабы: -1, -1, 0, 1, 2, 2, 2, 3, 3, 34.
Практикада есеп шығару кезінде матрица түрінде берілетін түрлі кестелі ақпараттармен жұмыс істеуге тура келеді. Элемент жол нөмері мен баған нөмері арқылы анықталса, ол екі өлшемді массив немесе кесте деп аталады.
Күн жүйесіндегі планеталар туралы ақпарат келесі кестеде берілген:
Достарыңызбен бөлісу: |