[Autumn Series] Масиви

Отговори
Потребителски аватар

Автор на темата
Autumn Shade EA\DICE
Developer
Developer
Мнения: 237
Регистриран: 14 мар 2019, 13:20
Се отблагодари: 45 пъти
Получена благодарност: 134 пъти

[Autumn Series] Масиви

Мнение от Autumn Shade EA\DICE » 12 авг 2019, 12:04

Съдържание:
  • Какво представлява?
  • Как се използва?
  • Упражнение
  • Какво следва?

Какво представлява?

Масивът си го представете като крайна редица от елементи. Толкова. Нека не правим нещата по-сложни. Сега, идва въпросът, как така крайна редица от елементи? Да, толкова е простичко. Представете си, че имате една купа с плодове. В тази купа има 5 ябълки. Това представлява масивът. Вие знаете, че имате пет ябълки в тази купа. Тази купа ви се явява масив, а ябълките вътре елементи на масива. И върху този масив могат да бъдат извършвани операции.

Как се използва?

Нека първо да зададем една база като синтаксис. За да си създадем една крайна редица от елемент(масив), имаме следният синтаксис:

Код: Избери всички

<тип данни> <име на променливата, както ще ни се казва нашата крайна редица>[<брой елементи>];
Този начин ще му дадем реален пример след като обясним, че има и други начини на дефиниране на един масив. Единият начин е този, задаваме размера на масива, но не казваме какви елементи има в него. Вторият начин да се дефинира, реално се казва декларация. Декларацията представлява обявяване на стойности при самата дефиниция. Тоест, вторият начин е като дефинираме самият масив, да определим какви елементи има, но да не му зададем размерност, защото той сам ще си определи размера:

Код: Избери всички

<тип данни> <име на променливата, както ще ни се казва нашата крайна редица>[] = { <първи елемент>, <втори елемент>, ... }
Лесничко нали? Нека да ги видим тези два примера в реална ситуация и използваемост.

Първи пример - Дефиниране на масив:

Код: Избери всички

int numbers[5];
Тук казахме, че имаме масив с пет елемента, които всеки един от тях е цяло число(заради int преди масива)

Първи пример - Декларация на масив:

Код: Избери всички

int numbers[] = { 1, 2, 3 };
Тук казахме, че имаме масив с елементи, които всеки един от тях е цяло число(заради int преди масива) и зададохме стойностите на този масив. В момента знаем, че имаме масив, който се казва numbers и има три цифри вътре в него, които са едно две и три.

Позиция в масивите
Всеки елемент си има позиция в тази крайна редица и тази позиция не започва от единица :coolface: Ама, чакай, как така, майтапиш ли се?
Съвсем не. Всеки един елемент в масив има позиция, която ние наричаме индекс на масива и този индекс на масива винаги започва от 0!

Тоест, от горният ни пример какво излиза?
Цифрата 1 e с позиция 0, цифрата 2 е с позиция 1, а цифрата 3 е с позиция 2. Лесно е, когато му свикнете. Сега ще видим и защо ни трябват тези позиции.

Позициите на елементите в масив са ни необходими, за да знаем как да достъпим даденият елемент. Какво ще означава това? Ако реално напишем просто cout << numbers << endl, то ще ни излезе или първият елемент, или едно много странно число, което не е число, а по-скоро адрес. Адрес, сочещ първият елемент на масива. Но това вече не са неща за начинаещи и започва да звучи сложно, а това не е целта.

Начинът на извеждане на информация от масив става по следният начин:

Код: Избери всички

// Имаме масив от три елемента с име numbers
int numbers[] = { 5, 18, 44 };

// Искаме да изведем числото 18. Числото 18 се намира на първа позиция от началото на масива. (Числото 5 е на позиция 0)
cout << numbers[1] << endl;
По този начин ние ще можем да изведем всяко едно число. Добре, а какво става ако напиша примерно cout << numbers[3] << endl; ?
Ще излезе грешка, че в масива няма такъв елемент или че желаният от вас масив е извън обхвата му.

Нека да се върнем към първият пример и да видим как можем да променяме стойности на масива. Променянето става точно толкова лесно колкото си и мислите:

Код: Избери всички

int numbers[3];

numbers[0] = 15;
numbers[1] = 84;
numbers[2] = 93;

Готово, това беше - просто присвояване. Нека направим и една задачка.

Упражнение
Да се създаде програма, в която да има два масива. Двата масива да са с еднакъв размер и от числов тип - int, double, float. Да се съберат стойностите на всеки елемент със съвпадащ индекс.

Пример:
Ако от масив a имаме елемента 18 на индекс 0, ще го съберем с елемента 5, който се намира на индекс 0 в масив b.

Какво следва?
В следващият пост ще разгледаме цикли и условни оператори

Отговори

Върни се в “Системно Програмиране”

Кой е на линия

Потребители, разглеждащи този форум: Няма регистрирани потребители и 1 гост