
Tyutterin_Yakov_Z1411_with_1
.pdf
}
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));
}
}
}
Результат:

Задание 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);
}
}
}
Результат:


ЛАБОРАТОРНАЯ РАБОТА 6. Визуализация матриц и поэлементные операции над ними
Задание 1: a)
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();
}
}

Результат:
б)
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();
}
}

Результат:
в)
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();
}
}
Результат:

Задание 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;
}
}

Результат:
Задание 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;
}
}