Съдържание

  1. Едномерни масиви
  2. Двумерни масиви

Едномерни масиви

Масивите са група от променливи, но вместо за всяка променлива да се използва различно име, се използва едно име за целия масив. За достъп до индувидуалните променливи се използва число. Масив се декларира по същия начин както и променлива, с единствената разлика, че след името на масива в правоъгълни скоби се слага число (индекс), което определя броя на променливите в него. Нека декларираме масив с 10 променливи в него:

  1. int arr[10];

Можете да задавате стойности на променливите в масива, като използвате индекса на елемента, на който искате да зададете стойност. Важно е да запомните, че индексацията в C++ започва от 0. Тоест при масив от 10 елемента индексите на елементите в него са от 0 до 9. Имайки предвид казаното дотук, ето и как се задават стойности на всички елементи от масива чрез вход от конзолата:

  1. cin>>arr[0];
  2. cin>>arr[1];
  3. cin>>arr[2];
  4. cin>>arr[3];
  5. cin>>arr[4];
  6. cin>>arr[5];
  7. cin>>arr[6];
  8. cin>>arr[7];
  9. cin>>arr[8];
  10. cin>>arr[9];

Както може би вече сте се убедили, това не е най-практичният начин за въвеждане на стойности, защото трябва да задаваме стойност всеки елемент от масива поотделно – в случая имаме едва 10 елемента, а какво остава ако масива беше със 100 елемента или повече? Тук ще се намеси цикълът FOR, с който би трябвало да сте се запознали в предишния урок (Справка C++ Цикли). Ето как би изглеждал нашият код, използвайки цикъл:

  1. int arr[10];
  2. int i;
  3. for(i=0; i<10; i++){
  4. cin>>arr[i];
  5. }

Накратко – променливата i се изменя от 0 до 9 и я използваме като индекс на елемента от масива. След като стартирате програмата ще трябва да въведете 10 числа. Съответно за масив със 100 елемента, примерът ще е следния:

  1. int arr[100];
  2. int i;
  3. for(i=0; i<100; i++){
  4. cin>>arr[i];
  5. }

Понякога може да ни се наложи да зададем начални стойности на масива, още при декларацията му, това става по следния начин:

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

Броят стойности между големите скоби не трябва да надвишава обявената бройка в квадратните скоби. В C++ има възможност да не задаваме стойност между квадратните скоби [], и автоматично ще се задели пространство за толкова елементи, колкото сме изредили между големите скоби {}:

  1. int arr [] = { 1, 2, 3, 4, 5 };

След изпълняването на последната декларация, масивът ще бъде с дължина 5 елемента, защото толкова сме посочили в скобите.

Двумерни масиви

Може да си представите двумерните масиви като таблица – съответно с редове и колони. Друг начин да си представите двумерния масив е като едномерен масив, на който всеки елемент също е едномерен масив. Тоест имате масив от масиви. Декларацията става с помощта на два индекса, първият отговаря на броя на редовете, а вторият – на броя на колоните.

Дефиниране:
тип идентификатор[брой_редове][брой_колони];

Пример:

  1. int arr[2][3];

Таблична подредба на елементите:
arr[0][0] arr[0][1] arr[0][2]
arr[1][0] arr[1][1] arr[1][2]

Задаването на стойности на двумерния масив става с помощта на два вложени цикъла. Първият обхожда редовете, а вторият колоните:

  1. int arr[2][3];
  2. int i,j;
  3. for (int i=0; i<2; i++)
  4. for (int j=0; j<3; j++)
  5. cin>>arr[i][j];

Задача: Сега приложите наученото до момента и напишете програма, която изисква от потребителя да въведе в конзолата 10 числа в едномерен масив и накрая да изведе колко на брой са отрицателните числа в масива.

За задачата може да ви бъде от полза опресняване на знанията по темите Условни оператори if-else и Оператори за сравняване

Справихте ли се?

Автор: Мартин Михайлов