Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Validation {
- public static int isPositiveNum(Scanner scanner) {
- int firstNum;
- do {
- System.out.println("Must be positive number between 1 and 10!");
- while (!scanner.hasNextInt()) {
- System.out.println("Must be positive number between 1 and 10!");
- scanner.next(); //This is important!
- }
- firstNum = scanner.nextInt();
- } while (firstNum <= 0 || firstNum > 10);
- System.out.println("Thank you! Got it!" );
- return firstNum;
- }
- public static int isNum(Scanner scanner){
- int num;
- while (!scanner.hasNextInt()){
- System.out.println("Please enter number!");
- scanner.next();
- }
- num = scanner.nextInt();
- return num;
- }
- }
- import java.util.Scanner;
- public class Main {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- System.out.println("Please enter size of matrix!");
- //Validate and get size of matrix.
- int size = Validation.isPositiveNum(scanner);
- int[][] firstMatrix = new int[size][size];
- //Fill first matrix with user input.
- for (int i = 0; i < size; i++) {
- for (int j = 0; j < size; j++) {
- System.out.printf("Please, for first matrix, enter number, for position %d-%d : ", i, j);
- int num = Validation.isNum(scanner);
- firstMatrix[i][j] = num;
- }
- }
- System.out.println("Thank you! Let`s now fill the second matrix!");
- //Fill second matrix with user info.
- int[][] secondMatrix = new int[size][size];
- for (int i = 0; i < size; i++) {
- for (int j = 0; j < size; j++) {
- System.out.printf("Please, for second matrix, enter number, for position %d-%d : ", i, j);
- int num = Validation.isNum(scanner);
- secondMatrix[i][j] = num;
- }
- }
- int doubleSize = size * 2;
- //Create new matrix to add first and second.
- int[][] firstAndSecondMatrix = new int[size][doubleSize];
- for (int i = 0; i < size; i++) {
- for (int j = 0; j < doubleSize; j++) {
- if (j < size) {
- firstAndSecondMatrix[i][j] = firstMatrix[i][j];
- } else {
- firstAndSecondMatrix[i][j] = secondMatrix[i][j - size];
- }
- }
- }
- //Create new matrix for collection the sum of first and second!
- int[][] sumMatrix = new int[size][size];
- for (int i = 0; i < size; i++) {
- for (int j = 0; j < size; j++) {
- sumMatrix[i][j] = firstMatrix[i][j] + secondMatrix[i][j];
- }
- }
- //Create a new matrix for direct sum.
- int[][] directMatrix = new int[doubleSize][doubleSize];
- for (int i = 0; i < doubleSize; i++) {
- for (int j = 0; j < doubleSize; j++) {
- if (i < size && j < size) {
- directMatrix[i][j] = firstMatrix[i][j];
- } else if (i >= size && j >= size) {
- directMatrix[i][j] = secondMatrix[i - size][j - size];
- }
- //Initialization of empty slots.
- //else {
- //directMatrix[i][j] = 0;
- //}
- }
- }
- //Print results.
- System.out.println("First and second matrix : ");
- for (int i = 0; i < size; i++) {
- for (int j = 0; j < doubleSize; j++) {
- System.out.printf("%d ", firstAndSecondMatrix[i][j]);
- if (j == size-1)
- {
- System.out.printf(" | ");
- }
- }
- System.out.println();
- }
- System.out.println("Matrix of sum of first and second matrix : ");
- for (int[] row :
- sumMatrix) {
- for (int num :
- row) {
- System.out.printf("%d ", num
- );
- }
- System.out.println();
- }
- System.out.println("Direct matrix :");
- for (int[] row :
- directMatrix) {
- for (int num :
- row) {
- System.out.printf("%d ", num);
- }
- System.out.println();
- }
- }
- }
- import java.util.Scanner;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement