Loading...

Эки өлчөмдүү массив

Көп өлчөмдүү массив - эки же андан көп өлчөмдөгү массив. Көп өлчөмдүү массивдин элементине жетүү үчүн эки же андан көп индекстердин айкалышы колдонулат.

Көп өлчөмдүү массивди жарыялоонун жалпы формасы төмөнкүдөй:

@A@type [,...,] array_name = new type [ size1 , size2 , ..., size N ];@A@

 

  • type - түздөн-түз массив элементтеринин түрү;
  • size1 , size2 , өлчөмү N – ар бир массивдин өлчөмү. N маанисимассивдин N өлчөмдүү экенин билдирет.

Мисал float тибиндеги реалдуу сандардын эки өлчөмдүү массивин жарыялайт

@A@// 3*4 реалдуу сандар массивинин жарыяланышы жана колдонулушу 
float [,] M = new float [3, 4]; // массив үчүн эстутум бөлөт

// массивди ыктыярдуу маанилер менен толтуруу
 ( int i = 0; i < 3 ; i++)
     for ( int j = 0; j < 4; j++)
        M[i, j] = ( float )(i * 0,2 + j * 0,3);

// жеке массив клеткаларына маанилерди жазыңыз
M[0, 1] = 0.35f;
M[2, 2] = 1.45f;@A@

 

Массивдин инициализациясы программада жарыяланган учурда массивдин уячаларына маанилерди жазууга мүмкүндүк берет. Көп өлчөмдүү массивди инициализациялоонун жалпы формасы төмөнкүдөй:

@A@type [,] массив_аты = { { маани, маани, ..., маани },
                       { маани, маани, ..., маани },
                       ...
                       { маани, маани, ..., маани } };@A@

 

  • тип – массив элементтеринин түрү;
  • маани - массивдин элементтери инициализацияланган маани.

В примере реализуется массив двумерных массивов с именем M. Массив имеет 10 строк. В каждой строке формируется двумерный массив размером 3×4.

@A@// объявление массива из 10 двумерных массивов вещественных чисел, каждый из которых имеет размер 3*4
float[][,] M; // объявление переменной типа "массив двумерных массивов"

// выделение памяти для 10 двумерных массивов типа float
M = new float[10][,];

// выделение памяти для каждого массива размером 3*4
for (int i = 0; i < 10; i++)
    M[i] = new float[3, 4];

// заполнение массивов произвольными значениями
for (int i = 0; i < 10; i++)
    for (int j = 0; j < 3; j++)
        for (int k = 0; k < 4; k++)
            M[i][j, k] = i * 10 + j * 3 + k;

 

M[0][2, 1] = 20.44f;
M[2][0, 2] = 100.08f;@A@