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

Задание 5. Блочные матрицы

Задание 5.1:

Листинг программы, решающей поставленную задачу – представлен ниже.

import java.util.Arrays; public class Main { public static void main(String[] args) { int[][] a = {{9, 3}, {7, 8}}; int[][] b = {{4, 1}, {2, 3}}; int[][] c = {{1, 1}, {1, 1}}; int[][] d = {{2, 2}, {2, 2}}; int[][] result = new int[4][4]; insert(result, a, 0, 0); insert(result, b, 0, 2); insert(result, c, 2, 0); insert(result, d, 2, 2); for (int[] ints : result) { System.out.println(Arrays.toString(ints)); } } private static void insert(int [][] result, int[][] matrix, int line, int col) { int i = 0; int maxLine = line + matrix.length; int maxCol = col + matrix.length; for (; line < maxLine; line++) { int j = 0; for (int temp = col; temp < maxCol; temp++) { result[line][temp] = matrix[i][j++]; } i++; } } }

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

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

б-в)

Листинг программы, решающей поставленную задачу – представлен ниже.

import java.util.Arrays; public class Main { public static void main(String[] args) { double[][] a = {{9, 3}, {7, 8}}; double[][] b = {{4, 1}, {2, 3}}; double[][] c = {{1, 1}, {1, 1}}; double[][] d = {{2, 2}, {2, 2}}; double[][] k = new double[4][4]; insert(k, a, 0, 0); insert(k, b, 0, 2); insert(k, c, 2, 0); insert(k, d, 2, 2);

printMatrix(k, "Матрица K:"); double[][] s = {{5, 9}, {1, 2}}; double[][] a1 = {{1}, {5}}; double[][] b1 = {{-4, 7}}; double[][] c1 = {{2.1}}; double[][] m = new double[3][3]; insert(m, s, 0, 0); insert(m, a1, 0, 2); insert(m, b1, 2, 0); insert(m, c1, 2, 2);

printMatrix(m, "Матрица M:"); printMatrix(getMatrix(k, 1, 0, 3, 2), "Первый промежуток: "); printMatrix(getMatrix(k, 2, 2, 4, 4), "Второй промежуток: "); printMatrix(getMatrix(m, 2, 0, 3, 3), "3-я строка из матрицы M: "); } private static void insert(double[][] result, double[][] matrix, int line, int col) { int i = 0; int maxLine = line + matrix.length; int maxCol = col + matrix[0].length; for (; line < maxLine; line++) { int j = 0; for (int temp = col; temp < maxCol; temp++) { result[line][temp] = matrix[i][j++]; } i++; } }

private static double[][] getMatrix(double[][] matrix, int line, int col, int maxLine, int maxCol) { double[][] result = new double[maxLine - line][maxCol - col]; for (int i = 0; line < maxLine; line++, i++) { for (int j = 0, temp = col; temp < maxCol; temp++, j++) { result[i][j] = matrix[line][temp]; } } return result; }

private static void printMatrix(double[][] m, String message) { System.out.println(message); for (double[] line : m) { System.out.println(Arrays.toString(line)); } } }

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

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

Задание 5.4:

Листинг программы, решающей поставленную задачу – представлен ниже.

import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; public class Main { public static void main(String[] args) { int[][] m = { {8, 0, 0, 0, 0, 6, 6, 6, 6, 6}, {0, 8, 0, 0, 0, 6, 6, 6, 6, 6}, {0, 0, 8, 0, 0, 6, 6, 6, 6, 6}, {0, 0, 0, 8, 0, 6, 6, 6, 6, 6}, {0, 0, 0, 0, 8, 6, 6, 6, 6, 6}, {3, 3, 3, 3, 3, -2, 0, 0, 0, 0}, {3, 3, 3, 3, 3, 0, -2, 0, 0, 0}, {3, 3, 3, 3, 3, 0, 0, -2, 0, 0}, {3, 3, 3, 3, 3, 0, 0, 0, -2, 0}, {3, 3, 3, 3, 3, 0, 0, 0, 0, -2} }; writeToFile(m, "matrixM.txt"); int[][] g = { {2, 1, 0, 0, 0, 0, 0}, {1, 2, 1, 0, 0, 0, 0}, {0, 1, 2, 1, 0, 0, 0}, {0, 0, 1, 2, 1, 0, 0}, {0, 0, 0, 1, 2, 1, 0}, {0, 0, 0, 0, 1, 2, 1}, {0, 0, 0, 0, 0, 1, 2} }; writeToFile(g, "matrixG.txt"); } private static void writeToFile(int[][] matrix, String fileName) { try(BufferedWriter writer = new BufferedWriter(new FileWriter(fileName))) { for (final int[] line : matrix) { StringBuilder sb = new StringBuilder(); for (int i : line) { sb.append(i).append("\t"); } writer.write(sb.toString()); writer.newLine(); writer.flush(); } } catch (IOException ex) { throw new RuntimeException(ex); } } }

Результат вычисления представлен на рисунках 24-26.

Рисунок 24 – Файлы, куда происходит сохранение

Рисунок 25 – Результат сохранения матрицы G

Рисунок 25 – Результат сохранения матрицы M

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