КАТЕГОРИИ: Архитектура-(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) |
Многомерные массивы
Лабораторная работа 6 Цель работы – познакомиться с многомерными массивами, приобрести навыки написания программ на языке C++ с использованием двумерных массивов. Теория
Многомерные массивы – массивы, элементами которых являются массивы. Двумерные массивы можно представлять в виде квадратной таблицы, в которой первый индекс элемента означает номер строки, а второй индекс – номер столбца. Например, массив A[3][4] будет состоять из 12 элементов и его можно записать в виде:
A[0][0] A[0][1] A[0][2] A[0][3] A[1][0] A[1][1] A[1][2] A[1][3] A[2][0] A[2][1] A[2][2] A[2][3]
Определение многомерного массива:
type имя_массива [К1] [К2] … [КN];
Здесь N – размерность массива, К1 - количество в массиве элементов размерности N-1 каждый и т.д.
Пример int ARRAY [4] [3] [6]; Трехмерный массив ARRAY состоит из четырех элементов, каждый из которых – двухмерный массив с размерами 3 на 6. В памяти массив ARRAY размещается в порядке возрастания самого правого индекса, т.е. самый младший адрес имеет элемент ARRAY [0] [0] [0], затем идет ARRAY [0] [0] [1] и т.д.
Многомерный массив подобно одномерному массиву может быть проинициализирован с помощью списка инициализаторов. Первыми инициализируются элементы с самыми маленькими индексами.
Пример int MyArray[3][3][3] = {0,1,2,3,4,5,6,7,8,9,10,11}; Начальные значения получают следующие элементы трёхмерного массива: MyArray[0][0][0] == 0 MyArray[0][0][1] == 1 MyArray[0][0][2] == 2 MyArray[0][1][0] == 3 MyArray[0][1][1] == 4 MyArray[0][1][2] == 5 MyArray[0][2][0] == 6 MyArray[0][2][1] == 7 MyArray[0][2][2] == 8 MyArray[1][0][0] == 9 MyArray[1][0][1] == 10 MyArray[1][0][2] == 11 Остальные элементы массива получают начальные значения в соответствии со статусом массива (в глобальном массиве значения остальных элементов равны 0, в локальном массиве элементам присваиваются неопределённые значения).
Дополнительные фигурные скобки в инициализаторе позволяют инициализировать отдельные фрагменты многомерного массива. Каждая пара фигурных скобок специфицирует значения, относящиеся к одной определённой размерности. Пустые фигурные скобки не допускаются.
Пример int MyArray[3][3][3] = {{{0,1}}, {{100},{200,210},{300}}, {{1000},{2000,2100},{3000,3100,3200}}}; В результате выполнения этого оператора определения будут означены следующие элементы массива MyArray: MyArray[0][0][0] == 0 MyArray[0][0][1] == 1 MyArray[1][0][0] == 100 MyArray[1][1][0] == 200 MyArray[1][1][1] == 210 MyArray[1][2][0] == 300 MyArray[2][0][0] == 1000 MyArray[2][1][0] == 2000 MyArray[2][1][1] == 2100 MyArray[2][2][0] == 3000 MyArray[2][2][1] == 3100 MyArray[2][2][2] == 3200
По аналогии с одномерным массивом, при явной инициализации массива входящего в состав многомерного массива его самая левая размерность может не указываться. Она определяется на основе инициализатора.
Пример int MyArray[ ][3][3] = {{{0,1}}, {{100},{200,210},{300}}, {{1000},{2000,2100}}}; Транслятор понимает, что речь идёт об определении массива размерности 3*3*3.
Для считывания, вывода на экран и обработки многомерных массивов необходимо использовать вложенные циклы. Первый цикл – по первому индексу, второй цикл – по второму индексу, то есть по всем элементам в строках и т.д.
Пример const int n=10, m=5; int A[n][m]; for(int i=0; i<n; ++i) { for(int j=0; j<m; ++j) cout<<A[i][j]<<" "; cout<<endl; }
Задание 1. Запустите C++Builder. 2. Составьте программу в соответствии с вашим вариантом задания (таблица), используя двумерный массив. Размеры массива задайте сами. Сделайте три варианта программы. В первом элементы массива определяются в программе, во втором задаются пользователем, а в третьем заполняются с помощью генератора случайных чисел. Исходный и конечный массивы выведите на экран. 3. Выполните компиляцию программы. При наличии ошибок внести исправления. 4. Сдайте отчет преподавателю.
Варианты
Продолжение табл.
Дата добавления: 2015-08-31; Просмотров: 632; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |