SHARE
TWEET

lab_1

a guest Sep 23rd, 2019 101 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.company;
  2.  
  3.  
  4. import java.util.Scanner;
  5. import java.util.function.DoubleToIntFunction;
  6.  
  7. public class Main {
  8.  
  9.     public static double[][] subMatrix1(double[][] matrix, int n, int m) {
  10.         int size = matrix.length;
  11.         double[][] sub = new double[size - 1][size - 1];
  12.  
  13.         double d = 2.5;
  14.  
  15.  
  16.         int a = 0;
  17.         int b = 0;
  18.         for (int i = 0; i < size; i++) {
  19.             b = 0;
  20.             for (int j = 0; j < size; j++) {
  21.                 if (i != n && j != m) {
  22.                     sub[a][b] = matrix[i][j];
  23.                     b++;
  24.                 }
  25.             }
  26.             if (i != n) {
  27.                 a++;
  28.             }
  29.  
  30.         }
  31.         return sub;
  32.     }
  33.  
  34.     public static int validInt() {
  35.         Scanner sc = new Scanner(System.in);
  36.         int valid;
  37.         while (!sc.hasNextInt()) {
  38.             System.out.println("Error");
  39.             sc.next();
  40.         }
  41.         valid = sc.nextInt();
  42.  
  43.  
  44.         return valid;
  45.     }
  46.  
  47.     public static double validDouble() {
  48.         Scanner sc = new Scanner(System.in);
  49.         double valid;
  50.  
  51.         while (!sc.hasNextDouble()) {
  52.             System.out.println("Error");
  53.             sc.next();
  54.         }
  55.         valid = sc.nextDouble();
  56.  
  57.  
  58.         return valid;
  59.     }
  60.  
  61.     public static void printMatrix(double[][] matrix) {
  62.         int size = matrix.length;
  63.         for (int i = 0; i < size; i++) {
  64.             for (int j = 0; j < size; j++) {
  65.                 System.out.printf("%4.1f ", matrix[i][j]);
  66.             }
  67.             System.out.println();
  68.         }
  69.         System.out.println();
  70.     }
  71.  
  72.     public static double findDet(double[][] matrix) {
  73.         double det = 0;
  74.         int size = matrix.length;
  75.         if (matrix.length < 2) {
  76.             det = matrix[0][0];
  77.         } else if (size == 2) {
  78.             det = matrix[0][0] * matrix[1][1] - matrix[0][1] * matrix[1][0];
  79.         } else {
  80.             int i = 0;
  81.             for (int j = 0; j < size; j++) {
  82.                 double[][] sub = subMatrix1(matrix, i, j);
  83.                 det += (matrix[i][j] * Math.pow(-1, (i + j)) * findDet(sub));
  84.             }
  85.         }
  86.         return det;
  87.     }
  88.  
  89.  
  90.     public static void main(String[] args) {
  91.  
  92.  
  93.         System.out.println("Введите размер матриц (size > 0):");
  94.         int size = 0;
  95.         do {
  96.             size = validInt();
  97.             if (size < 1) {
  98.                 System.out.println("Error");
  99.             }
  100.         } while (size < 1);
  101.         double[][] matrix1 = new double[size][size];
  102.  
  103.         for (int i = 0; i < size; i++) {
  104.             for (int j = 0; j < size; j++) {
  105.                 System.out.printf("Введите элемент матрицы 1 [%d][%d] ", i, j);
  106.                 matrix1[i][j] = validDouble();
  107.             }
  108.         }
  109.         printMatrix(matrix1);
  110.  
  111.         double[][] matrix2 = new double[size][size];
  112.         for (int i = 0; i < size; i++) {
  113.             for (int j = 0; j < size; j++) {
  114.                 System.out.printf("Введите элемент матрицы 2 [%d][%d] ", i, j);
  115.                 matrix2[i][j] = validDouble();
  116.             }
  117.         }
  118.         printMatrix(matrix2);
  119.  
  120.         double[][] sum_matrix = new double[size][size];
  121.         for (int i = 0; i < size; i++) {
  122.             for (int j = 0; j < size; j++) {
  123.                 sum_matrix[i][j] = matrix1[i][j] + matrix2[i][j];
  124.             }
  125.         }
  126.         System.out.println("Сумма матриц");
  127.         printMatrix(sum_matrix);
  128.  
  129.         double det = findDet(sum_matrix);
  130.  
  131.  
  132.         System.out.println("Определитель подматрицы = " + det);
  133.     }
  134. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top