Едномерни и двумерни масиви
Масив - това е номерирана последователност от стойности от същия тип, обозначени със същото име. Елементите на масива се намират в последователни места в паметта, посочени от името на масива и индекса. Всяка от стойностите, съставляващи масива, се нарича съставна част (или елемент масив).
Масив от данни в програмата се счита за променлива от структуриран тип. На масива е присвоено име, чрез което можете да препращате както към масива от данни като цяло, така и към всеки от неговите компоненти.
Променливите, които представляват компоненти на масива, се наричат индексирани променливи, за разлика от простите променливи, които представляват примитивни данни в програма. Индексът в нотацията на компонентите на масива може да бъде константа, променлива или израз редови Тип.
Ако на всеки елемент от масива е присвоен само един сериен номер, тогава се извиква такъв масив линейна. Като цяло броят на индексите на елементите на масива определя измерение масив. На тази основа масивите се разделят на едномерни (линейни), двумерни, триизмерни и т.н.
Пример: числова последователност на четни естествени числа 2, 4, 6, . н е линеен масив, елементите на който могат да бъдат обозначени A [1] = 2, A [2] = 4, A [3] = 6,. A [K] = 2 * (K + 1), където ДА СЕ - номер на елемента и 2, 4, 6, . н - стойности. Индексът (поредният номер на елемента) се записва в квадратни скоби след името на масива.
Например A [7] е седмият елемент от масив A; D [6] - шестият елемент от масива D.
За да се постави масив в паметта на компютъра, се разпределя поле за памет, чийто размер се определя от вида, дължината и броя на компонентите на масива.
идентификатор на типа [брой редове];
int B [5]; char R [34];
- масивът е описан IN, 5 елемент и масив от символи R, състоящ се от 34 елемента. За масив IN 5 * 6 = 30 байта памет ще бъдат разпределени за масив R - 1 * 34 = 34 байта памет.
Типът на масивния елемент може да бъде всеки, с изключение на файловия тип. Имайте предвид, че номерирането на елементите на масива винаги отива от нулата.
Можете да попълните масива, както следва:
Първият начин използвайки оператора за присвояване. Този метод за запълване на елементите на масива е особено удобен, когато има някаква зависимост между елементите, например аритметична или геометрична прогресия, или елементите са свързани помежду си чрез рекурсивна връзка.
Задача 1. Попълнете едномерния масив с елементи, които отговарят на следното съотношение:
cin >> N;/* Въведете броя на елементите * /
за (int i = 2; i #include #include void main () < int A[99]; /*Массив из 100 элементов*/ cout >Н; рандомизира (); A [0] = -32768 + случаен (65535); за (int i = 1; i> n;
за (int i = 0; i> A [i];
Най-често срещаните действия, извършвани върху елементи на масива, са
а) търсене на ценности;
б) сортиране на предмети във възходящ или низходящ ред;
в) броене на елементи в масив, които отговарят на дадено условие.
Сумата от елементи на масива може да бъде изчислена с помощта на формулата S = S + A [I] първоначално пита С= 0. Броят на елементите на масива може да бъде изчислен с помощта на формулата ДА СЕ=ДА СЕ+1, първоначално настройка ДА СЕ= 0. Продуктът на елементите на масива може да бъде изчислен чрез формулата P = P * A [I], първоначално пита = 1.
Задача 3. Даден линеен масив от цели числа. Пребройте колко различни числа има в него.
strcat (str1,str2); - съединение str1 + str2 и влезте в str1, str2 не се променя.
strlen (str1,str2); - дължина на низа, нулевият знак се игнорира.
strcmp (str1,str2); - сравнение на низове (ако е равно на нула, тогава е равно).
strncpy (str1,str2,н); - копие н знаци в str1 в str2
Контролни въпроси и задачи
- Какво е масив?
- Защо Array е структуриран тип данни?
- Каква е размерът на масив? Има ли някакви ограничения за измерението на масив?
- Какъв тип могат да бъдат елементите на масива?
- Какъв тип могат да бъдат индексите на масивни елементи?
- По какви начини масивът може да бъде попълнен? Дай примери.
- Как да определите минималното количество памет, разпределено за масив?
- Какви действия обикновено се изпълняват върху елементи от масив?
- Може ли масивът да е елемент от масив?
- Нека елементите на масива A (a [1], a [2], a [3], a [4]) са съответно х, -х, х 2, -х 2. Каква ще е стойността на израза
- Възможно ли е да се премине през двуизмерен масив чрез циклиране на външната колона по колона и вътрешния цикъл по ред?
- Използват ли се вложени цикли при обхождане само на главния диагонал на квадратна матрица?