|
Прошел курс. Получил код Dreamspark. Ввожу код на сайте, пишет: Срок действия этого кода проверки уже истек. Проверьте, правильно ли введен код. У вас осталось две попытки. Вы также можете выбрать другой способ проверки или предоставить соответствующие документы, подтверждающие ваш академический статус.
Как активировать код? |
Контролирующий код C#
Массивы
Массив, это последовательность однотипных элементов, упакованная под одним именем. Эти данные легко отсортировать, перебрать и обрабатывать. Массив в C# представляет собой объект ссылочного типа, который хранится на управляемой куче, а ссылка на него помещается в стек потока. Создание массива представляет собой двухступенчатый процесс: сначала объявляется ссылочная переменная на массив, а затем для него выделяется память и переменной присваивается ссылка на эту память.
Одномерные массивы
Так для одномерного массива синтаксис создания будет таким
тип[] имя_массива = 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();
}
}

