Лекция4(Массивы).pptx
- Количество слайдов: 16
Массивы массивы, списки, перебор коллекций
Задача: Пользователь вводит 3 различных числа, необходимо вывести эти числа в консоль в порядке возрастания.
int a 1, a 2, a 3; a 1 = Convert. To. Int 32(Console. Read. Line()); a 2 = Convert. To. Int 32(Console. Read. Line()); a 3 = Convert. To. Int 32(Console. Read. Line()); if (a 1 < a 2 && a 1 < a 3) { Console. Write. Line(a 1); if (a 2 < a 3) { Console. Write. Line(a 2); Console. Write. Line(a 3); } else { Console. Write. Line(a 3); Console. Write. Line(a 2); } } else if (a 2 < a 3 && a 2<a 1) { Console. Write. Line(a 2); if (a 1 < a 3) { Console. Write. Line(a 1); Console. Write. Line(a 3); } else { Console. Write. Line(a 3); Console. Write. Line(a 1); }
Массив - именованный набор однотипных переменных, расположенных в памяти непосредственно друг за другом, доступ к которым осуществляется по индексу. Нумерация массивов всегда начинается с нулевого элемента! int[] a = new int[3]; a[0] = 10; a[1] = 5; a[2] = -3; a[3] = 7; //ОШИБКА! элемент с индексом 3 не существует
int[] a = new int[3]; for (int i = 0; i < 3; i++) a[i] = Convert. To. Int 32(Console. Read. Line()); Array. Sort(a); //сортировка for (int i = 0; i < 3; i++) Console. Write. Line(a[i]);
Объявление одномерных массивов Объявление массива A и его инициализация в коде. Размер массива определяется автоматически. int[] A = {1, -3, 7, 33, 2, 3, 47, -1}; Объявление массива B состоящего из n элементов. Значение всех элементов массива по умолчанию равно 0. int n = Convert. To. Int 32(Console. Read. Line()); double[] B = new double[n]; Переопределение размера массива A. Если новый размер массива больше, то создаются новые элементы с нулевыми значениями. Array. Resize(ref A, 5);
Массив дат Date. Time[] holidays = {new Date. Time(1, 1, 2012), new Date. Time(7, 1, 2012), new Date. Time(23, 2, 2012), new Date. Time(8, 3, 2012) };
Строки и массивы Для типа string определён индексатор, который позволяет обращаться к элементам строки как к массиву. string text = "Hello!"; Индексы 0 1 2 3 4 5 Символы H e l l o ! char c = text[1]; Console. Write. Line(text[0]); text[1] = 'Y'; //ОШИБКА - доступ к индексатору только для чтения
Свойства и методы массивов int[] A = {1, -3, 7, 33, 2, 3, 47, -1}; Свойств о Описание Пример Length Длина массива Метод Описание Console. Write. Line(A. Length); Будет выведено 8 Max Возвращает элемент Console. Write. Line(A. Max()); Будет выведено 47 с максимальным значением Min Возвращает элемент Console. Write. Line(A. Min()); Будет выведено -3 с минимальным значением Sum Возвращает сумму всех элементов Average Возвращает среднее Console. Write. Line(A. Average()); Будет выведено 17. 875 значение всех элементов Пример Console. Write. Line(A. Sum()); Будет выведено 1+(-3)+7+… 47+(-1) = 89
Метод Clone создаёт копию заданного массива. При простом присваивании, копируется только указатель на массив. int[] A = {1, -3, 7, 33, 2, 3, 47, -1}; int[] B = (int[])A. Clone(); int[] C = A; C[0] = 77; C[1] = 88; //A = {77, 88, 7, 33, 2, 3, 47, -1} //B = {1 , -3, 7, 33, 2, 3, 47, -1} //C = {77, 88, 7, 33, 2, 3, 47, -1}
Date. Time[] holidays = {new Date. Time(2012, 1, 1), new Date. Time(2012, 1, 7), new Date. Time(2012, 2, 23), new Date. Time(2012, 3, 8) }; Time. Span min = holidays[0] - Date. Time. Now; int nearest. Holiday = 0; for (int i = 1; i < holidays. Length; i++) { Time. Span dif = holidays[i] - Date. Time. Now; if (min. Total. Milliseconds < 0 || dif < min) { min = dif; nearest. Holiday = i; } } Console. Write. Line("Ближайший праздник {0}", holidays[nearest. Holiday]. To. String("D"));
Передача массивов через аргументы функции static void Inc(int[] a) { for (int i = 0; i < a. Length; i++) { a[i]++; } } static void Main(string[] args) { int[] b = {1, 2, 3, 4, 5, 6, 7, 8, 9}; Inc(b); //b = {2, 3, 4, 5, 6, 7, 8, 9, 10} }
Двумерные (многомерные) массивы Двумерные массивы можно визуально представить в виде прямоугольной таблицы, где первый индекс – номер строки, а второй индекс – номер столбца. Объявление двумерного массива размером 2 x 2 int[, ] A = new int[2, 2]; A[0, 0] = 11; A[0, 1] = 22; A[1, 0] = 33; A[1, 1] = 44; 0 11 22 1 33 44
Двумерные (многомерные) массивы string[, ] B = { {"Математика", "5"}, {"Физика", "4"}, {"Философия", "4"}, {"Английский", "5"} }; Console. Write. Line("{0} оценка {1}", B[1, 0], B[1, 1]); //Будет выведено: Физика оценка 4 //Массив 4 x 2, метод Get. Length позволяет получить //размер каждого измерения массива Console. Write. Line(B. Get. Length(0)); //4 Console. Write. Line(B. Get. Length(1)); //2 Console. Write. Line(B. Length); //8
Списки (класс List) Класс List позволяет создавать списки содержащие набор переменных заданного типа. Такой список можно сравнить с одномерным массивом. При создании списка он не содержит элементов, они могут быть добавлены с помощью метода Add. List<double> lst = new List<double>(); lst. Add(10); //10 lst. Add(100); //10, 100 lst. Add(300); //10, 100, 300 lst. Remove(100); //10, 300
Цикл foreach для перебора коллекций int[] A = { 3, 4, 7, 33, 2, 3, 47 }; Цикл for (int i = 0; i < A. Length; i++) { Console. Write. Line(A[i]); } Цикл foreach (var n in A) { Console. Write. Line(n); }
Лекция4(Массивы).pptx