Урок 5 – Масиви

Дефиниция

В C\C++ (както и в други програмни езици) понякога е по удобно да използваме едно име за променливи свързани помежду си логически. Това се нарича масив. Масивът е набор от краен брой еднотипни променливи разположени непосредствено един след друг в оперативната памет. Те се достъпват чрез общо име – името на масива и всеки от тях има пореден номер – индекс.

Индексите на масива започват от 0 и завършват с големината на масива минус 1. Пример:




Масив с десет елемента всеки от които от тип int (също казваме че масива е от тип int) има първи елемент с индекс 0 и последен елемент с индекс 9. Стойностите на първите три елемента са:
[0] = 5
[0] = -2
[0] = 7

 

Деклариране и инициализиране на масиви:

1
2
3
4
5
6
7
8
9
10
11
//масив с 5 елемента всеки от които от тип int
int arr1[5];
//масив с 5 елемента инициализиран със съответните стойност
int arr2[]={1,4,6,8,-3};
//масив с 10 елемента всеки от които от тип double
const int _size = 10;
double arr3[_size];
//масив с 5 елемента инициализирани със стойност 0
int arr4[5]= {};
}
Достъп до елементите на масив се осъществява чрез използването на съответния индекс на елемнта. С изключение на това всеки елемент го третираме като променлива от съответния тип.

int arr[]={1,4,6,8,-3};
//извеждаме на екрана първия елемент на масива
cout << arr[0];
//увеличаваме 4-тия елемент на масива с 5
arr[3] += 5;
//променяме стойността на последния елемент на масива да е равна на сбора от втория и третия елементи
arr[4] = arr[1] + arr[2];
[/cc]

Масиви и цикли.
Често при работа с масиви е удобно да се използват цикли за тяхното обхождане:

1
2
3
4
5
int arr[]={1,4,6,8,-3};
//обхождаме масива и изкарваме всеки един от неговите елементи на нов ред на екрана
for (int i = 0; i < 5; i++){
  cout << arr[i] << endl;
}

Примери:

1. Да се въведат елементите на масив от клавиатурата след което да се изкарат на екрана на един ред разделени от подчертавка:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const int _size = 5;
int ar[_size];
//въвеждане на елементите на масива от клавиатурата
for (int i = 0; i < _size; i++)
{
  cout << "ar[" << i << "]="; cin >> ar[i];
}
//извеждане на елемнтите(без последния) разелени с подчертавка
for (int i = 0; i < _size-1; i++)
{
  cout << ar[i] << '_';
}
//извеждане на последен елемент
cout << ar[_size - 1];
cout << endl;

примерно изпълнение:

ar[0]=1
ar[1]=-6
ar[2]=3
ar[3]=13
ar[4]=0
1_-6_3_13_0

2. Да се иницилизира масив с 10 елемента с четни числа започващи от 2 (следващите да са 4,6,8 и т.н.) :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
const int _size = 10;
int ar[_size];

//инициализиране на елементите на масива с четни стойности заповайки от 2
for (int i = 0; i < _size; i++)
{
  ar[i] = (2*i)+2;
}
//извеждане на масива на екрана
for (int i = 0; i < _size; i++)
{
  cout << ar[i] << ' ';
}
cout << endl;

примерно изпълнение:

2 4 6 8 10 12 14 16 18 20