Учебное пособие Казань 017 ббк 32. 973-018. Х15



Pdf көрінісі
бет22/66
Дата05.08.2022
өлшемі1.97 Mb.
#278158
түріУчебное пособие
1   ...   18   19   20   21   22   23   24   25   ...   66
Байланысты:
Programmirovanie-v-S
Математика 6 сынып 3, !ОШ доп СО Геометрия 7кл каз, Дістемелік кешен (2)
1.5.4. Класс System.Array 
Все массивы в C# являются экземплярами класса System.Array. 
Поэтому свойства и методы этого класса доступны всем массивам. Из 
свойств отметим свойство Length, которое возвращает число элементов 
массива, и свойство Rank, которое возвращает размерность массива. 
Перейдем к методам. Приведенные методы применимы только к 
одномерным массивам. Через массив будем обозначать имя массива. 
Изменить порядок элементов на обратный можно с помощью метода 
Reverse(). Он имеет вид 
Array.Reverse(массив) 
После выполнения мы получим тот же самый массив, элементы в котором 
будут записаны в обратном порядка. 
Аналогично работает метод Sort(). Он предназначен для 
сортировки элементов массива по возрастанию: 
Array.Sort(массив) 
Для инициализации элементов массива нулевыми значениями 
соответствующего типа можно использовать метод Clear(), который 
записывается так: 
Array.Clear(массив, начало, длина) 
Здесь начало – номер элемента, с которого следует начать обнулять, 
длина – это количество обнуляемых элементов.
Чтобы первые n элементов массива_1 скопировать в первые n 
элементов массива_2 можно применить метод Copy(): 
Array.Copy(массив_1,массив_2,n) 
Иногда бывает необходимо определить номер элемента по его 
значению. 
Для 
этого 
предназначены 
методы 
IndexOf() 
и 
LastIndexOf(), первый из которых возвращает номер первого 
найденного элемента с указанным значением, а второй – номер последнего 


38 
найденного элемента с указанным значением. Если среди элементов нет, 
принимающих указанное значение, то возвращается -1. Эти методы 
записываются так: 
Array.IndexOf (массив,значение) 
Array.LastIndexOf (массив,значение) 
Первый из методов может содержать и дополнительные параметры: 
индекс начала поиска и количество рассматриваемых элементов. 
Например, при использовании метода 
Array.IndexOf (x,5,10,4) 
получим индекс первого из элементов массива x, равных 5, причем будут 
рассматриваться только элементы с x[10] по x[13]. Если такой элемент 
не будет найден, то метод вернет значение -1. 
Метод LastIndexOf() также может иметь дополнительные 
параметры. Только в этом случае третий параметр указывает конец 
рассматриваемого диапазона элементов. Например, метод
Array.LastIndexOf(x,5,10,4) 
вернет индекс последнего из элементов массива x, равных 5, причем будут 
рассматриваться только элементы с x[7] по x[10]. 
Рассмотрим 
вопрос 
нахождения 
элемента 
массива, 
удовлетворяющего более сложным условиям. Для этого следует 
использовать предикаты.
Предикат – это статический метод, который возвращает true при 
выполнении условия и false при его не выполнении. Например, пусть 
дано условие, что число больше трех. Предикат можно ввести так: 
static bool pr(double s) 

if (s > 3) 
return true; 
else 
return false; 

Теперь при выполнении кода 
double[] x = { 2.3, 4.5, 5.1, 3.5, 1.3 }; 


39 
bool a = Array.Exists(x, pr); 
double b = Array.Find(x, pr); 
int c = Array.FindIndex(x, pr); 
double d = Array.FindLast(x, pr); 
int e = Array.FindLastIndex(x, pr); 
Console.WriteLine(a); 
Console.WriteLine(b); 
Console.WriteLine(c); 
Console.WriteLine(d); 
Console.WriteLine(e); 
получим 
True 
4.5 

3.5 

У всех выше использованных методов первый параметр – это имя 
массива, а второй – имя предиката. Первый метод вернул true, так как 
существуют элементы массива, удовлетворяющие указанному условию. 
Второй метод вернул значение первого из элементов, удовлетворяющих 
условию, а третий – его индекс. Два последних метода вернули
соответственно, значение и индекс последнего из элементов, 
удовлетворяющих условию.
Можно проверить, все ли элементы массива удовлетворяют 
некоторому условию. При выполнении кода 
bool f = Array.TrueForAll(x, pr); 
Console.WriteLine(f); 
получим значение False. 
Все вышеперечисленные методы являются статическими. Они 
относятся ко всему классу. Поэтому мы везде применяли метод к классу, а 
имя самого массива записывали в скобках вместе с другими параметрами. 
Рассмотрим ряд динамических методов. Некоторые из них по своим 
действиям аналогичны статическим методам. Сначала приведем их в виде 
таблицы 
Array.Copy(массив_1,массив_2,n)
массив_1.CopyTo(массив_2,n) 
Array.Exists(массив,предикат)
массив.Any(предикат) 


40 
Array.TrueForAll(массив,предикат) массив.All(предикат) 
Array.Find(массив,предикат)
массив.First(предикат) 
Array.FindLast(массив,предикат)
массив.Last(предикат) 
Здесь слева записаны статические методы, разобранные выше, а справа их 
динамические аналоги. 
Вывести количество всех элементов массива, удовлетворяющих 
некоторому условию можно с помощью метода LongCount(). При 
выполнении операторов
long g =x.LongCount(pr); 
Console.WriteLine(g); 
получим число 3. 
Найти максимальное значение элементов массива x, минимальное 
значение и сумму всех элементов можно так: 
double h = x.Max(); 
double i = x.Min(); 
double j = x.Sum(); 


Достарыңызбен бөлісу:
1   ...   18   19   20   21   22   23   24   25   ...   66




©melimde.com 2022
әкімшілігінің қараңыз

    Басты бет
Сабақтың тақырыбы
бойынша жиынтық
жиынтық бағалау
Сабақ тақырыбы
Сабақтың мақсаты
ғылым министрлігі
тоқсан бойынша
бағдарламасына сәйкес
бағалауға арналған
Сабақ жоспары
Реферат тақырыбы
жиынтық бағалауға
сәйкес оқыту
арналған тапсырмалар
Қазақстан республикасы
білім беретін
оқыту мақсаттары
бағалау тапсырмалары
Жалпы ережелер
республикасы білім
рсетілетін қызмет
жиынтық бағалаудың
бекіту туралы
тоқсанға арналған
Қазақстан тарихы
Қазақстан республикасының
мерзімді жоспар
арналған жиынтық
қызмет стандарты
болып табылады
жалпы білім
арналған әдістемелік
Мектепке дейінгі
оқыту әдістемесі
бағалаудың тапсырмалары
Қазақ әдебиеті
пәнінен тоқсанға
Инклюзивті білім
нтізбелік тақырыптық
Зертханалық жұмыс
Әдістемелік кешені
білім берудің
республикасының білім
туралы жалпы
Қазақстанның қазіргі
Қысқа мерзімді
Жұмыс бағдарламасы
қазақ тілінде
қазіргі заман
атындағы жалпы
туралы хабарландыру