Прошел курс. Получил код Dreamspark. Ввожу код на сайте, пишет: Срок действия этого кода проверки уже истек. Проверьте, правильно ли введен код. У вас осталось две попытки. Вы также можете выбрать другой способ проверки или предоставить соответствующие документы, подтверждающие ваш академический статус.
Как активировать код? |
Консольные приложения в С#
Многомерные массивы
Многомерные массивы могут иметь любое количество измерений (не путать с размерностью массива), два измерения - двумерными, три измерения - трехмерные, ..., N измерений - N _мерные. Наибольшее распространение получили массивы, имеющие два измерения - двумерные многомерные массивы. Многомерные массивы (в том числе двумерные) бывают двух типов:
- Прямоугольные массивы
- "Ломаные" (jagged) массивы
Ниже рассмотрим примеры, касающиеся только двумерных массивов.
using System; namespace Test { class Test { static void Main() { string title = "***************************** ***************\n" + "\tДвумерные массивы:\n" + "**************************** ****************\n"; Console.WriteLine(title); //********************************************************* // Создаем ссылку типа int на двумерный массив // Используются для измерений общие скобки int[,] array1; // Запросим память у системы для // Для фиксированного количества элементов array1 = new int[6,5]; Console.WriteLine("Прямоугольный массив [6,5], полученный по\n" + "синтаксису массива прямоугольного типа:"); // Заполним и выведем массив с поэлементной индексацией // Метод GetLength() используется для определения // количества элементов в указанном измерении массива for(int i = 0; i < array1.GetLength(0); i++) { for(int j = 0; j < array1.GetLength(1); j++) { array1[i,j] = i * j; Console.Write(array1[i,j] + "\t"); } Console.WriteLine();// На новую строку экрана } //********************************************************* // Используются для измерений индивидуальные скобки int[][] array2; // Запросим память у системы для // Для неопределенного количества элементов // по второму измерению array2 = new int[6][]; Console.WriteLine("\n\nПрямоугольный массив [6][5], полученный по\n" + "синтаксису массива ломаного типа:"); // Вначале запросим память для второго измерения // Используются для измерения индивидуальные скобки for(int i = 0; i < array2.Length; i++) array2[i] = new int[5]; // Заполним и выведем массив с поэлементной индексацией for(int i = 0; i < 6; i++) { for(int j = 0; j < 5; j++) { array2[i][j] = i * j; Console.Write(array2[i][j] + "\t"); } Console.WriteLine();// На новую строку экрана } //********************************************************* // Используются для измерений индивидуальные скобки // Запросим память у системы для // Для неопределенного количества элементов // по второму измерению array2 = new int[6][]; // Используем старую ссылку // массива ломаного типа, старую ссылку // массива прямоугольного типа применять нельзя Console.WriteLine("\n\nМассив ломаного типа [6][]:"); // Вначале запросим память для второго измерения // Используются для измерения индивидуальные скобки for(int i = 0; i < array2.Length; i++) array2[i] = new int[i + 2]; // Заполним и выведем массив с поэлементной индексацией for(int i = 0; i < array2.Length; i++) { for(int j = 0; j < array2[i].Length; j++) { array2[i][j] = i * j; Console.Write(array2[i][j] + "\t"); } Console.WriteLine();// На новую строку экрана } while(true); } } }Листинг 20.41 . Двумерные массивы
Результат выполнения примера
******************************************** Двумерные массивы: ******************************************** Прямоугольный массив [6,5], полученный по синтаксису массива прямоугольного типа: 0 0 0 0 0 0 1 2 3 4 0 2 4 6 8 0 3 6 9 12 0 4 8 12 16 0 5 10 15 20 Прямоугольный массив [6][5], полученный по синтаксису массива ломаного типа: 0 0 0 0 0 0 1 2 3 4 0 2 4 6 8 0 3 6 9 12 0 4 8 12 16 0 5 10 15 20 Массив ломаного типа [6][]: 0 0 0 1 2 0 2 4 6 0 3 6 9 12 0 4 8 12 16 20 0 5 10 15 20 25 30
Базовый класс System.Array
Все массивы в C# являются производными от базового класса System.Array. За счет этого любой массив наследует множество методов и свойств, которые сильно упрощают работу программиста. Методы можно увидеть в суфлере кода IntelliSense, применив его к имени класса или конкретному экземпляру.
Рассмотрим примеры
using System; namespace Test { class Test { private void DisplayString(string title, string[] list) { Console.WriteLine(title); for(int i = 0; i < list.Length; i++) Console.Write(list[i] + "\t"); Console.WriteLine(); // Для перевода строки } static void Main() { // Создадим объект для применения метода DisplayString() Test test = new Test(); string title = "******************** ************************\n" + "\tМетоды класса System.Array:\n" + "************************** ******************\n"; Console.WriteLine(title); // Создаем строковый массив string[] firstNames = new string[5] { "Колян", "Вован", "Иван", "Болван", "Чурбан" }; test.DisplayString("Исходный массив:", firstNames); // Расставим элементы в обратном порядке // при помощи статического метода System.Array Array.Reverse(firstNames); test.DisplayString("\nИнверсный массив: ", firstNames); // Сортируем элементы по алфавиту // при помощи статического метода System.Array Array.Sort(firstNames); test.DisplayString("\nСортированный массив:", firstNames); // Очищаем элементы массива, начиная с имеющего // индекс 1 три стоящих подряд // при помощи статического метода System.Array Array.Clear(firstNames, 1, 3); test.DisplayString("\nЧастично очищенный массив: ", firstNames); while(true); } } }Листинг 20.42 . Применение методов класса System.Array
Результат выполнения примера
******************************************** Методы класса System.Array: ******************************************** Исходный массив: Колян Вован Иван Болван Чурбан Инверсный массив: Чурбан Болван Иван Вован Колян Сортированный массив: Болван Вован Иван Колян Чурбан Частично очищенный массив: Болван Чурбан