Найти в Дзене

C# Урок 9. Массивы

Оглавление

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

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

Объявление массива

В общем виде объявление одномерного массива выглядит так:

тип[] имя;

где:
тип — тип элементов массива (тип массива).
имя — имя массива.

Примеры объявления массивов:

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();

}

Следующий урок

Урок 10. Массивы

Предыдущий урок

Урок 8. Цикл While

Литература

Культин Н. Б. C# для начинающих. Самоучитель с примерами и задачами для самостоятельного решения. эл. - 1 файл pdf : 130 c. Текст: электронный.

Культин Н.Б. Самоучитель C#. Текст: электронный (приложение для Android)

(с) Никита Культин, 2021.
Никакая часть публикации не может быть использована без разрешения автора.