Массив — это структура данных, которую можно рассматривать как набор переменных одинакового типа, имеющих общее имя.
Массивы удобно использовать для хранения и обработки однородной по структуре и составу информации, например, таблиц. Различают одномерные (вектор, строка или столбец таблицы), двухмерные (матрица, таблица) и многомерные массивы.
Объявление массива
В общем виде объявление одномерного массива выглядит так:
тип[] имя;
где:
тип — тип элементов массива (тип массива).
имя — имя массива.
Примеры объявления массивов:
double[] price; // масcив вещественных чисел
int[] kol; // массив целых чисел
string[] students; // массив строк
Инструкция объявления массива только объявляет массив. Для того чтобы массив можно было использовать, его надо создать.
Инструкция создания массива выглядит так:
имя = new тип[размер];
Где:
имя — имя массива;
new – директива выделения памяти для элементов массива;
тип — тип элементов массива ;
размер – количество элементов массива.
Примеры:
price = new double[25];
kol = new int[25];
title = new string[25];
Инструкции объявления и создания массива можно объединить в одну. Например, так:
double[] price = new double[25];
int[] kol = new int[25];
string[] title = new string[25];
В инструкции создания массива размер массива можно задать при помощи переменной целого типа. Например, приведенные выше объявления массивов можно переписать так:
int n = 25; // размер массивов
double[] price = new double[n];
int[] kol = new int[n];
string[] title = new string[n];
Доступ к элементу массива
Элементы массива могут использоваться в программе точно так же, как и переменные. Чтобы обратиться к использовать элемент массива надо указать имя массива и номер элемента (индекс), заключив индекс в квадратные скобки. В качестве индекса можно использовать выражение целого типа, например, константу или переменную.
Например:
title[0] = "Самоучитель программирования";
price[5] = 250.0;
kol[1] = 10;
sum = price[0] * k;
price[j] = price[j] * discount;
title[j] = Console.ReadLine();
price[j] = Convert.ToDouble(Console.ReadLine());
Особо следует обратить внимание на то, что элементы массива нумеруются с нуля. Например, если массив а объявлен так
int[] a = new int[10];
то a[0] - это первый элемент массива, a[1] - второй, a[9] - десятый, последний элемент массива a. Элемент a[10] не существует! При попытке обращения к несуществующему элементу массива возникает исключение IndexOutOfRangeException (выход индекса за допустимую границу).
Инициализация массива
Инструкция создания массива выделяет память для элементов массива и присваивает им начальные значения "по умолчанию"(ноль для числовых массивов, пустая строка для строковых, False для bool).
Если нужно, чтобы элементы массива содержали какие-то определенные значения, то необходимо выполнить инициализацию массива – присвоить элементам массива требуемые начальные значения.
Наиболее просто выполнить инициализацию при помощи инструкции присваивания, например:
double[] pr = new double[3];
pr[0] = 0.085;
pr[1] = 0.090;
pr[2] = 0.095;
Есть возможность инициализации массива непосредственно в инструкции объявления массива, которая при этом в общем виде записывается так:
Тип [] Имя = {Значение0, Значение1, ... Значекниеk-1};
Пример:
double[] pr = {0.085, 0.090, 0.095 };
string[] d0 = { "один", "два", "три", "четыре", "пять", "шесть", "семь" };
Ввод массива
Под операцией ввода массива понимается ввод значений всех элементов массива с клавиатуры или из файла .
Чтобы вывести массив, надо ввести с клавиатуры значение (число, если массив числовой, или строку, если массив символьный) и записать его в первый элемент массива, затем – второе значение и записать его во второй элемент массива, третье, введенное с клавиатуры значение, надо записать в третий элемент массива и так далее, то есть повторить операцию ввода и записи столько раз, сколько элементов в массиве.
Ввод массива удобно реализовать при помощи инструкции for. Чтобы пользователь программы знал, какой элемент массива он должен ввести в данный момент (ввод какого элемента массива ожидает программа), следует организовать вывод подсказок. В подсказке обычно указывают номер элемента, значение которого должен ввести пользователь.
Ниже приведен фрагмент кода, который вводит массив вещественных чисел. Обратите внимание, что хотя в программе элементы массива нумеруются с нуля, в подсказке, отображаемой в окне программы, элементы массива нумеруются с единицы. Сделано это для того, чтобы не путать пользователя, т.к. в повседневной практике мы привыкли нумеровать предметы с единицы.
int N = 5; // размер массива
double[] a = new double[N]; // массив
for (int i = 0; i < N; i++)
{
Console.Write("{0}>", i + 1);
a[i] = System.Convert.ToDouble(Console.ReadLine());
}
Вывод массива
Под операцией вывода массива понимается вывод на экран (или в файл) значений всех элементов массива.
Чтобы вывести массив, сначала надо вывести первый элемент массива, затем - второй, третий и так далее, то есть перебрать все элементы массива, с первого до последнего.
Для вывода массива удобно использовать инструкцию for, переменная-счетчик которой будет пробегать значения от нуля до n-1, где n – количество элементов массива, и использоваться качестве индекса элемента массива.
В листинге 9.1 приведена программа, которая вводит с клавиатуры массив вещественных чисел и затем выводит значения элементов массива.
Листинг 9.1. Ввод и вывод массива
static void Main(string[] args)
{
int N = 5; // размер массива
double[] a = new double[N]; // массив
// ввод массива
Console.WriteLine("Введите элементы массива");
for (int i = 0; i < N; i++)
{
Console.Write("{0}>", i + 1);
a[i] = System.Convert.ToDouble(Console.ReadLine());
}
// вывод массива
Console.Write("\nМассив:");
for (int i = 0; i < N; i++)
{
Console.Write("{0:n} ", a[i]);
}
Console.Write("\n\nPress any key...");
Console.ReadKey();
}
Следующий урок
Предыдущий урок
Литература
Культин Н.Б. Самоучитель C#. Текст: электронный (приложение для Android)
(с) Никита Культин, 2021.
Никакая часть публикации не может быть использована без разрешения автора.