Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Последнее обновление: 14.11.2017
Массив представляет набор однотипных переменных. Объявление массива похоже на объявление переменной за тем исключением, что после указания типа ставятся квадратные скобки:
Например, определим массив целых чисел:
После определения переменной массива мы можем присвоить ей определенное значение:
Здесь вначале мы объявили массив nums, который будет хранить данные типа int. Далее используя операцию new, мы выделили память для 4 элементов массива: new int[4]. Число 4 еще называется длиной массива. При таком определении все элементы получают значение по умолчанию, которое предусмотренно для их типа. Для типа int значение по умолчанию - 0. Также мы сразу можем указать значения для этих элементов:
Все перечисленные выше способы будут равноценны. Для обращения к элементам массива используются индексы. Индекс представляет номер элемента в массиве, при этом нумерация начинается с нуля, поэтому индекс первого элемента будет равен 0. А чтобы обратиться к четвертому элементу в массиве, нам надо использовать индекс 3, к примеру: nums[3]. Используем индексы для получения и установки значений элементов массива:
И так как у нас массив определен только для 4 элементов, то мы не можем обратиться, например, к шестому элементу: nums[5] = 5;. Если мы так попытаемся сделать, то мы получим исключение IndexOutOfRangeException. Перебор массивов. Цикл foreach Цикл foreach предназначен для перебора элементов в контейнерах, в том числе в массивах. Формальное объявление цикла foreach:
Например:
Здесь в качестве контейнера выступает массив данных типа int. Поэтому мы объявляем переменную с типом int Подобные действия мы можем сделать и с помощью цикл for:
В то же время цикл for более гибкий по сравнению с foreach. Если foreach последовательно извлекает элементы контейнера и только для чтения, то в цикле for мы можем перескакивать на несколько элементов вперед в зависимости от приращения счетчика, а также можем изменять элементы:
Многомерные массивы Массивы бывают многомерными. В предыдущих примерах мы создавали одномерные массивы, а теперь также создадим двухмерный:
Визуально оба массива можно представить следующим образом: Одномерный массив nums1
Двухмерный массив nums2
Поскольку массив nums2 двухмерный, он представляет собой простую таблицу. Объявление трехмерного массива могло бы выглядеть так:
Все возможные способы определения двухмерных массивов:
Определенную сложность может представлять перебор многомерного массива. Прежде всего надо учитывать, что длина такого массива - это совокупное количество элементов.
В данном случае длина массива mas равна 12. И цикл foreach выводить все элементы массива в строку: 1 2 3 4 5 6 7 8 9 10 11 12Но что если мы хотим отдельно пробежаться по каждой строке в таблице? В этом случае надо получить количество элементов в размерности. В частности, у каждого массива есть метод GetUpperBound(dimension), который возвращает индекс последнего элемента в определенной размерности. И если мы говорим непосредственно о двухмерном массиве, то первая размерность (с индексом 0) по сути это и есть таблица. И с помощью выражения mas.GetUpperBound(0) + 1 можно получить количество строк таблицы, представленной двухмерным массивом. А через mas.Length / rows можно получить количество элементов в каждой строке:
Массив массивов От многомерных массивов надо отличать массив массивов или так называемый "зубчатый массив":
Здесь две группы квадратных скобок указывают, что это массив массивов, то есть такой массив, который в свою очередь содержит в себе другие массивы. В данном случае у нас массив nums содержит три массива. Причем размерность каждого из этих массивов может не совпадать. Зубчатый массив nums
Причем мы можем использовать в качестве массивов и многомерные:
Так здесь у нас массив из трех массивов, причем каждый из этих массивов представляет двухмерный массив. Используя вложенные циклы, можно перебирать зубчатые массивы. Например:
Задачи с массивами Рассмотрим пару задач для работы с массивами. Найдем количество положительных чисел в массиве:
Вторая задача - инверсия массива, то есть переворот его в обратном порядке:
Поскольку нам надо изменять элементы массива, то для этого используется цикл for. Алгоритм решения задачи подразумевает перебор элементов до середины массива, которая в программе представлена переменной k, и обмен значений элемента, который имеет индекс i, и элемента с индексом n-i-1. Программа сортировки массива |
Последнее изменение этой страницы: 2019-04-19; Просмотров: 234; Нарушение авторского права страницы