Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Лабораторная работа 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!