3

Двумерные массивы и вложенные циклы. Синтаксис C#

Серия Введение в основы программирования.

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

static void Main(string[] args)

{

string[,] arr = { { "A", "B" }, { "C", "D" } };

Console.WriteLine(arr[1,0]);

}

Здесь, инициализирован двумерный массив из двух строк, в каждой из которых два значения. Значения A и B принадлежать первой строке с индексом 0, значения С и D, находятся на второй строке, с индексом 1. С помощью arr[1,0] был получен доступ к значению «С» расположенному на второй строке в первом столбце.

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

Первым параметром указывается количество строк, вторым— столбцов. Количество строк и столбцов называется размерностью массива.

static void Main(string[] args)

{

int[,] arr = new int [ 2, 3 ];

arr[0, 0] = 1;

arr[0, 1] = 2;

arr[0, 2] = 3;

arr[1, 0] = 4;

arr[1, 1] = 5;

arr[1, 2] = 6;

Console.WriteLine(arr[1,0]);

}

Здесь, инициализирован массив из двух строк и трех столбцов. Присвоение значения происходит по двум индексам. Индексу строки и индексу столбца. Доступ получен к находящемуся во второй строке первому элементу.

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

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

static void Main(string[] args)

{

int[,] arr = new int[2, 3];

arr[0, 0] = 1;

arr[0, 1] = 2;

arr[0, 2] = 3;

arr[1, 0] = 4;

arr[1, 1] = 5;

arr[1, 2] = 6;

Console.WriteLine(arr.Length);

}

Для нахождения размерностей строк и столбцов используется метод — GetLength(), в скобки которого помещают значения размерности, для строк это число 0, для столбцов 1.

static void Main(string[] args)

{

int[,] arr = new int[2, 3];

arr[0, 0] = 1;

arr[0, 1] = 2;

arr[0, 2] = 3;

arr[1, 0] = 4;

arr[1, 1] = 5;

arr[1, 2] = 6;

// Перебор строк:

for (int i = 0; i < arr.GetLength(0); i++)

{

// Перебор столбцов в строке:

for (int j = 0; j < arr.GetLength(1); j++)

{


Console.Write(arr[i, j] + " ");

}

// Переход к новой строке:

Console.WriteLine();

}

}

Общепринято для внешнего цикла использовать переменную «i», для внутреннего «j»

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

static void Main(string[] args)

{

int[,] arr = new int[2, 3];

Random rnd = new Random();

int value = rnd.Next(0, 10);


for (int i = 0; i < arr.GetLength(0); i++)

{

// Перебор столбцов в строке:

for (int j = 0; j < arr.GetLength(1); j++)

{

arr[i,j] = rnd.Next(0, 10);

Console.Write(arr[i, j] + " ");

}

// Переход к новой строке:

Console.WriteLine();

}

}

Помимо обработки данных, содержащихся в двумерных массивах, вложенные циклы применяются для обработки различных таблиц

К примеру, таблица умножения

static void Main(string[] args)

{

for (int i = 1; i < 10; i++)

{

for (int j = 1; j < 10; j++)

{

Console.Write($"{i * j} \t");

}

Console.WriteLine();

}

}

Здесь, « \t » управляющий символ, литерал, аналог клавиши Tab, используемый для выравнивания текста.

В заключении.

Двумерный массив — массив таблица. Доступ к единичному значению в таком массиве осуществляется по двум индексам — индекс строки и индекс столбца.

Для обработки всех значений двумерного массива используется конструкция вложенного цикла, где внешний цикл производит итерации надстройками, а внутренний над столбцами Конечное значение счетчика размерности строки и столбца определяется методом GetLength().

На этом занятие закончено.

Вы можете самостоятельно найти задачи для закрепления теоретического материала или для получения задач с ответами отправьте письмо на basicprog@mail.ru

Удачи в выполнении практических заданий!

Больше постов читайте по тегу «Программирование». А если хотите изучить новую профессию, посмотрите актуальные курсы от проверенных школ с реальными отзывами на сайте Пикабу Курсы.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества