Advertisement
grioool

Untitled

Nov 13th, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.70 KB | None | 0 0
  1. public class Program10 {
  2.  
  3. public static void main(String[] args) {
  4.  
  5. int[] X1 = {1, 2, 3, 4, 5, 6};
  6. int[] X2 = {1, 3, 4, 5, 6};
  7. int[] X3 = {1, 5};
  8.  
  9. int[] Y = calculateIntersectionOf2Sets(X1, X2);
  10. System.out.print("результатом пересечения множества ");
  11. printSet(X1);
  12. System.out.print(" со множеством ");
  13. printSet(X2);
  14. System.out.print(" является множество ");
  15. printSet(Y);
  16. System.out.println();
  17.  
  18. int[] setElementsDividedBy3 = getArrayElementsDividedBy(Y, 3);
  19. System.out.print("у множества ");
  20. printSet(Y);
  21. System.out.print(" элементы, которые делятся на 3, образуют множество ");
  22. printSet(setElementsDividedBy3);
  23. System.out.println();
  24.  
  25. boolean isx3inY = isOneSetInAnother(X3, Y);
  26. System.out.print("множество ");
  27. printSet(X3);
  28. if (isx3inY) {
  29. System.out.print(" является подмножеством множества ");
  30. } else {
  31. System.out.print(" НЕ является подмножеством множества ");
  32. }
  33. printSet(Y);
  34. }
  35.  
  36. private static int[] calculateIntersectionOf2Sets(int[] set1, int[] set2) {
  37. int resultSetLength = calculatePossibleResultSetLength(set1, set2);
  38. int[] resultSet = new int[resultSetLength];
  39. int realLength = 0;
  40.  
  41. for (int i = 0; i < set1.length; i++) {
  42. int element = set1[i];
  43. if (isElementInSet(set2, element)) {
  44. resultSet[realLength] = element;
  45. realLength++;
  46. }
  47. }
  48.  
  49. return Arrays.copyOfRange(resultSet, 0, realLength);
  50. }
  51.  
  52. private static int calculatePossibleResultSetLength(int[] set1, int[] set2) {
  53. if (set1.length > set2.length) {
  54. return set1.length;
  55. } else {
  56. return set2.length;
  57. }
  58. }
  59.  
  60. private static boolean isElementInSet(int[] set, int element) {
  61. boolean result = false;
  62.  
  63. for (int i = 0; i < set.length; i++) {
  64. if (set[i] == element) {
  65. result = true;
  66. break;
  67. }
  68. }
  69.  
  70. return result;
  71. }
  72.  
  73. private static int[] getArrayElementsDividedBy(int[] numbers, int divider) {
  74. int[] resultSet = new int[numbers.length];
  75. int realLength = 0;
  76.  
  77. for (int i = 0; i < numbers.length; i++) {
  78. if (isDividedBy(numbers[i], divider)) {
  79. resultSet[realLength] = numbers[i];
  80. realLength++;
  81. }
  82. }
  83.  
  84. return Arrays.copyOfRange(resultSet, 0, realLength);
  85. }
  86.  
  87. private static boolean isDividedBy(int number, int divider) {
  88. return number % divider == 0;
  89. }
  90.  
  91. private static void printSet(int[] set) {
  92. if (set.length == 0) {
  93. System.out.print("\"пустое множество\"");
  94. } else {
  95. System.out.print("{");
  96. for (int i = 0; i < set.length; i++) {
  97. System.out.print(set[i]);
  98. if (i < set.length - 1) {
  99. System.out.print(", ");
  100. }
  101. }
  102. System.out.print("}");
  103. }
  104. }
  105.  
  106. private static boolean isOneSetInAnother(int[] set1, int[] set2) {
  107. boolean result = true;
  108.  
  109. for (int i = 0; i < set1.length; i++) {
  110. if (!isElementInSet(set2, set1[i])) {
  111. result = false;
  112. break;
  113. }
  114. }
  115.  
  116. return result;
  117. }
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement