Advertisement
SmnVadik

Untitled

Dec 4th, 2022
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.71 KB | None | 0 0
  1. import java.util.Scanner;
  2. import java.util.HashSet;
  3. import java.io.*;
  4. public class Main {
  5.     private static final Scanner scanner = new Scanner(System.in);
  6.     private static Scanner fileScanner;
  7.  
  8.     static void printTask() {
  9.         System.out.println("Пересечение множеств");
  10.     }
  11.  
  12.     static int askUserAboutInput() {
  13.         int answer = 0;
  14.         boolean isCorrect;
  15.         do {
  16.             System.out.println("Если хотите ввести текст с консоли - введите 0, если хотите считать с файла - введите 1");
  17.                     isCorrect = true;
  18.             try {
  19.                 answer = Integer.parseInt(scanner.nextLine());
  20.             } catch (Exception e) {
  21.                 isCorrect = false;
  22.                 System.out.println("Проверьте корректность введенных данных.");
  23.             }
  24.             if (isCorrect && (answer < 0 || answer > 1)) {
  25.                 isCorrect = false;
  26.                 System.out.println("Проверьте корректность введенных данных.");
  27.             }
  28.         } while(!isCorrect);
  29.         return answer;
  30.     }
  31.  
  32.     static int askUserAboutOutput() {
  33.         int answer = 0;
  34.         boolean isCorrect;
  35.         do {
  36.             System.out.println("Если хотите вывести текст в файл - введите 1, нет - введите 0");
  37.                     isCorrect = true;
  38.             try {
  39.                 answer = Integer.parseInt(scanner.nextLine());
  40.             } catch (Exception e) {
  41.                 isCorrect = false;
  42.                 System.out.println("Проверьте корректность введенных данных.");
  43.             }
  44.             if (isCorrect && (answer < 0 || answer > 1)) {
  45.                 isCorrect = false;
  46.                 System.out.println("Проверьте корректность введенных данных.");
  47.             }
  48.         } while (!isCorrect);
  49.         return answer;
  50.     }
  51.  
  52.     static String getPath() {
  53.         boolean isCorrect;
  54.         String path;
  55.         do {
  56.             isCorrect = true;
  57.             System.out.println("Введите полный путь к файлу:");
  58.             path = scanner.nextLine();
  59.             File file = new File(path);
  60.             if (!file.exists()) {
  61.                 System.out.println("Проверьте правильность введенной директории.");
  62.                 isCorrect = false;
  63.             }
  64.         } while (!isCorrect);
  65.         return path;
  66.     }
  67.  
  68.     static int getSizeFromConsole() {
  69.         final int MAX = 15;
  70.         final int MIN = 0;
  71.         int size = 0;
  72.         boolean isCorrect;
  73.         do {
  74.             isCorrect = true;
  75.             System.out.println("Введите размер множества");
  76.             try {
  77.                 size = Integer.parseInt(scanner.nextLine());
  78.             } catch (Exception e) {
  79.                 isCorrect = false;
  80.                 System.out.println("Проверьте корректность введенных данных");
  81.             }
  82.             if (isCorrect && (size > MAX || size < MIN)) {
  83.                 isCorrect = false;
  84.                 System.out.println("Вы вышли за диапазон [1..15]");
  85.             }
  86.         } while (!isCorrect);
  87.         return size;
  88.     }
  89.  
  90.     static HashSet<Integer> getSetFromConsole() {
  91.         int size = getSizeFromConsole();
  92.         boolean isCorrect;
  93.         HashSet<Integer> setOfInteger = new HashSet<>();
  94.         for (int i = 0; i < size; i++) {
  95.             do {
  96.                 isCorrect = true;
  97.                 System.out.print("Input " + (i + 1) + " element = ");
  98.                 try {
  99.                     setOfInteger.add(Integer.parseInt(scanner.nextLine()));
  100.                 } catch (Exception e) {
  101.                     isCorrect = false;
  102.                     System.out.println("Error");
  103.                 }
  104.             } while (!isCorrect);
  105.         }
  106.         return setOfInteger;
  107.     }
  108.  
  109.     static void printConsole(HashSet<Integer> setOfInt) {
  110.         System.out.print("Set { ");
  111.         for(int element: setOfInt)
  112.             System.out.print(element + " ");
  113.         System.out.println("}");
  114.     }
  115.  
  116.     static int getSizeFromFile(String path) {
  117.         int size;
  118.         final int MAX = 15;
  119.         final int MIN = 0;
  120.         try {
  121.             size = fileScanner.nextInt();
  122.         } catch (Exception e) {
  123.             System.out.println("Error");
  124.             System.out.println("Bad data");
  125.             size = getSizeFromConsole();
  126.         }
  127.         if (size > MAX || size < MIN) {
  128.             System.out.println("Error");
  129.             size = getSizeFromConsole();
  130.         }
  131.         return size;
  132.     }
  133.  
  134.     static int getElementFromConsole() {
  135.         int num = 0;
  136.         boolean isCorrect;
  137.         do {
  138.             isCorrect = true;
  139.             try {
  140.                 num = scanner.nextInt();
  141.             } catch (Exception e) {
  142.                 isCorrect = false;
  143.                 System.out.println("Error");
  144.             }
  145.         } while (!isCorrect);
  146.         return num;
  147.     }
  148.  
  149.     static HashSet<Integer> getSetFromFile(String path) {
  150.         int size = getSizeFromFile(path);
  151.         int element;
  152.         HashSet<Integer> setOfInt = new HashSet<>();
  153.         for (int i = 0; i < size; i++) {
  154.             try {
  155.                 setOfInt.add(Integer.parseInt(fileScanner.next()));
  156.             } catch (Exception e) {
  157.                 System.out.println("Error");
  158.                 element = getElementFromConsole();
  159.                 setOfInt.add(element);
  160.             }
  161.         }
  162.         return setOfInt;
  163.     }
  164.  
  165.  
  166.     public static void main(String[] args) throws FileNotFoundException{
  167.         String path;
  168.         HashSet<Integer> firstSetOfInteger = new HashSet<>();
  169.         HashSet<Integer> secondSetOfInteger = new HashSet<>();
  170.         HashSet<Integer> thirdSetOfInteger = new HashSet<>();
  171.  
  172.         printTask();
  173.         if (askUserAboutInput() == 1) {
  174.             path = getPath();
  175.             //fileScanner = new Scanner(new File(path));
  176.  
  177.             //System.out.println("Первое множество:");
  178.             firstSetOfInteger = getSetFromFile(path);
  179.             printConsole(firstSetOfInteger);
  180.             //System.out.println("Второе множество:");
  181.             secondSetOfInteger = getSetFromFile(path);
  182.             printConsole(secondSetOfInteger);
  183.             //System.out.println("Третье множество:");
  184.             thirdSetOfInteger = getSetFromFile(path);
  185.             printConsole(thirdSetOfInteger);
  186.         }
  187.         else {
  188.             System.out.println("Первое множество:");
  189.             firstSetOfInteger = getSetFromConsole();
  190.             printConsole(firstSetOfInteger);
  191.             System.out.println("Второе множество:");
  192.             secondSetOfInteger = getSetFromConsole();
  193.             printConsole(secondSetOfInteger);
  194.             System.out.println("Третье множество:");
  195.             thirdSetOfInteger = getSetFromConsole();
  196.             printConsole(thirdSetOfInteger);
  197.         }
  198.  
  199.         HashSet<Integer> fourthSetOfInteger = new HashSet<>();
  200.         for (int element: firstSetOfInteger)
  201.             for (int element1 : secondSetOfInteger)
  202.                 if (element == element1)
  203.                     fourthSetOfInteger.add(element);
  204.  
  205.         System.out.println("Четвёртое множество, полученное при пересечении множеств 1 и 2:");
  206.         for (int element : fourthSetOfInteger)
  207.                 System.out.print(element + " ");
  208.         System.out.println();
  209.  
  210.         System.out.println("Числа четвортого множества, которые делятся на 3 без остатка:");
  211.         for (int element : fourthSetOfInteger)
  212.             if (element % 3 == 0)
  213.                 System.out.print(element + " ");
  214.         System.out.println();
  215.         //HashSet<Integer> fifthSetOfInteger = new HashSet<>();
  216.         int count = 0;
  217.         for (int elem: thirdSetOfInteger)
  218.             for (int elem1: fourthSetOfInteger)
  219.                 if (elem == elem1)
  220.                     //fifthSetOfInteger.add(elem);
  221.                     count++;
  222.         //if(thirdSetOfInteger.size() == fifthSetOfInteger.size())
  223.         if (thirdSetOfInteger.size() == count)
  224.             System.out.println("Множество 3 является подмножеством 4 множества");
  225.         else
  226.             System.out.println("Множество 3 не является подмножеством 4 множества");
  227.  
  228.         scanner.close();
  229.     }
  230. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement