Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otch (1) - для слияния.docx
Скачиваний:
0
Добавлен:
07.01.2025
Размер:
10.23 Mб
Скачать

Задание 6. Визуализация матриц и поэлементные операции над ними

Задание 6.1:

  1. Листинг программы представлен ниже

import java.util.Arrays; public class Main { public static void main(String[] args) { int[][] m = { {7, -4, -3}, {3, -1, 0}, {4, -6, 5}, }; print(m); for (int i = 0; i < m.length; i++) { int[] line = m[i]; int sumLine = 0; for (int k : line) { sumLine += k; } System.out.println("Сумма строки " + (i + 1) + ": " + sumLine); } for (int i = 0; i < m.length; i++) { int sumColumn = 0; for (int[] ints : m) { sumColumn += ints[i]; } System.out.println("Сумма солбца " + (i + 1) + ": " + sumColumn); } } private static void print(int[][] matrix) { for (int[] ints : matrix) { System.out.println(Arrays.toString(ints)); } System.out.println(); } }

Результат вычисления представлен на рисунке 27

Рисунок 27 – Результат вычисления

б)

import java.util.Arrays; public class Main { public static void main(String[] args) { int[][] m = { {7, -4, -3}, {3, -1, 0}, {4, -6, 5}, }; print(m); //Сортировка элементов в строках for (int[] line : m) { Arrays.sort(line); } //Результат сортировки элементов в строках print(m); for (int i = 0; i < m.length; i++) { int[] column = new int[m.length]; for (int j = 0; j < m.length; j++) { column[j] = m[j][i]; } Arrays.sort(column); for (int j = 0; j < m.length; j++) { m[j][i] = column[j]; } } print(m); } private static void print(int[][] matrix) { for (int[] ints : matrix) { System.out.println(Arrays.toString(ints)); } System.out.println(); } }

Результат вычисления представлен на рисунке 28

Рисунок 28 – Результат сортировки матрицы

в)

import java.util.Arrays; public class Main { public static void main(String[] args) { int[][] m = { {7, -4, -3}, {3, -1, 0}, {4, -6, 5}, }; print(m); for (int i = 0; i < m.length; i++) { int[] line = m[i]; int max = Integer.MIN_VALUE; int min = Integer.MAX_VALUE; for (int k : line) { if (k > max) { max = k; } if (k < min) { min = k; } } System.out.println("Максимальное значение в строке " + (i + 1) + ": " + max); System.out.println("Минимальное значение в строке " + (i + 1) + ": " + min); } for (int i = 0; i < m.length; i++) { int max = Integer.MIN_VALUE; int min = Integer.MAX_VALUE; for (int[] ints : m) { int curr = ints[i]; if (curr > max) { max = curr; } if (curr < min) { min = curr; } } System.out.println("Максимальное значение в столбце " + (i + 1) + ": " + max); System.out.println("Минимальное значение в столбце " + (i + 1) + ": " + min); } } private static void print(int[][] matrix) { for (int[] ints : matrix) { System.out.println(Arrays.toString(ints)); } System.out.println(); } }

Результат вычислений максимальных и минимальных значений представлены на рисунке 29.

Рисунок 29 – Результат вычислений

Задание 6.2:

import java.util.Arrays; import java.util.Random; public class Main { public static void main(String[] args) { int[][] a = generate(3, 3); print(a); final int[][] b = { {2, 2, 2}, {2, 2, 2}, {2, 2, 2}, }; a = minus(a, b); print(a); int maxSumColumn = Integer.MIN_VALUE; for (int i = 0; i < a.length; i++) { int sumColumn = 0; for (int[] ints : a) { sumColumn += Math.abs(ints[i]); } if (sumColumn > maxSumColumn) { maxSumColumn = sumColumn; } } System.out.println("1 норма: " + maxSumColumn); } private static void print(int[][] matrix) { for (int[] ints : matrix) { System.out.println(Arrays.toString(ints)); } System.out.println(); } private static int[][] generate(int lines, int columns) { final int[][] a = new int[lines][columns]; final Random random = new Random(); for (int i = 0; i < lines; i++) { for (int j = 0; j < columns; j++) { a[i][j] = random.nextInt(0, 8); } } return a; } private static int[][] minus(final int[][] matrixA, final int[][] matrixB) { int[][] result = new int[matrixA.length][matrixB[0].length]; for (int i = 0; i < matrixA.length; i++) { int[] lineA = matrixA[i]; int[] lineB = matrixB[i]; int[] resultLine = new int[lineA.length]; for (int j = 0; j < lineB.length; j++) { resultLine[j] = lineA[j] - lineB[j]; } result[i] = resultLine; } return result; } }

Результат вычислений нормы и вычитания матрицы, состоящей из двоек – представлен на рисунке 30.

Рисунок 30 – Результат вычислений

Задание 6.3:

import java.util.Arrays; import java.util.Random; public class Main { public static void main(String[] args) { int[][] a = generate(3, 3); print(a); final int[][] b = { {2, 2, 2}, {2, 2, 2}, {2, 2, 2}, }; a = minus(a, b); print(a); int maxSumColumn = Integer.MIN_VALUE; for (int i = 0; i < a.length; i++) { int sumColumn = 0; for (int[] ints : a) { sumColumn += Math.abs(ints[i]); } if (sumColumn > maxSumColumn) { maxSumColumn = sumColumn; } } System.out.println("p = " + maxSumColumn); int maxSumLine = Integer.MIN_VALUE; for (int[] line : a) { int sumLine = 0; for (int k : line) { sumLine += Math.abs(k); } if (sumLine > maxSumLine) { maxSumLine = sumLine; } } System.out.println("q = " + maxSumLine); double r = 0; for (int[] lines : a) { for (int el : lines) { r += Math.pow(el, 2); } } r = Math.sqrt(r); System.out.println("r = " + r); int s = 0; for (int[] lines : a) { for (int el : lines) { s += Math.abs(el); } } System.out.println("s = " + s); } private static void print(int[][] matrix) { for (int[] ints : matrix) { System.out.println(Arrays.toString(ints)); } System.out.println(); } private static int[][] generate(int lines, int columns) { final int[][] a = new int[lines][columns]; final Random random = new Random(); for (int i = 0; i < lines; i++) { for (int j = 0; j < columns; j++) { a[i][j] = random.nextInt(0, 8); } } return a; } private static int[][] minus(final int[][] matrixA, final int[][] matrixB) { int[][] result = new int[matrixA.length][matrixB[0].length]; for (int i = 0; i < matrixA.length; i++) { int[] lineA = matrixA[i]; int[] lineB = matrixB[i]; int[] resultLine = new int[lineA.length]; for (int j = 0; j < lineB.length; j++) { resultLine[j] = lineA[j] - lineB[j]; } result[i] = resultLine; } return result; } }

Результат вычислений представлен на рисунке 31.

Рисунок 31 – Результат вычислений

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]