Advertisement
venik2405

lab2_5

Nov 22nd, 2020
303
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.13 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.Scanner;
  3.  
  4. public class lab2_5 {
  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 void createTriangle(int size, int[][] triangle) {
  49.         for (int n = 0; n <= size; n++) {
  50.             triangle[n][0] = triangle[n][n] = 1;
  51.             for (int k = 1; k < n; k++) {
  52.                 triangle[n][k] = triangle[n - 1][k - 1] + triangle[n - 1][k];
  53.             }
  54.         }
  55.     }
  56.  
  57.     private static void resultPrint(int[][] triangle, int size) {
  58.         for (int i = 0; i <= size; i++) {
  59.             for (int j = 0; j <= i; j++) {
  60.                 System.out.print(triangle[i][j] + " ");
  61.             }
  62.             System.out.println();
  63.         }
  64.     }
  65.  
  66.     private static int getSizeFromConsole() {
  67.         final int MIN_VALUE = 1;
  68.         final int MAX_VALUE = 30;
  69.         int size = 0;
  70.         boolean isIncorrect;
  71.         do {
  72.             isIncorrect = false;
  73.             try {
  74.                 size = Integer.parseInt(scConsole.nextLine());
  75.             } catch (Exception e) {
  76.                 System.out.println("Enter the number");
  77.                 isIncorrect = true;
  78.             }
  79.             if ((!isIncorrect) && ((size < MIN_VALUE) || (size > MAX_VALUE))) {
  80.                 System.out.println("Please enter a natural value less than 30");
  81.                 isIncorrect = true;
  82.             }
  83.         } while (isIncorrect);
  84.         return size;
  85.     }
  86.  
  87.     private static int getSizeFromFile() {
  88.         final int MIN_VALUE = 1;
  89.         final int MAX_VALUE = 30;
  90.         boolean isIncorrect = false;
  91.         int size = 0;
  92.         Scanner file = getInputFileLocation();
  93.         do {
  94.             try {
  95.                 size = file.nextInt();
  96.             } catch (Exception e) {
  97.                 isIncorrect = true;
  98.                 System.out.println("Enter natural number");
  99.             }
  100.             if ((!isIncorrect) && ((size < MIN_VALUE) || (size > MAX_VALUE))) {
  101.                 System.out.println("Please enter a natural value less than 30");
  102.                 isIncorrect = true;
  103.             }
  104.         } while (isIncorrect);
  105.         return size;
  106.     }
  107.  
  108.     private static int chooseInput() {
  109.         boolean isIncorrect;
  110.         String line;
  111.         do {
  112.             isIncorrect = false;
  113.             System.out.println("Do you want to input from file? (y/n)");
  114.             line = scConsole.nextLine().toLowerCase();
  115.             if (!line.equals("y") && !line.equals("n") && !line.equals("")) {
  116.                 isIncorrect = true;
  117.                 System.out.println("Enter valid answer");
  118.             }
  119.         } while (isIncorrect);
  120.         if (line.equals("y") || line.equals("")) {
  121.             return 0;
  122.         } else {
  123.             return 1;
  124.         }
  125.     }
  126.  
  127.     private static void outputToFile(int[][] triangle, int size) {
  128.         PrintWriter out = getOutputFileLocation();
  129.         for (int i = 0; i <= size; i++) {
  130.             for (int j = 0; j <= i; j++) {
  131.                 out.print(triangle[i][j] + " ");
  132.             }
  133.             out.println();
  134.         }
  135.         out.close();
  136.     }
  137.  
  138.     public static void main(String[] args) {
  139.         int[][] triangle;
  140.         int size;
  141.         System.out.println("Данная программа строит треугольник Паскаля заданного размера.");
  142.         int chosenInput = chooseInput();
  143.         System.out.println("Enter the size of Pascal`s triangle");
  144.         if (chosenInput == 0) {
  145.             size = getSizeFromFile();
  146.         } else {
  147.             size = getSizeFromConsole();
  148.         }
  149.         triangle = new int[size + 1][size + 1];
  150.         createTriangle(size, triangle);
  151.         System.out.println("Triangle:");
  152.         resultPrint(triangle, size);
  153.         outputToFile(triangle, size);
  154.     }
  155. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement