Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Многомерные массивы



Лабораторная работа 5. Работа с многмерными массивами

Цель работы: Использование многомерных массивов при работе с Java

Форма предоставления отчета: демонстрация результатов выполнения работы и защита подготовленного отчета согласно представленному варианту индивидуального задания.

Краткая теория по теме.

МНОГОМЕРНЫЕ МАССИВЫ

Массив может состоять не только из элементов какого-то встроенного типа (int, double и пр.), но и, в том числе, из объектов какого-то существующего класса и даже из других массивов.

Массив который в качестве своих элементов содержит другие массивы называется многомерным массивом.

Чаще всего используются двумерные массивы. Такие массивы можно легко представить в виде матрицы. Каждая строка которой является обычным одномерным массивом, а объединение всех строк — двумерным массивом в каждом элементе которого хранится ссылка на какую-то строку матрицы.

Для того, чтобы обратиться к элементу n-мерного массива нужно указать n индексов.

Объявляются массивы следующим образом:

int[] d1; //Обычный, одномерныйint[][] d2; //Двумерныйdouble[][] d3; //Трёхмерныйint[][][][][] d5; //Пятимерный

При создании массива можно указать явно размер каждого его уровня:

d2 = int[3][4]; // Матрица из 3 строк и 4 столбцов

Но можно указать только размер первого уровня:

int[][] dd2 = int[5][]; /* Матрица из 5 строк. Сколько элементов будет в каждой строке пока не известно. */

В последнем случае, можно создать двумерный массив, который не будет являться матрицей из-за того, что в каждой его строке будет разное количество элементов. Например:

for(int i=0; i<5; i++) { dd2[i] = new int[i+2];}

В результате получим массив:

0 00 0 00 0 0 00 0 0 0 00 0 0 0 0 0

Можно создать массив, явно указав его элементы. Например, так:

int[][] ddd2 = {{1,2}, {1,2,3,4,5}, {1,2,3}};

При этом можно обратиться к элементу с индексом 4 во второй строке ddd2[1][4], но если мы обратимся к элементу ddd2[0][4 ] или ddd2[2][4] — произойдёт ошибка, поскольку таких элементов нет. Притом ошибка — это будет происходить уже во время исполнения программы (т.е. компилятор её не увидит).

Обычно всё же используются двумерные массивы с равным количеством элементов в каждой строке.

Для обработки двумерныхмассивов используются два вложенных друг в друга цикла с разными счётчиками.

Пример (заполняем двумерный массив случайными числами от 0 до 9 и выводим его на экран в виде матрицы):

int[][] da = new int[6][4];for(int i=0; i<da.length; i++) { for(int j=0; j<da[i].length; j++) { da[i][j] = (int)(Math.random()*10); }}for(int i=0; i<da.length; i++) { for(int j=0; j<da[i].length; j++) { System.out.print(da[i][j] + "\t"); } System.out.println(); // Переходим на следующую строку}

В листинге 2.9 приведен пример программы, вычисляющий первые 10 строк треугольника Паскаля, заносящей их в треугольный массив и выводящей его элементы в консоль.





Дата публикования: 2015-10-09; Прочитано: 536 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...