Массивы
Тип массив – структура данных, представляющая собой набор переменных одинакового типа, имеющих общее имя. Каждый элемент массива однозначно определяется именем и индексом (номером элемента в массиве). Индексы массива принадлежат целочисленному типу. Массивы позволят легко обрабатывать большое количество связанных переменных.
Массив может быть:
- одномерным A1 [ ]
- двумерным M2 [ , ]
Формат объявления одномерного массива в C#:
тип[ ] ИмяМассива = new тип [размер];
Формат объявления двумерного массива в C#:
тип [ , ] ИмяМассива = new тип [количество строк, количество столбцов];
где тип – type – имя типа значений элементов;
[ ] – признак массива. Запятые внутри скобок задают размерность массива. Запятых нет – массив одномерный, запятая одна – массив двумерный;
ИмяМассива – имя массива;
new – оператор, предназначенный для создания объекта любого классового типа, позволяет динамически размещать в памяти элементы массива.
размер – количество элементов, которые будут храниться в массиве.
Элементы массива могут быть любых типов. Доступ к элементу массива осуществляется посредством индекса (позицию элемента внутри массива):
ИмяМассива [ НомерЭлемента ].
Индексация массивов начинается с нуля: массив с элементами n индексируется от 0 до n-1. При обращении к элементу массива, надо указать его имя и номер элемента в квадратных скобках. Например, A[4] – пятый элемент массива А, B[2,3] – элемент, лежащий на пересечении 3 строки и 4 столбца массива B.
Примеры объявления массивов:
static void Main(string[] args)
{
int[ ] А = new int[5]; // одномерный массив А из 5 целых чисел
char[ ] H = new char[10]; // одномерный массив H из 10 символов
double[,] M = new double [2, 3]; // двумерный массив 2х3 вещественных чисел, содержащий 2 строки и 3 столбца
}
При объявлении массива можно выполнить его инициализацию, т.е. присвоить начальные значения элементам массива в момент его создания.
Формат объявления одномерного массива с инициализацией:
тип [ ] ИмяМассива = {v1,v2,v3,…vn};
Формат объявления двумерного массива в C#:
тип [ , ] ИмяМассива = {{v11,v12,…v1j},…{vi1,vi2,…vij}};
//1-я строка ……… i-я строка
Здесь начальные значения, присваиваемые элементам массива, задаются с помощью последовательности v1, v2, v3,…vn для одномерного массива и vij – для массива размерностью ( i x j ), где i – номер строки, а j – номер столбца для двумерного массива.
Примеры объявления массивов с инициализацией:
int[ ] С = new int[ ] { 1, 3, 5, -7, 9 }; // массив С с пятью элементами
double[ ] D = { 1.5, 2.1, 3.65, 4.7, 5.14, 6.36 }; // альтернативный синтаксис
char[ ] Q = {'a','b','g'}; //массив Q инициализирован тремя символами
string[ ] Team = {"Zenith", "Dynamo", "Sparta", "Rotor", "CSK"};
int[ , ] M= { { 1, 2, 3 }, { 4, 5, 6 } }; // массив M: 2 строки и 3 столбца
int[ ,] L ={{0,2,4,6},{2,9,6,3},{4,7,5,8}, {1,6,5,7}};
//массив L (4х4) инициализирован
. . .
При инициализации допустимо указывать размер массива, но количество элементов списка инициализации должно соответствовать размерности массива. Иначе компилятор выведет сообщение об ошибке. Например:
Int [ ] nems – new int [ 10 ] { 99, 10, 100, 15, 76, 23, 85, 9 , 87, 49};
В этом объявлении размер массива nems явно задан равным 10.
Массив можно инициализировать во время выполнения программы в цикле. Пример ввода элементов массива с клавиатуры:
static void Main(string[] args)
{
int[] R = new int[5] ;
for (int k=0; k<=4; k++)
{
Console.Write("Введите {0}", k);
Console.WriteLine(" элемент массива R");
R[k] = Convert.ToInt32(Console.ReadLine());
//ввод элемента массива R
}
Console.ReadKey();
Типовыми операциями при работе с массивами являются: ввод и вывод элементов массива, поиск максимального или минимального элемента массива поиск заданного элемента массива, сортировка массива./ При вводе элементов массива удобно использовать оператор цикла for, при этом переменная счетчик может быть использована в качестве индекса элементов массива.
Иногда в качестве элементов массива используют случайные числа, которые можно получить с помощью функции Random(x), где х - случайное число в диапазоне 0..x-1.
Перед первым обращением к функции Random() необходимо вызовом процедуры Randomize и инициализировать программный генератор случайных чисел.