Лабораторная работа №3. Тема: алгоритмизация обработки одномерных массивов

Тема: алгоритмизация обработки одномерных массивов.

Цель: изучение возможностей C# для программирования алгоритмов обработки одномерных массивов, изучение простейших алгоритмов сортировки и освоение технологий составления и тестирования программ, их реализующих.

Теоретические сведения.

Массив — это индексированный набор объектов одного типа. Массив может хранить элементы любого типа, но для всех элементов массива тип должен быть одним и тем же.

Объявление массивов

Объявление массивов имеет следующий синтаксис:

Тип[] имя-массива.

Например:

int[] myIntArray;

Квадратные скобки ([ ]) сообщают компилятору С#, что определяется массив, а тип указывает тип элементов этого массива. В примере, приведенном выше, myIntArray является целочисленным массивом.

Экземпляр массива создается ключевым словом new. Например:

myIntArrsy = new int[5];

 

Это объявление отводит память для массива, состоящего из пяти целых чисел.

В языке С# массивы относятся к ссылочным типам, объекты которых создаются в куче. Соответственно, массив myIntArray находится в куче. Элементы массива размещаются в соответствии с их типами. Целочисленный тип относится к размерным типам, поэтому элементы массива myIntArray будут иметь размерный тип, а не упакованный целочисленный тип. Массив элементов, имеющих ссылочный тип, будет содержать только ссылки на элементы, размещенные в куче.

Значения по умолчанию

Когда создается массив элементов, имеющих тип значения, каждый элемент первоначально содержит значение, устанавливаемое по умолчанию для данного типа (см. таблице 3.2). Вышеуказанное объявление создает массив из пяти целых, причем каждому элементу присваивается нулевое значение, устанавливаемое по умолчанию для переменных типа int.

Таблица 3.2 Базовые типы и их значения по умолчанию

Типы Значения по умолчанию
Числовые (int, long и т. д.)  
bool false
char ‘\0’, (null)
enum  
Ссылочные null

В отличие от массивов с элементами размерных типов, элементы массива, имеющие ссылочный тип, не инициализируются значениями по умолчанию. Вместо этого им присваивается значение null. Если попытаться обратиться к элементу массива, элементы которого имеют ссылочный тип до его явной инициализации, будет вызвано исключение.

Обращение к элементам массива

Программист обращается к элементам любого массива с помощью операции индексирования ([ ]). Нумерация элементов массива начинается с нуля, иными словами, индекс первого элемента массива всегда имеет нулевое значение.

Инициализация элементов массива

Содержимое массива можно инициализировать в момент создания экземпляра массива, указав в фигурных скобках список начальных значений. В языке С# существует два синтаксических варианта этого действия, полный и сокращенный:

int[] myIntArray = new int[5] {2, 4, 6, 8, 10};

int[] myIntArray = {2, 4, 6, 8, 10};

 

Между ними нет никакой разницы, и большинство программистов предпочитают короткий вариант.

// создание массива из 10 элементов типа int

// все элементы массива инициализируются нулями

int [] intArray = new int [10];

 

Цикл foreach

Данный оператор позволяет перебрать все значения в массиве или в классе-коллекции. Например, если arr - массив, а N - его длина, то вывести на экран значения элементов массива можно следующими способами (рассматриваются циклы for и foreach):

for(int i = 0; i < N; i++)

Console.WriteLine("{0} ", arr[i]);

и

foreach(int i in arr) // знать длину массива не обязательно

Console.WriteLine("{0} ", i);

 

Примечание: параметр цикла в блоке операторов, следующих за foreach, доступен только для чтения.

foreach(int i in arr) // знать длину массива не обязательно

i++; // Ошибка

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: