Назад Вперед Зміст

Масиви у мові C#

Масивом називають впорядковану сукупність елементів одного типу. Кожен елемент масиву має індекси, які визначають його розташування.

Кількість індексів характеризує розмірність масиву (одновимірний, двовимірний).

Кожен індекс змінюється в певному діапазоні [0,n].

Елементи масиву нумеруються з нуля.

У мові C#, як і в багатьох інших мовах, індекси задаються цілочисельним типом.

Масиви у мові C# відносяться до посилальних типів.

Опис масивів без виділення пам'яті

При описі одновимірних масивів можна не вказувати кількість елементів, а при описі двовимірних масивів можна не вказувати кількість рядків і стовпців

Тому при описі масиву місце для його елементів не відводиться, а створюється лише посилання на нього, що має невизначене значення Null.

int [] Arr1; //Arr1 одновимірний масив цілих чисел

int [,] Arr2; //Arr2 двовимірний масив цілих чисел

Однак так описані масиви не можна навіть заповнити значеннями, оскільки їм не виділено пам'ять.

Опис масивів з виділенням пам'яті та ініціалізацією

Якщо для створення масивів використовується конструктор new, то елементам масиву виділяється місце у пам'яті, і вони ініціалізуються залежно від типу (0, порожній рядок, Null)

//b одновимірний масив з 4-х елементів. Усі значення 0

int[] b = new int[4];

//с двовимірний масив з 2-х рядків і 3-х стовпців. Усі значення 0

int [,] с = new int [2,3];

Приклад

Заповнити цілочисельну матрицю розміром 3x4 випадковими числами. Знайти:

static void Main(string[] args)
{
    // Створення об'єкту для генерації випадкових чисел
    Random random = new Random();
    long sum = 0; // Сума всіх елементів
    
    // Розміри матриці
    const int rows = 3, cols = 4;
    
    // Оголошення двовимірного масиву
    int[,] matrix = new int[rows, cols];
    
    // Заповнення матриці випадковими числами та виведення
    Console.WriteLine("Матриця:");
    for (int i = 0; i < rows; i++)
    {
        Console.WriteLine();
        for (int j = 0; j < cols; j++)
        {
            matrix[i, j] = random.Next(-10, 10);
            sum += matrix[i, j];
            Console.Write("{0,3} ", matrix[i, j]);
        }
    }
    
    Console.WriteLine();
    
    // Обчислення середнього арифметичного
    double average = sum / (rows * cols * 1.0);
    Console.WriteLine("Середнє значення = {0:F2}", average);
    
    // Аналіз стовпців на кількість додатних чисел
    for (int j = 0; j < cols; j++)
    {
        int positiveCount = 0; // Лічильник додатних чисел
        
        for (int i = 0; i < rows; i++)
            if (matrix[i, j] > 0) 
                positiveCount++;
        
        Console.WriteLine("Стовпець {0}, додатних чисел - {1}", j, positiveCount);
    }
    
    Console.WriteLine("Натисніть будь-яку клавішу для виходу...");
    Console.ReadKey();
}

У форматувальному рядку даного прикладу для виведення елементів двовимірного масиву використовується конструкція {0,3}.

Такий формат виведення означає, що на виведене значення відводиться 3 знаки. Вирівнювання по правій стороні. Якщо виведене значення має менше трьох знаків, то значення зліва доповнюється пробілами.

Такий формат зручно використовувати при виведенні двовимірних масивів, оскільки чітко видно рядки та стовпці.

Матриця:
  5  -2   9   4
 -3   7   0   1
  8  -5   2  -6

Середнє значення = 1.58
Стовпець 0, додатних чисел - 2
Стовпець 1, додатних чисел - 1
Стовпець 2, додатних чисел - 2
Стовпець 3, додатних чисел - 2
Натисніть будь-яку клавішу для виходу...

Назад Вперед Зміст