Определение
Масивът е променлива, която съдържа множество стойности от един и същи тип, обединявайки ги с общо име. Достъпът до всеки елемент става, чрез името на масива и индекс.
Както всяка променлива, масивът има тип на данните, които може да съдържа. Те могат да бъдат от всеки един вид – цели числа, числа с плаваща запетая, символи, низове и т.н. Стойностите, които се записват в масива могат да бъдат само от един тип и той се задава, при неговото създаване. За примера ще използваме цели числа.
Както при създаването на всяка променлива, така и тук се задава име. То се използва всеки път, когато искаме да четем/пишем стойност от/в масива. В примера ще зададем за име – array.
Всеки масив има размерност. Тя е равна на броя на елементите (стойностите), които ще могат да се запишат – N.
За разлика от обикновените променливи, тук се въвежда нов термин – индекс. Той служи, за да укажем точно с кой елемент от масива искаме да работим. Достъпът до даден елемент става, като се запише името на масива и индексът в квадратни скоби. За индекс ще използваме променливата index.
Пример:
index = | 0 | 1 | 2 | 3 | 4 |
array[index] = | 4 | -6 | 0 | 23 | -17 |
Създаване на масив
Създаване на масив – записва се името на масива с броя на елементите в квадратни скоби.
array[N] – създава се масив с N на брой елемента.
При N = 5, array[5] – даден е масив с 5 елемента.
Току–що дефинираният масив е празен:
index = | 0 | 1 | 2 | 3 | 4 |
array[index] = |
Запомнете, че индексът винаги започва от 0, а не от 1. Това означава, че първият елемент се достъпва при index=0, а последния при index= N – 1.
Още примери с масиви
Пример: Даден е целочислен масив с 10 елемента. Да се напише алгоритъм за попълване на елементите му с нули.
1. Задава се начална стойност на i = 0, тъй като ще използваме i като индекс, с който ще достъпим последователно всички елементи на масива – от първия (i = 0) до последния (i = N – 1).
2. Проверява се, дали все още се намираме в границите на масива (i = 10).
- Ако условието е истина, значи че не сме обработили всички елементи на масива и продължаваме обработката.
- Ако условието е лъжа, то сме попълнили всички елементи и алгоритъмът приключва.
3. Задава се стойност 0 на текущия елемент array[i] = 0. При всяка стъпка този блок ще има вида:
array[0] = 0
array[1] = 0
...
array[9] = 0
Попълненият масив има вида:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Пример: Даден е масив от 100 елемента. Да се намери сумата на всички четни елементи, намиращи се на позиция с нечетен индекс.
Очевидното решение е да се обходи целия масив. При всяка стъпка се проверява дали индексът е нечетен и дали стойността на елемента е четна. Ако условията са изпълнени, сумата се увеличава със стойността на текущия елемент.
Така описаният алгоритъм ще работи, но… нещо прави ли ви впечатление? Да? В предишната лекция говорихме за оптимизация. Този пример също има очевидна нужда от подобрение. Вероятно вече сами се досещате, че няма смисъл да се обхожда целия масив със стъпка 1. Както направихме и предишните оптимизации, можем да обходим масива само по елементите, намиращи се на нечетен индекс. Ако това е ново за вас е добре да прегледате предишния ни урок: цикли и оптимизация.
А ето и как изглежда блок схемата на задачата:
С това уроците от поредицата "Въведение в програмирането" приключва. Ако искате да се занимавате с програмиране сериозно помислете за курс на обучение. Ние предлагаме:
- Признат сертификат!
- Курсовете се водят от програмисти с опит.
- Провеждаме курсове както за начинаещи, така и за напреднали
- Различни езици като Java, C#, PHP+SQL, HTML+CSS, C++ и други.
- Редовно провеждаме обучения с последваща работа.
За записвания може да погледнете в графика, а най-добрия вариант е направо да се свържете с нас.
За упражнение
Задачи
- Даден е целочислен масив с 10 елемента. Да се напише алгоритъм за попълване на елементите със стойности равни на индекса, на който се намират.
- Даден е попълнен масив с N на брой елемента – цели числа. Да се намери елементът с най – голяма стойност в масива.
- Дадени са масивите array1[N] и array2[M]. Да се провери, дали са еднакви.
Предишен урок: Цикли и оптимизация