|
Содержание
Лабораторная работа № 8(12ноября) ОБРАБОТКА ДВУМЕРНЫХ МАССИВОВ.. 2
8.1 КРАТКАЯ ТЕОРИЯ.. 2
8.1.1. понятие многомерных массивов. ввод и вывод матриц. 2
8.1.2. типовые алгоритмы обработки матриц. 3
8.1.2. алгоритмы обработки матриц вцелом.. 3
Задача 8.1. 3
Задача 8.2. 4
8.1.2. алгоритмы обработки матриц по строкам и столбцам.. 5
Задача 8.3. 5
Задача 8.4. 6
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;
|
Для 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. Вывести результаты о максимуме и минимуме.
|
12. Вывести матрицу
13. Закончить.
8.1.2. алгоритмы обработки матриц по строкам и столбцам
Задача 8.3. Ввести матрицу а размерностью m*n (n<=10, m<=8). Выполнить следующее:
– подсчитать суммы элементов по строкам и вывеси исходную матрицу, а в конце каждой строки – сумму.
– подсчитать суммы элементов по столбцам и вывеси исходную матрицу и соответствующие суммы под каждым столбцом.
Укрупненный алгоритм:
1. Ввести матрицу а;
2. Вывести матрицу а построчно;
// подсчет в строках
3. Для i от 1 до a.length
3.1. Принять сумма sum = 0 // сумма строки
3.2. Для j от 1 до a[i].length
вывести элемент a[i][j]
вычислить sum+=a[i][j];
3.3. вывести sum
// подсчет в столбцах
4. Создать массив sumStl для хранения сумм элементов столбцов
5. Для j от 1 до a[0].length
5.1. Принять сумма sumStl [j] = 0 // сумма j-ого столбца
5.2. Для i от 1 до a.length
вычислить sumStl [j]+=a[i][j];
6. Вывести матрицу а
7. Вывести массив sumStl, чтобы значения сумм попадали под соответствующие столбцы.
7. Закончить
|
Задача 8.4. Ввести матрицу а размерностью m*n (n<=10, m<=8).
Выполнить следующее:
– найти минимальные элементы в каждой строке и вывеси исходную матрицу, а в конце каждой строки – минимум и его номер;
– найти максимальные элементы в каждом столбце и вывеси исходную матрицу, а в конце каждого столбца – максимум;
Укрупненный алгоритм:
1. Ввести матрицу а;
2. Вывести матрицу а построчно;
// подсчет в строках
3. Для номера строки i от 1 до a. length
3.1. Принять номер столбца минимума nmin =0;
3.2. Принять минимум равным min = a [i][ nmin ];
3.3. Для номера столбца j от 1 до a [i].length
если a [i][j] < min
nmin = j;
min = a [i][j];
3.3. вывести min и nmin
// подсчет в столбцах
4. Создать массив maxStl для хранения минимальных элементов столбцов
5. Для номера столбца j от 1 до a [0].length
5.1. Принять номер строки максимума nmax =0;
5.1. Принять maxStl [ nmax ]= a [ nmax ][j] // начальные значения
5.2. Для номера строки i от 1 до a.length
если a [i][j] > max
nmax = i;
maxStl [j]= a [i][j];
6. Вывести матрицу а
7. Вывести массив maxStl //значения максимумов под соответствующими столбцами.
8. Закончить.
|
8.2.1. Общие задания
Задание 8.1. Создать приложения для задач 8.1 – 8.4, описанных в лабораторной работе.
8.2.2. Задания по бригадам
Вариант 1 | ||
1. Ввести в ЭВМ матрицу b размером n * m (n, m <= 10). Вывести ее по строкам, а затем - вывести последнюю строку матрицы и ее минимальный элемент. | ||
2. Ввести в ЭВМ матрицу p размером n * m (n, m <= 10). Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= m). Вывести из матрицы p столбец с номером nom и сумму его положительных элементов. | ||
Вариант 2 | ||
1. Ввести в ЭВМ матрицу a размером n * m (n, m <= 10). Вывести ее по строкам, а затем - вывести первую строку матрицы и сумму и количество ее положительных элементов. | ||
2. Ввести в ЭВМ матрицу q размером n * m (n, m <= 10). Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= m). Вывести из матрицы p столбец с номером nom, его максимальный элемент и номер строки в которой он находится. | ||
Вариант 3 | ||
1. Ввести в ЭВМ матрицу c размером n * m (n, m <= 10). Вывести ее по строкам, а затем - вывести последний столбец матрицы и его максимальный элемент. | ||
2. Ввести в ЭВМ матрицу p размером n * m (n, m <= 10). Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= n). Вывести из матрицы p строку с номером nom и сумму ее элементов. | ||
Вариант 4 | ||
1. Ввести в ЭВМ матрицу d размером n * m (n, m <= 10). Вывести ее по строкам, а затем - вывести первый столбец матрицы и сумму его четных элементов. | ||
2. Ввести в ЭВМ матрицу q размером n * m (n, m <= 10). Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= n). Вывести из матрицы p строку с номером nom и ее максимальный элемент и номер столбца, в котором он находится. | ||
| ||
1. Ввести в ЭВМ матрицу a размером n * m (n, m <= 10). Вывести ее по строкам, а затем - вывести последнюю строку матрицы и ее максимальный элемент. | ||
2. Ввести в ЭВМ матрицу p размером n * m (n, m <= 10). Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= m). Вывести из матрицы p столбец с номером nom, сумму и количество его положительных элементов. | ||
Вариант 6 | ||
1.Ввести в ЭВМ матрицу b размером n * m (n, m <= 10). Вывести ее по строкам, а затем - вывести первую строку матрицы и сумму и количество ее положительных элементов. | ||
2. Ввести в ЭВМ матрицу q размером n * m (n, m <= 10). Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= m). Вывести из матрицы p столбец с номером nom, его минимальный элемент и номер строки в которой он находится. | ||
Вариант 7 | ||
1. Ввести в ЭВМ матрицу c размером n * m (n, m <= 10). Вывести ее по строкам, а затем - вывести последний столбец матрицы и его минимальный элемент. | ||
2. Ввести в ЭВМ матрицу p размером n * m (n, m <= 10). Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= n). Вывести из матрицы p строку с номером nom, сумму и количество его положительных элементов. | ||
Вариант 8 | ||
1. Ввести в ЭВМ матрицу d размером n * m (n, m <= 10). Вывести ее по строкам, а затем - вывести первый столбец матрицы и, сумму и количество его положительных элементов. | ||
2. Ввести в ЭВМ матрицу q размером n * m (n, m <= 10). Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= n). Вывести из матрицы p строку с номером nom и ее минимальный элемент и номер столбца, в котором он находится. | ||
| ||
| ||
1. Ввести в ЭВМ матрицу x размером n * m (n, m <= 10). Вывести ее по строкам, а затем - вывести последнюю строку матрицы и ее максимальный четный элемент. | ||
2. Ввести в ЭВМ матрицу q размером n * m (n, m <= 10). Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= m). Вывести из матрицы p столбец с номером nom, сумму и количество его элементов. | ||
Вариант 10 | ||
1. Ввести в ЭВМ матрицу y размером n * m (n, m <= 10). Вывести ее по строкам, а затем - вывести первую строку матрицы и сумму ее элементов. | ||
2. Ввести в ЭВМ матрицу x размером n * m (n, m <= 10). Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= m). Вывести из матрицы p столбец с номером nom, его максимальный элемент и номер строки в которой он находится. | ||
Вариант 11 | ||
1. Ввести в ЭВМ матрицу a размером n * m (n, m <= 10). Вывести ее по строкам, а затем - вывести второй столбец матрицы и его минимальный элемент. | ||
2. Ввести в ЭВМ матрицу p размером n * m (n, m <= 10). Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= n). Вывести из матрицы p строку с номером nom, сумму его четных элементов. | ||
Вариант 12 | ||
1. Ввести в ЭВМ матрицу b размером n * m (n, m <= 10). Вывести ее по строкам, а затем - вывести предпоследний столбец матрицы и, сумму и количество его элементов. | ||
2. Ввести в ЭВМ матрицу q размером n * m (n, m <= 10). Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= n). Вывести из матрицы p строку с номером nom и ее минимальный четный элемент и номер столбца, в котором он находится. |
Дата добавления: 2015-09-30; просмотров: 34 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
Лазеры на вибронных кристаллах | | | Тема : Предмет та об'єкт юридичної деонтології. |