Advertisement
shmeri

01.TheMatrix

Feb 26th, 2020
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.46 KB | None | 0 0
  1. public class Validation {
  2. public static int isPositiveNum(Scanner scanner) {
  3. int firstNum;
  4. do {
  5. System.out.println("Must be positive number between 1 and 10!");
  6. while (!scanner.hasNextInt()) {
  7. System.out.println("Must be positive number between 1 and 10!");
  8. scanner.next(); //This is important!
  9. }
  10. firstNum = scanner.nextInt();
  11. } while (firstNum <= 0 || firstNum > 10);
  12. System.out.println("Thank you! Got it!" );
  13. return firstNum;
  14. }
  15. public static int isNum(Scanner scanner){
  16. int num;
  17. while (!scanner.hasNextInt()){
  18. System.out.println("Please enter number!");
  19. scanner.next();
  20. }
  21. num = scanner.nextInt();
  22. return num;
  23. }
  24.  
  25. }
  26. import java.util.Scanner;
  27.  
  28. public class Main {
  29. public static void main(String[] args) {
  30. Scanner scanner = new Scanner(System.in);
  31. System.out.println("Please enter size of matrix!");
  32. //Validate and get size of matrix.
  33. int size = Validation.isPositiveNum(scanner);
  34. int[][] firstMatrix = new int[size][size];
  35. //Fill first matrix with user input.
  36. for (int i = 0; i < size; i++) {
  37. for (int j = 0; j < size; j++) {
  38. System.out.printf("Please, for first matrix, enter number, for position %d-%d : ", i, j);
  39. int num = Validation.isNum(scanner);
  40. firstMatrix[i][j] = num;
  41. }
  42. }
  43. System.out.println("Thank you! Let`s now fill the second matrix!");
  44. //Fill second matrix with user info.
  45. int[][] secondMatrix = new int[size][size];
  46. for (int i = 0; i < size; i++) {
  47. for (int j = 0; j < size; j++) {
  48. System.out.printf("Please, for second matrix, enter number, for position %d-%d : ", i, j);
  49. int num = Validation.isNum(scanner);
  50. secondMatrix[i][j] = num;
  51. }
  52. }
  53. int doubleSize = size * 2;
  54. //Create new matrix to add first and second.
  55. int[][] firstAndSecondMatrix = new int[size][doubleSize];
  56. for (int i = 0; i < size; i++) {
  57. for (int j = 0; j < doubleSize; j++) {
  58. if (j < size) {
  59. firstAndSecondMatrix[i][j] = firstMatrix[i][j];
  60. } else {
  61. firstAndSecondMatrix[i][j] = secondMatrix[i][j - size];
  62. }
  63. }
  64. }
  65. //Create new matrix for collection the sum of first and second!
  66. int[][] sumMatrix = new int[size][size];
  67. for (int i = 0; i < size; i++) {
  68. for (int j = 0; j < size; j++) {
  69. sumMatrix[i][j] = firstMatrix[i][j] + secondMatrix[i][j];
  70. }
  71. }
  72. //Create a new matrix for direct sum.
  73. int[][] directMatrix = new int[doubleSize][doubleSize];
  74. for (int i = 0; i < doubleSize; i++) {
  75. for (int j = 0; j < doubleSize; j++) {
  76. if (i < size && j < size) {
  77. directMatrix[i][j] = firstMatrix[i][j];
  78. } else if (i >= size && j >= size) {
  79. directMatrix[i][j] = secondMatrix[i - size][j - size];
  80.  
  81. }
  82. //Initialization of empty slots.
  83. //else {
  84. //directMatrix[i][j] = 0;
  85. //}
  86. }
  87. }
  88. //Print results.
  89. System.out.println("First and second matrix : ");
  90. for (int i = 0; i < size; i++) {
  91. for (int j = 0; j < doubleSize; j++) {
  92. System.out.printf("%d ", firstAndSecondMatrix[i][j]);
  93. if (j == size-1)
  94. {
  95. System.out.printf(" | ");
  96. }
  97. }
  98. System.out.println();
  99. }
  100.  
  101. System.out.println("Matrix of sum of first and second matrix : ");
  102. for (int[] row :
  103. sumMatrix) {
  104. for (int num :
  105. row) {
  106. System.out.printf("%d ", num
  107. );
  108. }
  109. System.out.println();
  110. }
  111. System.out.println("Direct matrix :");
  112. for (int[] row :
  113. directMatrix) {
  114. for (int num :
  115. row) {
  116. System.out.printf("%d ", num);
  117. }
  118. System.out.println();
  119. }
  120. }
  121. }
  122.  
  123.  
  124. import java.util.Scanner;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement