2.14M
Category: programmingprogramming

Многомерные массивы. Занятие 9

1.

ЗАНЯТИЕ 9
МНОГОМЕРНЫЕ
МАССИВЫ

2.

ПОВТОРЕНИЕ
• Массив — это структура данных, в которой хранятся элементы одного типа. Его
можно представить, как набор пронумерованных ячеек, в каждую из которых
можно поместить какие-то данные (один элемент данных в одну ячейку). Доступ к
конкретной ячейке осуществляется через её номер. Номер элемента в массиве
также называют индексом.

3.

ПОВТОРЕНИЕ

4.

ПОВТОРЕНИЕ

5.

ПОВТОРЕНИЕ
• длина массива — это количество элементов, под которое рассчитан массив. Длину
массива нельзя изменить после его создания.

6.

ПОВТОРЕНИЕ
• 1) Создать массив строк с помощью сканера;
• 2) Заполнить массив с помощью сканера;
• 3) Вывести значение массива.

7.

ДВУМЕРНЫЕ МАССИВЫ
• Самый распространенный пример двумерного массива - это матрица
В матрице есть строки и столбцы. На пересечении их
стоит определенное значение.

8.

ДВУМЕРНЫЕ МАССИВЫ
• Класс TwoDimensionalArray.java – создание и заполнение

9.

ДВУМЕРНЫЕ МАССИВЫ
• Важно понимать, что двумерный массив – это массив массивов, то есть в каждой
его ячейке находится ссылка на некий массив. Т.е если говорить абстрактно, то это
таблица, у которой задано количество строк (первое измерение) и количество
столбцов (второе измерение).

10.

ДВУМЕРНЫЕ МАССИВЫ. ДЛИНА
• Чтобы получить длину одномерного массива (то есть, количество элементов в нём),
можно использовать переменную length. То есть, если мы определим массив
• int a[] = {1,2,3}, то операция a.length возвращает 3.
• А как узнать длину тогда двумерного массива?
• Сделаем следующее:

11.

ДВУМЕРНЫЕ МАССИВЫ. ДЛИНА
• Таким образом, эта операция выводит количество строк в массиве. А как получить
количество столбцов? Если мы имеем дело с прямоугольными двумерными
массивами (то есть такими, у которых все строки одинаковой длины), то можно
применить операцию twoDimArray[0].length или вместо нулевого элемента (по
сути — нулевой строки) — любой другой существующий. Мы можем так поступить,
потому что в Java двумерный массив — это массив массивов, и нулевой элемент
twoDimArray[0] — это массив длины 4.
• Если массив не прямоугольный, то используем циклы

12.

• Класс TwoDimensionalArray.java – вывод
• эту операцию (вывод) логичнее всего делать так: сначала выводим нулевую строку
поэлементно, затем — вторую и так далее. Чаще всего в Java вывод двумерного
массива реализуют с помощью двух вложенных циклов.

13.

ДВУМЕРНЫЕ МАССИВЫ
• Почему вывод такой?
двумерный массив состоит из строк и столбцов. Каждая ячейка такого массива - это пересечение
какой-то строки и столбца.
1. Так что первый цикл for перебирает каждую строку двумерного массива (которая содержит
какое-то количество столбцов).
2. А второй цикл for перебирает столбцы в этой строке. Таким образом можно заполнить
значением каждый элемент двумерного массива.

14.

ДВУМЕРНЫЕ МАССИВЫ
• 1) Вывести в консоль массив {{5,7,3,17}, {7,0,1,12}, {8,1,2,3}};
• 2) Пользователь вводит размерность двумерного массива (квадратный, т.е число
строк=числу столбцов) и заполняет (через сканнер)
• 3) Пользователь вводит размерности двумерного массива (прямоугольный, все
строки одинаковой длины !=числу столбцов) и заполняет (через сканнер)

15.

ОБЪЯВЛЕНИЕ МНОГОМЕРНЫХ МАССИВОВ
Java-разработчики иногда пользуются двумерными массивами, гораздо реже —
трёхмерными, ну а массивы ещё большей размерности — чрезвычайно редки.

16.

ПРИМЕНЕНИЕ

17.

ПРАКТИКА
• 1) Нарисовать в консоли шахматную доску (8x8) (нижняя левая клетка шахматной
доски окрашена в чёрный цвет, следующая за ней — в белый, как и та, что над ней.
Итак, цвет меняется каждый раз при переходе на соседнюю по стороне ячейку) Т.е
результат должен быть следующий:

18.

ПРАКТИКА
• 2) Вывести таблицу умножения используя двумерный массив
• 3) Есть матрица. Найти в ней введенное пользователем число и вывести номер
столбца и строки
• 4) Есть матрица. Посчитать сумму элементов в каждой строке
• 5) Есть матрица (квадратная). Посчитать сумму элементов, расположенных на
главной диагонали:
• Т.е дано
Главная диагональ – {1,3,9,3}

19.

ДЗ (+ПРАКТИКА)
• 1)* Создать Jagged Array (т.е число элементов в каждом под массиве двумерного
массива может отличаться) с помощью пользователя и сканера. Пример такого
массива: int[][] myArray = {{1,2,3}, {56},{1,2,6,1,3,1,3},{2,2}};
• 2)**Нарисовать бабочку
English     Русский Rules