Advertisement
venik2405

lab3_3_1

Dec 16th, 2020
324
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.83 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.Scanner;
  3.  
  4. public class Main {
  5.  
  6.     static Scanner scConsole = new Scanner(System.in);
  7.  
  8.     private static PrintWriter getOutputFileLocation() {
  9.         boolean isIncorrect;
  10.         String location;
  11.         PrintWriter file = null;
  12.         do {
  13.             isIncorrect = false;
  14.             System.out.println("Enter file location:");
  15.             location = scConsole.nextLine();
  16.             try {
  17.                 file = new PrintWriter(location);
  18.             } catch (FileNotFoundException e) {
  19.                 isIncorrect = true;
  20.                 System.out.println("File with this location is not found");
  21.             }
  22.         } while (isIncorrect);
  23.         if (file != null)
  24.             System.out.println("File opened successfully");
  25.         return file;
  26.     }
  27.  
  28.     private static Scanner getInputFileLocation() {
  29.         boolean isIncorrect;
  30.         String location;
  31.         Scanner file = null;
  32.         do {
  33.             isIncorrect = false;
  34.             System.out.println("Enter file location:");
  35.             location = scConsole.nextLine();
  36.             try {
  37.                 file = new Scanner(new File(location));
  38.             } catch (FileNotFoundException e) {
  39.                 isIncorrect = true;
  40.                 System.out.println("File with this location is not found");
  41.             }
  42.         } while (isIncorrect);
  43.         if (file != null)
  44.             System.out.println("File opened successfully");
  45.         return file;
  46.     }
  47.  
  48.     private static int[][][] getArrayFromConsole(int size) {
  49.         int[][][] arrays = new int[size][size][size];
  50.         boolean isIncorrect;
  51.         System.out.println("Enter the matrix");
  52.         for (int i = 0; i < size; i++) {
  53.             for (int j = 0; j < size; j++)
  54.                 for (int k = 0; k < size; k++) {
  55.                     do {
  56.                         isIncorrect = false;
  57.                         try {
  58.                             System.out.println("Enter the element number [" + (i + 1) + "|" + (j + 1) + "|" + (k + 1) + "]");
  59.                             arrays[i][j][k] = Integer.parseInt(scConsole.nextLine());
  60.                         } catch (Exception e) {
  61.                             System.out.println("Enter the number");
  62.                             isIncorrect = true;
  63.                         }
  64.                     } while (isIncorrect);
  65.                 }
  66.         }
  67.         return arrays;
  68.     }
  69.  
  70.     public static void printMatrixToConsole(int[][][] matrix, int time) {
  71.         System.out.println("Iteration number [" + time + "]");
  72.         System.out.println("_____________________________");
  73.         for (int lay = 0; lay < matrix.length; lay++) {
  74.             System.out.print("Slay number " + (lay + 1) + ":\n");
  75.             for (int lin = 0; lin < matrix.length; lin++) {
  76.                 for (int col = 0; col < matrix.length; col++) {
  77.                     System.out.print(matrix[lay][lin][col] + " ");
  78.                 }
  79.                 System.out.print("\n");
  80.             }
  81.             System.out.println("\n");
  82.         }
  83.     }
  84.  
  85.     private static int matrixSizeInput() {
  86.         final int MIN_VALUE = 1;
  87.         final int MAX_VALUE = 6;
  88.         boolean isIncorrect;
  89.         int size = 0;
  90.         do {
  91.             isIncorrect = false;
  92.             try {
  93.                 size = Integer.parseInt(scConsole.nextLine());
  94.             } catch (Exception e) {
  95.                 System.out.println("Enter the number");
  96.                 isIncorrect = true;
  97.             }
  98.             if ((!isIncorrect) && ((size < MIN_VALUE) || (size > MAX_VALUE))) {
  99.                 System.out.println("Please, enter the natural number less than 6");
  100.                 isIncorrect = true;
  101.             }
  102.         } while (isIncorrect);
  103.         return size;
  104.     }
  105.  
  106.     private static void getArrayFromFile(int[][][] arrays) {
  107.         Scanner file = getInputFileLocation();
  108.         for (int i = 0; i < arrays.length; i++) {
  109.             for (int j = 0; j < arrays.length; j++) {
  110.                 for (int k = 0; k < arrays.length; k++) {
  111.                     arrays[i][j][k] = file.nextInt();
  112.                 }
  113.             }
  114.         }
  115.     }
  116.  
  117.     public static void sortMatrix(int[][][] arrays) {
  118.         int temp;
  119.         int time = 0;
  120.         int up = arrays.length;
  121.         for (int i = 0; i < up; i++) {
  122.             for (int j = 0; j < up; j++) {
  123.                 for (int z = 0; z < up; z++) {
  124.                     for (int i1 = 0; i1 < up; i1++) {
  125.                         for (int j1 = 0; j1 < up; j1++) {
  126.                             for (int z1 = 0; z1 < up; z1++) {
  127.                                 if (arrays[i1][j1][z1] > arrays[i][j][z]) {
  128.                                     temp = arrays[i1][j1][z1];
  129.                                     arrays[i1][j1][z1] = arrays[i][j][z];
  130.                                     arrays[i][j][z] = temp;
  131.                                     time++;
  132.                                     printMatrixToConsole(arrays, time);
  133.                                 }
  134.                             }
  135.                         }
  136.                     }
  137.                 }
  138.             }
  139.         }
  140.     }
  141.  
  142.     private static int chooseInput() {
  143.         boolean isIncorrect;
  144.         String line;
  145.         do {
  146.             isIncorrect = false;
  147.             System.out.println("Do you want to input from file? (y/n)");
  148.             line = scConsole.nextLine().toLowerCase();
  149.             if (!line.equals("y") && !line.equals("n") && !line.equals("")) {
  150.                 isIncorrect = true;
  151.                 System.out.println("Enter valid answer");
  152.             }
  153.         } while (isIncorrect);
  154.         if (line.equals("y") || line.equals("")) {
  155.             return 0;
  156.         } else {
  157.             return 1;
  158.         }
  159.     }
  160.  
  161.     private static void outputToFile(int[][][] arrays) {
  162.         PrintWriter out = getOutputFileLocation();
  163.         for (int lay = 0; lay < arrays.length; lay++) {
  164.             out.print("Slay " + (lay + 1) + ":\n");
  165.             for (int lin = 0; lin < arrays.length; lin++) {
  166.                 for (int col = 0; col < arrays.length; col++) {
  167.                     out.print(arrays[lay][lin][col] + " ");
  168.                 }
  169.                 out.print("\n");
  170.             }
  171.             out.println("\n");
  172.         }
  173.         out.close();
  174.     }
  175.  
  176.     public static void main(String[] args) {
  177.         System.out.println("This program sorts a three-dimensional array in ascending order.");
  178.         int chosenInput = chooseInput();
  179.         System.out.println("Enter the matrix dimension");
  180.         int size = matrixSizeInput();
  181.         int[][][] matrixArray = new int[size][size][size];
  182.         if (chosenInput == 0) {
  183.             getArrayFromFile(matrixArray);
  184.         } else {
  185.             matrixArray = getArrayFromConsole(size);
  186.         }
  187.         sortMatrix(matrixArray);
  188.         outputToFile(matrixArray);
  189.     }
  190. }
  191.  
  192.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement