КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Многомерные массивы. Массив – это конечная упорядоченная именованная последовательность элементов одного и того же типа
... Одномерные массивы Массивы Массив – это конечная упорядоченная именованная последовательность элементов одного и того же типа. При объявлении массива после его имени в квадратных скобках задается его размер (число элементов). В общем случае измерений у массива может быть несколько. В соответствии с их количеством различают одномерные, двумерные, трехмерные и другие массивы. Математический “аналог” одномерного массива – вектор. Примером одномерного массива может служить набор из двенадцати целых чисел, соответствующих числу дней в каждом календарном месяце. Объявление этого массива в программе может быть, например, таким: int days[12]; В данной строке объявлен массив с именем days, состоящий из 12 элементов типа int. Для того чтобы обратиться к определенному элементу массива, используется операция индексирования []. В квадратных скобках указывается целочисленное выражение, определяющее порядковый номер (индекс) элемента массива. Операнды операции индексирования – массив и значение индекса, результат – значение соответствующего элемента массива. Операция индексирования – одна из операций, имеющих наивысший приоритет. Нумерация элементов массива начинается с 0. Присвоим, например, всем элементам массива days начальные значения (инициализируем массив days), помня о том, что начальный элемент массива days имеет индекс 0, а последний, соответственно, 11: days [0] = 31; days [1] = 28; days [11] = 31; Размер массива должен быть известен в момент компиляции, поэтому при объявлении массива в качестве его размера можно указывать только целую константу. При обращении же к элементу массива в качестве значения индекса может выступать любая переменная или выражение, представляемое ими значение вычисляется во время выполнения программы и преобразуется к целому значению. Вывести на экран все элементы массива days можно, например, с помощью оператора for: for (int i=0; i<12; i++) cout << days[i]; Элементы массива располагаются в памяти последовательно без промежутков. Размер памяти, распределяемой под массив, равен размеру памяти для размещения всех его элементов. Возможны различные способы инициализации (присваивания начальных значений элементам) массивов. Первый способ – инициализация массива с помощью операций присваивания. Массив может инициализироваться также посредством ввода данных с внешнего носителя или клавиатуры: int a[10]; for (int i = 0; i < 10; i++) cin >> a[i]; Когда начальные значения элементов массива известны, при объявлении массива можно использовать список начальных значений, заключаемый в фигурные скобки: int a[10] = { 71, 28, 40, -4, 231, 1, -30, 0, 30, 31}; Значений в списке может быть меньше, чем элементов в массиве, в этом случае оставшиеся элементы массива получают нулевые начальные значения. Автоматическое генерирование случайных значений осуществляется стандартной функцией rand(), описанной в файле заголовков stdlib.h. Пример инициализации массива с помощью датчика случайных чисел: #include <stdlib.h> ... for (int i = 0; i < 10; i++) a[i]=rand(); Алгоритм генерации случайных чисел “отталкивается” от значения выбранной начальной точки. При одной и той же начальной точке одним и тем же будет и набор генерируемых случайных значений. Стандартная начальная точка задается значением 1. При необходимости "точку отсчета" можно изменить с помощью стандартной функции srand(), например: srand(2); Имеется возможность определить массивы с несколькими индексами (измерениями). Математический “аналог” двумерных массивов – матрицы, состоящие из строк и столбцов. Например, объявление int m[10][5]; объявляет матрицу (таблицу) целых чисел размером 10 на 5, то есть из 10 строк и 5 столбцов. По-другому интерпретировать данное объявление можно как объявление массива из 10 элементов, каждый из которых – одномерный массив (вектор) целых чисел длиной 5. Общее количество целых чисел в массиве m равно 50. Обращение к элементам двумерных массивов осуществляется с указанием значений двух индексов. Так, оператор m[1][2]=0; присваивает значение 0 третьему элементу второй строки матрицы m. Как и при объявлении одномерного массива, при объявлении многомерного массива все его размеры должны быть заданы константами. Двумерные массивы запоминаются в памяти построчно, без промежутков между элементами. Вообще же многомерные массивы запоминаются в памяти таким образом, что, если переходить элемента к элементу последовательно, последний индекс изменяется быстрее, а первый – медленнее всех. При инициализации многомерных массивов список значений для каждой размерности может быть заключен в фигурные скобки: double temp[2][3] = { { 3.2, 3.3, 3.4}, { 4.1, 3.9, 3.9} }; Начальные значения для двумерных массивов могут быть и не “структурированными”, а задаваться общим списком, как для одномерных массивов. В этом случае инициализация производится по строкам (быстрее растет последний индекс). При использовании “структурированного” списка начальных значений недостающие элементы строк заменяются нулями. Количество измерений в массиве может быть достаточно большим, хотя на практике массивы, имеющие больше трех измерений, используются нечасто.
Дата добавления: 2014-01-11; Просмотров: 439; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |