Суббота, 23.11.2024, 02:00
Приветствую Вас Гость | RSS
Меню сайта
Категории раздела
База языка C# [3]
В данном разделе будут статьи по базовым понятиям языка C#
Основы языка С# [22]
Раздел продолжает рассматривать основы языка C#
Задачи [2]
примеры решения задач
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Поиск
Главная » Статьи » C# » Основы языка С#

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

Многомерные массивы имеют более одного измерения. Чаще всего используются двумерные массивы, которые представляют собой таблицы.
Замечание. Работу с другими видами многомерных массивов рассмотрите самостоятельно.
Каждый элемент массива имеет два индекса, первый определяет номер строки, второй – номер столбца, на пересечении которых находится элемент. Нумерация строк и столбцов начинается с нуля.
Объявить двумерный массив можно одним из предложенных способов:
1) базовый_тип [,] имя_массива;
Например:

int[,] a;

Объявлена ссылка на двумерный массив целых чисел (имя ссылки а), которая в дальнейшем может быть использована: для адресации на уже существующий массив; передачи массива в метод в качестве параметра; отсроченного выделения памяти под элементы массива.
2) базовый тип [,] имя_массива = new базовый_тип [размер1, размер2];
Например

float[,] b = new float[3, 4];

Объявлена ссылка b на двумерный массив вещественных чисел. Выделена память для 12 элементов вещественного типа, адрес данной области памяти записан в ссылочную переменную b. Элементы массива инициализируются по умолчанию нулями.
3) базовый_тип [,] имя_массива = {{элементы 1-ой строки}, … , {элементы n-ой строки}};
Например:

int[,] c = new int[,] { { 0, 1, 2 }, { 3, 4, 5 } };

Объявлена ссылка на двумерный массив целых чисел. Выделена память под двумерный массив, размерность которого 2×3. Адрес этой области памяти записан в ссылочную переменную с. Значение элементов массива соответствует списку инициализации.
Обращение к элементу массива происходит с помощью индексов: указывается имя массива и, в квадратных скобках, номер строки и через запятую номер столбца, на пересечении которых находится данный элемент. Например, a[0, 0], b[2, 3], c[i, j].
Так как массив представляет собой набор элементов, объединенных общим именем, то обработка массива обычно производится с помощью вложенных циклов. Заметим также, что при обращении к свойству Length для двумерного массива мы получим общее количество элементов в массиве. Чтобы получить количество строк, нужно обратиться к методу GetLength с параметром 0. Чтобы получить количество столбцов – к методу GetLength с параметром 1.
В качестве примера рассмотрим программу, в которой сразу будем учитывать два факта: 1) двумерные массивы относятся к ссылочным типам данных; 2) двумерные массивы реализованы как объекты.

class Program

{

    static void Print(int[,] a)

    {

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

        {

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

            {

                Console.Write("{0} ", a[i, j]);

            }

            Console.WriteLine();

        }

    }

    static void Input(out int[,] a)

    {

        Console.Write("n= ");

        int n = int.Parse(Console.ReadLine());

        Console.Write("m= ");

        int m = int.Parse(Console.ReadLine());

        a = new int[n, m];

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

        {

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

            {

                Console.Write("a[{0},{1}]= ", i, j);

                a[i, j] = int.Parse(Console.ReadLine());

            }

        }

    }

    static void Change(int[,] a)

    {

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

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

                if (a[i, j] % 2 == 0)

                {

                    a[i, j] = 0;

                }

    }

    static void Main()

    {

        int[,] a;

        Input(out a);

        Console.WriteLine("Исходный массив:");

        Print(a);

        Change(a);

        Console.WriteLine("Измененный массив:");

        Print(a);

    }

}

Результат работы программы:
n=2
m=3
a[0,0]=1
a[0,1]=2
a[0,2]=3
a[1,0]=4
a[1,1]=5
a[1,2]=6
Исходный массив:
1 2 3
4 5 6
Измененный массив:
1 0 3
0 5 0

Категория: Основы языка С# | Добавил: solowey (18.01.2016)
Просмотров: 270 | Рейтинг: 0.0/0
Всего комментариев: 0
avatar
Вход на сайт