Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_na_bilety_YaP_1-21_23.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
722.66 Кб
Скачать

Свойство Length

Реализация в С# массивов в виде объектов дает целый ряд преимуществ. Одно из них заключается в том, что с каждым массивом связаносвойство Length, содержащее число элементов, из которых может состоять массив. Следовательно, у каждого массива имеется специальное свойство, позволяющее определить его длину.

Когда запрашивается длина многомерного массива, то возвращается общее число элементов, из которых может состоять массив. Благодаря наличию у массивов свойства Length операции с массивами во многих алгоритмах становятся более простыми, а значит, и более надежными. Давайте рассмотрим пример использования свойства Length:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

int[] myArr = { 1, 2, 3, 4 };

for (int i = 0; i < myArr.Length; i++)

Console.WriteLine(myArr[i]);

Console.ReadLine();

}

}

}

Многомерным называется такой массив, который отличается двумя или более измерениями, причем доступ к каждому элементу такого массива осуществляется с помощью определенной комбинации двух или более индексов. Многомерный массив индексируется двумя и более целыми числами.

Двумерные массивы

Простейшей формой многомерного массива является двумерный массив. Местоположение любого элемента в двумерном массиве обозначается двумя индексами. Такой массив можно представить в виде таблицы, на строки которой указывает один индекс, а на столбцы — другой. Пример объявления и инициализации двумерного массива показан ниже:

// Объявляем двумерный массив

int[,] myArr = new int[4, 5];

Random ran = new Random();

// Инициализируем данный массив

for (int i = 0; i < 4; i++)

{

for (int j = 0; j < 5; j++)

{

myArr[i, j] = ran.Next(1, 15);

Console.Write("{0}\t", myArr[i, j]);

}

Console.WriteLine();

}

Обратите особое внимание на способ объявления двумерного массива. Схематическое представление массива myArr показано ниже:

Если вам приходилось раньше программировать на С, С++ или Java, то будьте особенно внимательны, объявляя или организуя доступ к многомерным массивам в С#. В этих языках программирования размеры массива и индексы указываются в отдельных квадратных скобках, тогда как в С# они разделяются запятой.

Массивы трех и более измерений

В С# допускаются массивы трех и более измерений. Ниже приведена общая форма объявления многомерного массива:

тип[,...,] имя_массива = new тип[размер1, размер2, ... размеры];

Ниже приведен пример программы, использующей трехмерный массив:

int[,,] myArr = new int[5,5,5];

for (int i = 0; i < 5; i++)

for (int j = 0; j < 5; j++)

for (int k = 0; k < 5; k++)

myArr[i, j, k] = i + j + k;

Инициализация многомерных массивов

Для инициализации многомерного массива достаточно заключить в фигурные скобки список инициализаторов каждого его размера:

тип[,] имя_массива = {

{val, val, val, ..., val},

{ val, val, val, ..., val},

{val, val, val, ..., val}

};

где val обозначает инициализирующее значение, а каждый внутренний блок — отдельный ряд. Первое значение в каждом ряду сохраняется на первой позиции в массиве, второе значение — на второй позиции и т.д. Обратите внимание на то, что блоки инициализаторов разделяются запятыми, а после завершающей эти блоки закрывающей фигурной скобки ставится точка с запятой.

Ниже в качестве примера приведена общая форма инициализации двумерного массива:

int[,] myArr = {

{1,10},

{2,20},

{3,30},

{4,40}

};

Двумерный массив можно представить в виде таблицы, в которой длина каждой строки остается неизменной по всему массиву. Но в С# можно также создавать специальный тип двумерного массива, называемый ступенчатым массивом. Ступенчатый массив представляет собой массив массивов, в котором длина каждого массива может быть разной. Следовательно, ступенчатый массив может быть использован для составления таблицы из строк разной длины.

Ступенчатые массивы объявляются с помощью ряда квадратных скобок, в которых указывается их размерность. Например, для объявления двумерного ступенчатого массива служит следующая общая форма:

тип [][] имя массива = new тип[размер] [];

где размер обозначает число строк в массиве. Память для самих строк распределяется индивидуально, и поэтому длина строк может быть разной.

Давайте рассмотрим пример использования ступенчатого массива:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

int i = 0;

// Объявляем ступенчатый массив

int[][] myArr = new int[4][];

myArr[0] = new int[4];

myArr[1] = new int[6];

myArr[2] = new int[3];

myArr[3] = new int[4];

// Инициализируем ступенчатый массив

for (; i < 4; i++)

{

myArr[0][i] = i;

Console.Write("{0}\t",myArr[0][i]);

}

Console.WriteLine();

for (i = 0; i < 6; i++)

{

myArr[1][i] = i;

Console.Write("{0}\t", myArr[1][i]);

}

Console.WriteLine();

for (i = 0; i < 3; i++)

{

myArr[2][i] = i;

Console.Write("{0}\t", myArr[2][i]);

}

Console.WriteLine();

for (i = 0; i < 4; i++)

{

myArr[3][i] = i;

Console.Write("{0}\t", myArr[3][i]);

}

Console.ReadLine();

}

}

}

Созданный массив в данном примере можно структурно представить в виде:

Теперь нетрудно понять, почему такие массивы называются ступенчатыми! После создания ступенчатого массива доступ к его элементам осуществляется по индексу, указываемому в отдельных квадратных скобках.

Ступенчатые массивы находят полезное применение не во всех, а лишь в некоторых случаях. Так, если требуется очень длинный двумерный массив, который заполняется не полностью, т.е. такой массив, в котором используются не все, а лишь отдельные его элементы, то для этой цели идеально подходит ступенчатый массив.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]