Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- import java.util.HashSet;
- import java.io.*;
- public class Main {
- private static final Scanner scanner = new Scanner(System.in);
- private static Scanner fileScanner;
- static void printTask() {
- System.out.println("Пересечение множеств");
- }
- static int askUserAboutInput() {
- int answer = 0;
- boolean isCorrect;
- do {
- System.out.println("Если хотите ввести текст с консоли - введите 0, если хотите считать с файла - введите 1");
- isCorrect = true;
- try {
- answer = Integer.parseInt(scanner.nextLine());
- } catch (Exception e) {
- isCorrect = false;
- System.out.println("Проверьте корректность введенных данных.");
- }
- if (isCorrect && (answer < 0 || answer > 1)) {
- isCorrect = false;
- System.out.println("Проверьте корректность введенных данных.");
- }
- } while(!isCorrect);
- return answer;
- }
- static int askUserAboutOutput() {
- int answer = 0;
- boolean isCorrect;
- do {
- System.out.println("Если хотите вывести текст в файл - введите 1, нет - введите 0");
- isCorrect = true;
- try {
- answer = Integer.parseInt(scanner.nextLine());
- } catch (Exception e) {
- isCorrect = false;
- System.out.println("Проверьте корректность введенных данных.");
- }
- if (isCorrect && (answer < 0 || answer > 1)) {
- isCorrect = false;
- System.out.println("Проверьте корректность введенных данных.");
- }
- } while (!isCorrect);
- return answer;
- }
- static String getPath() {
- boolean isCorrect;
- String path;
- do {
- isCorrect = true;
- System.out.println("Введите полный путь к файлу:");
- path = scanner.nextLine();
- File file = new File(path);
- if (!file.exists()) {
- System.out.println("Проверьте правильность введенной директории.");
- isCorrect = false;
- }
- } while (!isCorrect);
- return path;
- }
- static int getSizeFromConsole() {
- final int MAX = 15;
- final int MIN = 0;
- int size = 0;
- boolean isCorrect;
- do {
- isCorrect = true;
- System.out.println("Введите размер множества");
- try {
- size = Integer.parseInt(scanner.nextLine());
- } catch (Exception e) {
- isCorrect = false;
- System.out.println("Проверьте корректность введенных данных");
- }
- if (isCorrect && (size > MAX || size < MIN)) {
- isCorrect = false;
- System.out.println("Вы вышли за диапазон [1..15]");
- }
- } while (!isCorrect);
- return size;
- }
- static HashSet<Integer> getSetFromConsole() {
- int size = getSizeFromConsole();
- boolean isCorrect;
- HashSet<Integer> setOfInteger = new HashSet<>();
- for (int i = 0; i < size; i++) {
- do {
- isCorrect = true;
- System.out.print("Input " + (i + 1) + " element = ");
- try {
- setOfInteger.add(Integer.parseInt(scanner.nextLine()));
- } catch (Exception e) {
- isCorrect = false;
- System.out.println("Error");
- }
- } while (!isCorrect);
- }
- return setOfInteger;
- }
- static void printConsole(HashSet<Integer> setOfInt) {
- System.out.print("Set { ");
- for(int element: setOfInt)
- System.out.print(element + " ");
- System.out.println("}");
- }
- static int getSizeFromFile(String path) {
- int size;
- final int MAX = 15;
- final int MIN = 0;
- try {
- size = fileScanner.nextInt();
- } catch (Exception e) {
- System.out.println("Error");
- System.out.println("Bad data");
- size = getSizeFromConsole();
- }
- if (size > MAX || size < MIN) {
- System.out.println("Error");
- size = getSizeFromConsole();
- }
- return size;
- }
- static int getElementFromConsole() {
- int num = 0;
- boolean isCorrect;
- do {
- isCorrect = true;
- try {
- num = scanner.nextInt();
- } catch (Exception e) {
- isCorrect = false;
- System.out.println("Error");
- }
- } while (!isCorrect);
- return num;
- }
- static HashSet<Integer> getSetFromFile(String path) {
- int size = getSizeFromFile(path);
- int element;
- HashSet<Integer> setOfInt = new HashSet<>();
- for (int i = 0; i < size; i++) {
- try {
- setOfInt.add(Integer.parseInt(fileScanner.next()));
- } catch (Exception e) {
- System.out.println("Error");
- element = getElementFromConsole();
- setOfInt.add(element);
- }
- }
- return setOfInt;
- }
- public static void main(String[] args) throws FileNotFoundException{
- String path;
- HashSet<Integer> firstSetOfInteger = new HashSet<>();
- HashSet<Integer> secondSetOfInteger = new HashSet<>();
- HashSet<Integer> thirdSetOfInteger = new HashSet<>();
- printTask();
- if (askUserAboutInput() == 1) {
- path = getPath();
- //fileScanner = new Scanner(new File(path));
- //System.out.println("Первое множество:");
- firstSetOfInteger = getSetFromFile(path);
- printConsole(firstSetOfInteger);
- //System.out.println("Второе множество:");
- secondSetOfInteger = getSetFromFile(path);
- printConsole(secondSetOfInteger);
- //System.out.println("Третье множество:");
- thirdSetOfInteger = getSetFromFile(path);
- printConsole(thirdSetOfInteger);
- }
- else {
- System.out.println("Первое множество:");
- firstSetOfInteger = getSetFromConsole();
- printConsole(firstSetOfInteger);
- System.out.println("Второе множество:");
- secondSetOfInteger = getSetFromConsole();
- printConsole(secondSetOfInteger);
- System.out.println("Третье множество:");
- thirdSetOfInteger = getSetFromConsole();
- printConsole(thirdSetOfInteger);
- }
- HashSet<Integer> fourthSetOfInteger = new HashSet<>();
- for (int element: firstSetOfInteger)
- for (int element1 : secondSetOfInteger)
- if (element == element1)
- fourthSetOfInteger.add(element);
- System.out.println("Четвёртое множество, полученное при пересечении множеств 1 и 2:");
- for (int element : fourthSetOfInteger)
- System.out.print(element + " ");
- System.out.println();
- System.out.println("Числа четвортого множества, которые делятся на 3 без остатка:");
- for (int element : fourthSetOfInteger)
- if (element % 3 == 0)
- System.out.print(element + " ");
- System.out.println();
- //HashSet<Integer> fifthSetOfInteger = new HashSet<>();
- int count = 0;
- for (int elem: thirdSetOfInteger)
- for (int elem1: fourthSetOfInteger)
- if (elem == elem1)
- //fifthSetOfInteger.add(elem);
- count++;
- //if(thirdSetOfInteger.size() == fifthSetOfInteger.size())
- if (thirdSetOfInteger.size() == count)
- System.out.println("Множество 3 является подмножеством 4 множества");
- else
- System.out.println("Множество 3 не является подмножеством 4 множества");
- scanner.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement