КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Двумерный целочисленный массив
Многомерные массивы Одномерные массивы Так для одномерного массива синтаксис создания будет таким тип[] имя_массива = new тип[размер]; Например, зарезервировать память под 10 элементов целого типа можно так int[] array = new int[10]; Адресация элементов внутри массива выполняется с помощью целочисленного индекса, нумерация которого начинается с нуля. Выход индекса за пределы границ компилятором не контролируется и обнаруживается средой CLR на только этапе выполнения с генерацией исключения IndexOutOfRangeException. Если массив объявляется как поле класса, то все элементы по умолчанию приобретают ближайшее по типу значение (для числового - нуль, для строкового - пусто, для булева - false, для ссылочного - null). Если массив объявляется внутри метода как локальная переменная, то его перед использованием нужно явно инициализировать. Массив в C# - это тип, производный от класса System.Array, поэтому все массивы наследуют от этого класса фиксированный набор объектных свойств и методов. Кроме того, сам класс Array содержит ряд статических методов (уровня класса), позволяющих выполнять обработку массивов как объектов. Одну и ту же ссылку на массив можно использовать многократно при создании нескольких совместимых с ее типом массивов. В таком случае адресация прежнего массива будет утеряна. Например int[] array = new int[10]; ............ array = new int[20]; Можно выполнять сразу и объявление и инициализацию массива, тогда создание массива и подсчет его размерности выполнит компилятор по списку инициализации. В этом случае ключевое слово new не нужно. Например int[] array = { 1, 2, 3, 4, 5 }; Можно создать массив фиксированной размерности и сразу его инициализировать. Тогда размер списка инициализации должен строго соответствовать заказанной размерности массива. Например
int[] array = new int[5]{ 1, 2, 3, 4, 5 }; Допустим и такой синтаксис - без указания размерности, но с инициализацией int[] array = new int[]{ 1, 2, 3, 4, 5 }; Можно вначале создать массив, а потом поэлементно присвоить ему значения. И тоже нужно следить, чтобы не выйти за пределы установленной размерности массива. int[] array = new int[5]; for (int i = 0; i < array.Length; i++) array[i] = i; Массивы большего числа измерений имеют синтаксис, схожий с одномерными массивами. Приведем примеры // Файл Program.cs using System;
class MyClass { public MyClass() { // Настройка консоли Console.Title = "Двумерный массив 5x4"; Console.ForegroundColor = ConsoleColor.White; Console.CursorVisible = false;
// Работа с двумерным массивом const int ROWS = 5, COLUMNS = 4;// Границы int[,] array = new int[ROWS, COLUMNS];// Создание for (int count = 0; count < array.Length; count++) array[count / COLUMNS, count % COLUMNS] = count;// Наполнение for (int row = 0; row < ROWS; row++)// Перебор строк { for (int col = 0; col < COLUMNS; col++)// Перебор столбцов { string str = String.Format("a[{0},{1}]={2, -6}", row, col, array[row, col]); Console.Write(str); } Console.WriteLine();// Новая строка } } }
class Program { static void Main() { new MyClass();// Чтобы сработал конструктор // Для задержки консольного окна Console.ReadLine(); } }
Размеры двумерного массива могут определяться компилятором автоматически по списку инициализации // Файл Program.cs using System;
class MyClass { public MyClass() { // Настройка консоли Console.Title = "Двумерный массив со списком инициализации"; Console.ForegroundColor = ConsoleColor.White; Console.CursorVisible = false;
// Размерность двумерного массива по списку инициализации int[,] array = { {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11}, {12, 13, 14, 15}, {16, 17, 18, 19} };
const int ROWS = 5, COLUMNS = 4;// Границы для печати
for (int count = 0; count < array.Length; count++) array[count / COLUMNS, count % COLUMNS] = count;// Наполнение for (int row = 0; row < ROWS; row++)// Перебор строк { for (int col = 0; col < COLUMNS; col++)// Перебор столбцов { string str = String.Format("a[{0},{1}]={2, -6}", row, col, array[row, col]); Console.Write(str); } Console.WriteLine();// Новая строка
} } }
class Program { static void Main() { new MyClass();// Чтобы сработал конструктор // Для задержки консольного окна Console.ReadLine(); } }
Дата добавления: 2014-01-07; Просмотров: 434; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |