
- •Содержание
- •Лабораторная работа № 8(12ноября) обработка двумерных массивов
- •8.1 Краткая теория
- •8.1.1. Понятие многомерных массивов. Ввод и вывод матриц
- •8.1.2. Типовые алгоритмы обработки матриц
- •8.1.2. Алгоритмы обработки матриц вцелом
- •8.1.2. Алгоритмы обработки матриц по строкам и столбцам
- •8 Содержание .2 задания
- •8.2.1. Общие задания
- •8.2.2. Задания по бригадам
Содержание
Лабораторная работа № 8(12ноября) ОБРАБОТКА ДВУМЕРНЫХ МАССИВОВ 2
8.1 КРАТКАЯ ТЕОРИЯ 2
8.1.1. понятие многомерных массивов. ввод и вывод матриц 2
8.1.2. типовые алгоритмы обработки матриц 3
8.1.2. алгоритмы обработки матриц вцелом 3
8.1.2. алгоритмы обработки матриц по строкам и столбцам 5
8.2 ЗАДАНИЯ 7
8.2.1. Общие задания 7
8.2.2. Задания по бригадам 7
Лабораторная работа № 8(12ноября) обработка двумерных массивов
Ц
Содержание
8.1 Краткая теория
8.1.1. Понятие многомерных массивов. Ввод и вывод матриц
Массив, который в качестве своих элементов содержит другие массивы, называется многомерным массивом.
Объявляются массивы так:
int[][] mas2; //двумерный – 2 индекса
double[][][] mas3; //трёхмерный массив – 3 индекса
int[][][][] mas4; //четырехмерный - 4 индекса
Чаще всего используются двумерные массивы. Такие массивы можно легко представить в виде матрицы, где строки является обычным одномерными массивами с равным количеством элементов
При создании массива можно указать явно размер каждого его уровня, но можно указать только размер первого уровня:
matr = int[3][4]; // Матрица из 3 строк и 4 столбцов
int[][] matr2 = int[5][]; /* Матрица из 5 строк. Сколько элементов будет в каждой строке, пока не известно. */
В последнем случае, можно будет создать двумерный массив, который не будет являться матрицей из-за того, что в каждой его строке будет разное количество элементов.
Создать многомерный массив можно сразу, явно указав его элементы:
int[][] = {{1,2, 8, 6}, {1,2,3,4,5}, {1,2,3,7}}; //матрица
int[][] = {{1,2}, {1,2,3,4,5}, {1,2,3}};//неравномерный массив
О
Содержание
Для обработки двумерных массивов используются два вложенных друг в друга цикла с разными счётчиками.
Ввод матрицы:
int[][] x = new int[6][4];
for(int i=0; i<x.length; i++) {
for(int j=0; j<x[i].length; j++) {
x[i][j] = sc.nextInt();
}
}
Вывод матрицы:
for(int i=0; i<x.length; i++) {
for(int j=0; j<x[i].length; j++) {
System.out.print(x[i][j] + "\t");
}
System.out.println(); // Переход на следующую строку
}
8.1.2. Типовые алгоритмы обработки матриц
Далее рассмотрено несколько задач с алгоритмами обработки матриц.
8.1.2. Алгоритмы обработки матриц вцелом
Задача 8.1. Ввести матрицу а размерностью m*n (n<=10, m<=8). Подсчитать сумму всех элементов матрицы, а также сумму и количество положительных элементов.
Укрупненный алгоритм:
1. Ввести матрицу а;
2. Вывести матрицу а построчно;
2. Принять общую сумму элементов sum=0;
3. Принять сумму положительных элементов sump=0;
4. Принять количество положительных элементов kolp=0;
5
Содержание
Для j от 1 до a[i][j].length
5.1. вычислить sum+=a[i][j];
5.2. если a[i][j] >0
kolp++;
sump+=a[i][j];
6. Вывести результаты
7. Закончить
Задача 8.2. Ввести матрицу x размерностью m*n (n<=10, m<=8). Найти максимум и минимум среди всех элементов, а также номера строк и столбцов, на пересечении которых они находятся. Поменять максимум и минимум местами.
Укрупненный алгоритм:
1. Ввести матрицу x;
2. Вывести матрицу x построчно;
3. Принять номер строки минимума nmini=0;
4. Принять номер столбца минимума nminj=0;
5. Принять минимум равным начальному элементу min=x[0][0];
6. Принять номер строки максимума nmaxi=0;
7. Принять номер столбца максимума nmaxj=0;
8. Принять максимум равным начальному элементу max=x[0][0];
9. Для i от 1 до x.length
Для j от 1 до x[i].length
9.1. если x[i][j] <min
nmini=i;
nminj=j;
min=x[i][j];
9.2. если x[i][j] >max
nmaxi=i;
nmaxj=j;
max=x[i][j];
10. Вывести результаты о максимуме и минимуме.
1
Содержание
12. Вывести матрицу
13. Закончить.