by Kaloyan
Artwork: Kaloyan Nikiforov
Copyright © 2022
- Какво е масив:
Масивите са неизменна част от повечето езици за програмиране. Те представляват съвкупности от променливи, които наричаме елементи.
2. Как се декларира масив
Масиви в C# декларираме по следния начин:
int[] myArray;
В примера променливата myArray е името на масива, който е от тип (int[]), т.е. декларирали сме масив от цели числа. С [] се обозначава, че променливата, която декларираме е масив от елементи, а не единичен елемент.
Двумерен масив с int[,]. В следния пример показва това:
int[,] twoDimentionalArray;
Такива масиви ще наричаме двумерни, защото имат две измерения или още матрици (терминът идва от математиката). Масиви с повече от едно измерение ще наричаме многомерни.
Аналогично може да декларираме и тримерни масиви като добавим още едно измерение:
int[,,] threeDimentionalArray;
На теория няма ограничения за броя на размерностите на типа на масиви, но в практиката масиви с повече от две размерности са рядко използвани и затова ще се спрем по-подробно на двумерните масиви.
3. Матрица
Матриците имат две размерности и съответно всеки техен елемент се достъпва с помощта на два индекса – един за редовете и един за колоните. Многомерните масиви имат различен индекс за всяка размерност.
Важно:
Всяка размерност в многомерен масив започва от индекс нула.
Пример:
int[,] matrix = { {1, 2, 3, 4}, {5, 6, 7, 8}, };
Масивът matrix има 8 елемента, разположени в 2 реда и 4 колони. Всеки елемент може да се достъпи по следния начин:
matrix[0, 0] matrix[0, 1] matrix[0, 2] matrix[0, 3] matrix[1, 0] matrix[1, 1] matrix[1, 2] matrix[1, 3]
В горния пример виждаме как да достъпим всеки елемент по индекс. Ако означим индекса по редове с row, а индекса по колони с col, тогава достъпа до елемент от двумерен масив има следния общ вид:
matrix[row, col]
При многомерните масиви всеки елемент се идентифицира уникално с толкова на брой индекси, колкото е размерността на масива:
n Dimensional Array [index 1,…, index N]
4. Дължина на многомерен масив
Всяка размерност на многомерен масив има собствена дължина, която е достъпна по време на изпълнение на програмата. Нека разгледаме следния пример за двумерен масив:
int [,] matrix = { {1, 2, 3, 4}, {5, 6, 7, 8}, }
Можем да извлечем броя на редовете на този двумерен масив чрез matrix.GetLength(0), а дължината на всеки от редовете (т.е. броя колони) с matrix.GetLength(1).
5. Пример за отпечатване на матрици:
int[,] matrix = { {1, 2, 3, 4}, {5, 6, 7, 8}, }; for (int row = 0; row < matrix.GetLength(0); row++) { for (int col = 0; col < matrix.GetLength(1); col++) { Console.Write(matrix[row, col]); } Console.WriteLine(); }
Първо декларираме и инициализираме масива, който искаме да обходим и да отпечатаме на конзолата. Масивът е двумерен и затова използваме един цикъл, който ще се движи по редовете и втори, вложен цикъл, който за всеки ред ще се движи по колоните на масива. За всяка итерация по подходящ начин извеждаме текущия елемент на масива като го достъпваме по неговите два индекса (ред и колона). В крайна сметка, ако изпълним горния програмен фрагмент, ще получим следния резултат:
1 2 3 4 5 6 7 8
6. Пример за четене на матрица от конзола:
Това става като първо въведем големините на двете размерности, а след това с два вложени цикъла въвеждаме всеки от елементите му:
Console.Write("Enter the number of the rows: "); int rows = int.Parse(Console.ReadLine()); Console.Write("Enter the number of the columns: "); int cols = int.Parse(Console.ReadLine()); int[,] matrix = new int[rows, cols]; Console.WriteLine("Enter the cells of the matrix:"); for (int row = 0; row < rows; row++) { for (int col = 0; col < cols; col++) { Console.Write("matrix[{0},{1}] = ",row,col); matrix[row, col] = int.Parse(Console.ReadLine()); } } for (int row = 0; row < matrix.GetLength(0); row++) { for (int col = 0; col < matrix.GetLength(1); col++) { Console.Write(" " + matrix[row, col]); } Console.WriteLine(); }
Ето как може да изглежда програмата в действие (в случая въвеждаме масив с размер 3 реда на 2 колони):
Enter the number of the rows: 3 Enter the number of the columns: 2 Enter the cells of the matrix: matrix[0,0] = 2 matrix[0,1] = 3 matrix[1,0] = 5 matrix[1,1] = 10 matrix[2,0] = 8 matrix[2,1] = 9 2 3 5 10 8 9
Published: May 9, 2022
Latest Revision: May 9, 2022
Ourboox Unique Identifier: OB-1327921
Copyright © 2022