Array

Array (Massiv) eyni tipli məlumatları bir ad altında saxlamağa imkan verən ən əsas məlumat strukturlarından biridir. Massivin bütün elementləri yaddaşda ardıcıl (contiguous) yerləşir və hər bir elementə indeks vasitəsilə birbaşa müraciət etmək mümkündür

DevCore Team19 iyul 2026 · 4 dəq oxu

Array nədir?

Array (Massiv) eyni tipli məlumatları bir ad altında saxlamağa imkan verən ən əsas məlumat strukturlarından biridir. Massivin bütün elementləri yaddaşda ardıcıl (contiguous) yerləşir və hər bir elementə indeks vasitəsilə birbaşa müraciət etmək mümkündür.

Məsələn, 5 tələbənin ballarını ayrı-ayrı dəyişənlərdə saxlamaq əvəzinə:

int bal1 = 85;
int bal2 = 92;
int bal3 = 78;
int bal4 = 100;
int bal5 = 67;

bir massiv yaratmaq kifayətdir:

int bal[5] = {85, 92, 78, 100, 67};

Beləliklə, bütün məlumatlar bir dəyişəndə toplanır və onlarla işləmək çox asanlaşır.


Nə üçün Array istifadə olunur?

Təsəvvür edin ki, 100.000 ədəd oxumalısınız.

Massiv olmasa belə yazmalı olardınız:

int a1, a2, a3, ..., a100000;

Bu həm mümkün deyil, həm də idarə etmək çox çətindir.

Array istifadə etdikdə isə sadəcə

int a[100000];

yazmaq kifayətdir.

Artıq bütün elementlərə dövr (loop) vasitəsilə rahat şəkildə müraciət etmək mümkündür.


Array necə işləyir?

Massivdə bütün elementlər yaddaşda ardıcıl yerləşir.

Məsələn:

İndeks

0

1

2

3

4

Dəyər

12

7

25

31

18

Burada

a[0] = 12
a[1] = 7
a[2] = 25
a[3] = 31
a[4] = 18

Massivdə birinci elementin indeksi həmişə 0 olur.

Sonuncu element isə

a[n-1]

şəklində yazılır.

Əgər massivin ölçüsü 5-dirsə

a[4]

sonuncu elementdir.


Array yaratmaq

Ən sadə yaradılma üsulu

int a[5];

Bu kod 5 tam ədəd saxlaya bilən massiv yaradır.


İlkin qiymət vermək

int a[5] = {3, 8, 2, 7, 10};

və ya

int a[] = {3, 8, 2, 7, 10};

İkinci halda kompilyator ölçünü özü hesablayır.


Elementə müraciət

Massivin istənilən elementini indeks vasitəsilə oxumaq mümkündür.

cout << a[2];

Çıxış

2

Çünki indekslər 0-dan başlayır.


Elementi dəyişmək

a[1] = 100;

Əvvəl

3 8 2 7 10

Sonra

3 100 2 7 10

Array-i daxil etmək

Ən çox istifadə olunan üsul

int n;
cin >> n;

int a[n];

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

Burada

a[i]

massivin i-ci elementidir.


Array-i çap etmək

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

Dövr ilə işləmək

Array-in ən böyük üstünlüyü odur ki, bütün elementlər üzərində dövr qurmaq mümkündür.

for (int i = 0; i < n; i++)
{
    // a[i] ilə işləyirik
}

Demək olar ki, yarış proqramlaşdırmasının 70%-də bu dövr istifadə olunur.


Ən çox istifadə olunan əməliyyatlar

1. Elementlərin cəmi

int sum = 0;

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

2. Maksimum elementi tapmaq

int mx = a[0];

for (int i = 1; i < n; i++)
    if (a[i] > mx)
        mx = a[i];

3. Minimum elementi tapmaq

int mn = a[0];

for (int i = 1; i < n; i++)
    if (a[i] < mn)
        mn = a[i];

4. Neçə dəfə təkrarlandığını tapmaq

Məsələn, 5 ədədinin neçə dəfə olduğunu hesablayaq.

int cnt = 0;

for (int i = 0; i < n; i++)
{
    if (a[i] == 5)
        cnt++;
}

5. Tək elementləri saymaq

int cnt = 0;

for (int i = 0; i < n; i++)
{
    if (a[i] % 2 == 1)
        cnt++;
}

6. Cüt elementləri saymaq

int cnt = 0;

for (int i = 0; i < n; i++)
{
    if (a[i] % 2 == 0)
        cnt++;
}

7. Ən böyük elementi və indeksini tapmaq

int mx = a[0];
int pos = 0;

for (int i = 1; i < n; i++)
{
    if (a[i] > mx)
    {
        mx = a[i];
        pos = i;
    }
}

8. Massivi tərsinə çap etmək

for (int i = n - 1; i >= 0; i--)
    cout << a[i] << " ";

9. Massivdə element axtarmaq (Linear Search)

int x;
cin >> x;

bool found = false;

for (int i = 0; i < n; i++)
{
    if (a[i] == x)
    {
        found = true;
        break;
    }
}

Vaxt mürəkkəbliyi

Əməliyyat

Mürəkkəblik

İndeks ilə elementə müraciət

O(1)

Elementi dəyişmək

O(1)

Element əlavə etmək (sonuna, sabit ölçülü massivdə mümkün deyil)

—

Bütün elementləri oxumaq

O(N)

Cəmi hesablamaq

O(N)

Maksimum tapmaq

O(N)

Minimum tapmaq

O(N)

Linear Search

O(N)


Ən çox buraxılan səhvlər

1. İndeksi 1-dən başlamaq

Səhv

for (int i = 1; i <= n; i++)
    cin >> a[i];

Düzgün

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

2. Son elementi a[n] hesab etmək

Səhv

cout << a[n];

Düzgün

cout << a[n - 1];

3. Dövrün sərhədini səhv yazmaq

Səhv

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

Bu halda a[n] oxunmağa çalışılır və proqram Out of Bounds xətası ilə qarşılaşa bilər.

Düzgün

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

4. Massivin ölçüsündən kənara çıxmaq

Əgər

int a[5];

yaradılıbsa, yalnız aşağıdakı indekslər mövcuddur:

0
1
2
3
4

a[5], a[6] və s. istifadə etmək Undefined Behavior yaradır.


Nəticə

Array proqramlaşdırmada və alqoritmlərdə ən fundamental məlumat strukturlarından biridir. Yarış proqramlaşdırmasında rast gəlinən məsələlərin böyük hissəsi massivlər üzərində qurulur. Massivlə işləməyi mükəmməl səviyyədə mənimsəmək dövrlər (loops), şərtlər (conditions), axtarış (searching), çeşidləmə (sorting) və daha mürəkkəb alqoritmləri öyrənmək üçün möhkəm təməl yaradır. Buna görə array mövzusu proqramlaşdırmaya başlayan hər bir inkişaf etdiricinin ilk və ən vacib öyrənməli olduğu mövzulardan biridir.

Öyrəndiyini yoxla

Mövzuya aid məsələləri DevCode-da həll et.

Məsələlərə keç

Digər məqalələr

IDS və IPS Nədir, Aralarındakı Fərqlər Hansılardır?

IDS və IPS

6 min read

Quick Sort (Sürətli Sıralama)

Bu dərsdə Quick Sort alqoritminin "böl və idarə et" məntiqi ilə işləmə prinsipini və C++ dilində tətbiqini öyrənəcəksiniz. Pivot elementinin seçim strategiyalarını və bu seçimin alqoritmin sürətinə necə təsir etdiyini detallı şəkildə təhlil edəcəyik. Həmçinin, alqoritmin zaman və məkan mürəkkəbliyini, üstünlüklərini və digər sıralama üsullarından fərqini mənimsəyəcəksiniz.

10 min read
← Bütün məqalələr