Сделай Сам Свою Работу на 5

Теоретическое обоснование

Массивы

Язык C# предоставляет средства для работы с одномерными массивами, массивами массивов и многомерными массивами.

Ниже представлены способы объявления ссылок на массивы различной размерности и конфигурации.

// Объявление массива размерности 3 из элементов типа int.

// Фактически это массив составляющих, представляющих собой массивы

// размерности 2 одномерных массивов элементов типа int.

// Размеры всех составляющих массивов одного уровня равны

// между собой ("прямоугольный" массив).

int[,,] ar1;

 

// Объявление одномерного массива из

// одномерных массивов элементов, каждый из которых является

// одномерным массивом элементов типа int.

int[][][] ar2;

 

// Объявление одномерного массива составляющих, каждый из которых является

// двумерным массивом массивов элементов типа int.

// При этом у всех составляющих могут быть разные размеры

int[][,] ar3;

 

// Объявление двумерного массива составляющих, каждая из которых является

// одномерным массивом элементов типа int.

// При этом у всех составляющих могут быть разные размеры.

int[,][] ar4;

Рассмотренные примеры демонстрируют определение двух различных категории массивов: прямоугольные массивы, ломаные (jagged) массивы.

Объявление массива может быть совмещено с инициализацией. При объявлении с отложенной инициализацией сам массив не формируется, создается только ссылка на массив, имеющая неопределенное значение Null. Поэтому пока массив не будет реально создан и его элементы инициализированы, использовать его нельзя.

Возможны два варианта объявления массива совмещенного с инициализацией.

В первом случае инициализация является явной и задается списком констант, например: int[] odd = {1, 3, 5, 7, 9}.

Во втором случае создание и инициализация массива реализуется вместе с вызовом конструктора массива. Например: int[] even = new int[5].

Все массивы являются потомками класса System.Array, который в свою очередь наследует ряд интерфейсов: ICloneable, IList, ICollection, IEnumerable, а, следовательно, реализует все их методы и свойства. Кроме того, класс Array имеет большое число собственных методов и свойств.

Благодаря наследованию от класса System.Array, для массивов определены такие встроенные методы копирования, поиска, обращения, сортировки. Массивы можно рассматривать также как как коллекции и использовать цикл foreach для перебора его элементов.

Таблица 5.1 – Основные свойства класса System.Array

Свойство Описание
IsFixedSize Возвращает true, если массив является статическим
IsReadOnly Для всех массивов возвращает значение false
IsSynchronized Возвращает true или false, в зависимости от того, установлена ли синхронизация доступа для массива
Length Число элементов в массиве
Rank Размерность массива

 

Таблица 5.2 – Основные методы класса System.Array

Метод Описание
BinarySearch Бинарный поиск элементов
Clear Выполняет инициализацию элементов. Числовые элементы становятся нулевыми, а строковые принимают значение Null
Clone Клонирование массива
Copy Копирование части или всего массива в другой массив
CopyTo Копируются все элементы одномерного массива в другой одномерный массив, начиная с заданного индекса
CreateInstance Создание экземпляра массива
GetEnumerator Возварщает интерфейс IEnumerator. Необходим для использования в цикле foreach
GetLength Возвращает число элементов массива по указанному измерению
GetLowerBound, GetUpperBound Возвращает нижнюю и верхнюю границу по указанному измерению. Для массивов нижняя граница всегда равна нулю.
GetValue SetValue Возвращает или устанавливает значение элемента массива с указанными индексами.
IndexOf Индекс первого вхождения образца в массив
LastIndexOf Индекс последнего вхождения образца в массив
Reverse Сортировка одномерного массива в обратном порядке
Sort Сортировка массива

Строки

В языке C# определен класс сhar[], и его можно использовать для представления строк постоянной длины. Однако массив сhar[] – это обычный массив, поэтому его нельзя инициализировать строкой символов. В C# не определено преобразование из класса сhar[] в класс String. У String есть динамический метод ToCharArray, задающий подобное преобразование в сhar[].

Объекты класса String объявляются с явной или отложенной инициализацией, с явным или неявным вызовом конструктора класса. Чаще всего, при объявлении строковой переменной конструктор явно не вызывается, а инициализация задается строковой константой. У класса String достаточно много конструкторов, которые позволяют сконструировать строку из: символа, повторяющегося указанное число раз; массива символов char[]; части массива символов.

Методы класса String позволяют выполнять вставку, удаление, замену, поиск вхождения подстроки в строку. Класс String наследует методы класса Object, а также методы четырех интерфейсов: IComparable, ICloneable, IConvertible, IEnumerable.

 

Таблица 5.3 – Члены класса

Метод Описание
Length Это свойство возвращает длину указанной строки
Insert Вставляет подстроку в заданную позицию
Remove Удаляет подстроку в заданной позиции
Replace Заменяет подстроку в заданной позиции на новую подстроку
Substring Выделяет подстроку в заданной позиции
IndexOf, IndexOfAny, LastIndexOf, LastIndexOfAny Определяются индексы первого и последнего вхождения заданной подстроки или любого символа из заданного набора
StartsWith, EndsWith Возвращается true или false, в зависимости от того, начинается или заканчивается строка заданной подстрокой
PadLeft, PadRight Выполняет заполнение нужным числом пробелов в начале и в конце строки
Trim, TrimStart, TrimEnd Удаляются пробелы в начале и в конце строки, либо только с одного конца
ToCharArray Преобразование строки в массив символов

 

Класс String не разрешает изменять существующие объекты. Для этой цели имеется другой класс – класс StringBuilder, который позволяет исправить данный недостаток. Этот класс принадлежит к изменяемым классам и его можно найти в пространстве имен System.Text.

Объекты этого класса объявляются с явным вызовом конструктора класса. Конструктор класса перегружен, и наряду с конструктором без параметров, создающим пустую строку, имеется набор конструкторов, которым можно передать две группы параметров:

- первая группа позволяет задать строку или подстроку, значением которой будет инициализироваться создаваемый объект класса StringBuilder;

- вторая группа параметров позволяет задать размер объекта, т. е. объем памяти, отводимой для экземпляру класса StringBuilder.

Примеры конструкторов:

- public StringBuilder(string str, int size). Параметр str задает строку для инициализации, size – размер объекта;

- public StringBuilder(int cursize, int maxsize). Параметры cursize и maxsize задают начальный и максимальный размер объекта;

- public StringBuilder(string str, int start, int len, int size). Параметры str, start, len задают строку инициализации, size – размер объекта.

Над строками этого класса определены (также как и для строк класса String) операции: присваивание (=); две операции проверки эквивалентности (==) и (!=); взятие индекса ([]).

Операция конкатенации (+) не определена над строками класса StringBuilder, ее роль играет метод Append, добавляющий новую строку в конец существующей.

Интерфейсы

Интерфейс представляет собой полностью абстрактный класс, все методы которого абстрактны. Однако методы интерфейса объявляются без указания модификатора доступа, и класс, наследующий интерфейс, обязан полностью реализовать все методы интерфейса. В этом – отличие от класса, наследующего абстрактный класс, где потомок может реализовать лишь некоторые методы родительского абстрактного класса, оставаясь абстрактным классом.

Интерфейс позволяет описывать некоторые желательные свойства, которыми могут обладать объекты разных классов.

Среди интерфейсов, встроенных в библиотеку базовых классов .NET, можно особо выделить такие как:

- IEnumerable – для работы с наборами объектов, в т.ч. с использованием оператора foreach;

- IClonable – копирование объектов;

- IComparable – сравнение и сортировка объектов.

Пространство имен System.Collections, предназначенное для работы с наборами объектов, поддерживает интерфейсы:

- Collection – определяет общие характеристики класса набора элементов);

- IComparer, IDictionary – позволяет представлять содержимое объекта в виде пар «имя-значение»;

- IDictionaryEnumerator – нумерация содержимого объекта, поддерживающего IDictionary;

- IEnumerable,

- IEnumerator;

- IHashCodeProvider – возвращает хэш-код с помощью выбранного алгоритма хэширования);

- IList – обеспечивает методы добавления, удаления и индексирования элементов в списке объектов.

Аппаратура и материалы. Для выполнения лабораторной работы необходим персональный компьютер со следующими характеристиками: процессор Intel с тактовой частотой 2000 МГц и выше; оперативная память – не менее 1024 Мбайт; свободное дисковое пространство – не менее 1,2 Гбайт; устройство для чтения компакт-дисков; монитор типа Super VGA (число цветов – 256) с диагональю не менее 17 ². Программное обеспечение – операционная система WINDOWS XP и выше, программы для просмотра Web-страниц, среда программирования Visual Studia .Net.

Указания по технике безопасности. Техника безопасности при выполнении лабораторной работы сопадает с общепринятой для работы с персональным компютером. Самостоятельно не производить ремонт персонального компьютера, установку и удаление программного обеспечения. В случае неисправности персонального компьютера сообщить об этом обслуживающему персоналу лаборатории (оператору, администратору). Соблюдать правила техники безопасности при работе с электрооборудованием. Не касаться электрических розеток металлическими предметами. Рабочее место пользователя персонального компьютера должно содержаться в чистоте. Не разрешается возле персонального компьютера принимать пищу, напитки.



©2015- 2017 stydopedia.ru Все материалы защищены законодательством РФ.