Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

The solution will be copied and pasted into a NetBeans IDE, so please make compa

ID: 3681894 • Letter: T

Question

The solution will be copied and pasted into a NetBeans IDE, so please make compatible. And please make sure the program actually compiles and executes. Please test.

Write a program that reads a text file (input.txt) from this location C:/input.txt and uses a recursive algorithm to compute the determinant of the given matrix. It should read the a order of the matrix, read the matrix, print it out, compute, and print the determinant to an output text file (called output.txt) and be placed at C:/output.txt. Your program should be able to evaluate multiple matrices on a single execution. Your program should handle matrices up to and including those of order 6. In a real application, the sizes could be much larger. You are required to use an array for this problem. Your solution must be recursive. Incorporate error checking as well. The input txt file (input.txt) should look like this:

1
5

2
2 3
5 9

3
3 -2 4
-1 5 2
-3 6 4

4
2 4 5 6
0 3 6 9
0 0 9 8
0 0 0 5

4
2 4 5 6
0 0 0 0
0 0 9 8
0 0 0 5

4
2 0 0 0
0 3 0 0
0 0 9 0
0 0 0 5

4
2 4 0 6
1 3 0 0
4 0 0 8
2 5 0 5

6
6 4 6 4 6 4
1 2 3 4 5 6
6 5 4 3 2 1
3 2 3 2 3 2
4 6 4 6 4 6
1 1 1 1 1 1

Explanation / Answer

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.util.Scanner;

/**
* @author srinu
*
*/
public class Determinant {

   /**
   * @param A
   * @param N
   * @return
   */
   public static int determinant(int A[][], int N) {
       int det = 0;
       if (N == 1) {
           det = A[0][0];
       } else if (N == 2) {
           det = A[0][0] * A[1][1] - A[1][0] * A[0][1];
       } else {
           det = 0;
           for (int j1 = 0; j1 < N; j1++) {
               int[][] m = new int[N - 1][];
               for (int k = 0; k < (N - 1); k++) {
                   m[k] = new int[N - 1];
               }
               for (int i = 1; i < N; i++) {
                   int j2 = 0;
                   for (int j = 0; j < N; j++) {
                       if (j == j1)
                           continue;
                       m[i - 1][j2] = A[i][j];
                       j2++;
                   }
               }
               det += Math.pow(-1.0, 1.0 + j1 + 1.0) * A[0][j1]
                       * determinant(m, N - 1);
           }
       }
       return det;
   }

   /**
   * @param matrix
   */
   public static void printMatrix(int[][] matrix) {

       for (int i = 0; i < matrix.length; i++) {
           for (int j = 0; j < matrix[i].length; j++) {
               System.out.print(" " + matrix[i][j]);
           }
           System.out.println();
       }

   }

   /**
   * @param args
   */
   public static void main(String args[]) {
       Scanner input = null;
       try {

           File outFile = new File("C:/output.txt");
           input = new Scanner(new File("C:/input.txt"));
           if (!outFile.exists()) {
               outFile.createNewFile();
           }

           FileWriter fw = new FileWriter(outFile.getAbsoluteFile());
           BufferedWriter bw = new BufferedWriter(fw);
           while (input.hasNext()) {
               int n = input.nextInt();

               int[][] matrix = new int[n][n];
               for (int i = 0; i < n; i++) {
                   for (int j = 0; j < n; j++) {
                       matrix[i][j] = input.nextInt();
                   }
               }

               System.out.println(" Size :" + n);
               printMatrix(matrix);
               int det = determinant(matrix, n);
               bw.write(det + " ");

           }
           bw.close();
       } catch (Exception e) {
           // TODO: handle exception
       } finally {

           input.close();
       }

   }
}

OUTPUT:


Size :1
5

Size :2
2 3
5 9

Size :3
3 -2 4
-1 5 2
-3 6 4

Size :4
2 4 5 6
0 3 6 9
0 0 9 8
0 0 0 5

Size :4
2 4 5 6
0 0 0 0
0 0 9 8
0 0 0 5

Size :4
2 0 0 0
0 3 0 0
0 0 9 0
0 0 0 5

Size :4
2 4 0 6
1 3 0 0
4 0 0 8
2 5 0 5

Size :6
6 4 6 4 6 4
1 2 3 4 5 6
6 5 4 3 2 1
3 2 3 2 3 2
4 6 4 6 4 6
1 1 1 1 1 1

input.txt

1
5
2
2 3
5 9
3
3 -2 4
-1 5 2
-3 6 4
4
2 4 5 6
0 3 6 9
0 0 9 8
0 0 0 5
4
2 4 5 6
0 0 0 0
0 0 9 8
0 0 0 5
4
2 0 0 0
0 3 0 0
0 0 9 0
0 0 0 5
4
2 4 0 6
1 3 0 0
4 0 0 8
2 5 0 5
6
6 4 6 4 6 4
1 2 3 4 5 6
6 5 4 3 2 1
3 2 3 2 3 2
4 6 4 6 4 6
1 1 1 1 1 1

output.txt

5 3 64 270 0 270 0 0

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote