|
Прошел курс. Получил код 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: ******************************************** Исходный массив: Колян Вован Иван Болван Чурбан Инверсный массив: Чурбан Болван Иван Вован Колян Сортированный массив: Болван Вован Иван Колян Чурбан Частично очищенный массив: Болван Чурбан

