import java.util.*; class PA1 { public static void main(final String[] args) { // //print ASCII printASCIIValues("Java"); // //1D Array int[] arr = {1,2,3,4,5}; int [] newArr = rotate1DArray(arr, -14); System.out.println(Arrays.toString(newArr)); // 2D Array int [][] arr2 = { {1,2,3}, {4,5,6}, {7,8,9}, }; int [][] rotateArr2D = rotate2DArray(arr2, -4, false); System.out.println(Arrays.deepToString(rotateArr2D)); //printing Introduction printIntroduction(null); // Test your methods here } public static void printASCIIValues(String input){ for(int i = 0; i< input.length(); ++i){ System.out.println(input.charAt(i) + " " + (int)input.charAt(i)); } } // // TODO: Fill in this method for Exercise 1 public static int[] rotate1DArray(final int[] input, final int rotations) { final int[] arr1 = input; final int[] arr2 = new int[input.length]; if (rotations > input.length) { final int newRot = rotations % input.length; for (int i = newRot; i < input.length; ++i) { arr2[i] = arr1[i - newRot]; } for (int i = 0; i < newRot; ++i) { arr2[i] = input[input.length - newRot + i]; } } else if (rotations < 0) { final int newRot2 = rotations % input.length * -1; for (int i = 0; i < input.length - newRot2; ++i) { arr2[i] = arr1[newRot2 + i]; } for (int i = 0; i < newRot2; ++i) { arr2[input.length - newRot2 + i] = input[i]; } } else { for (int i = rotations; i < input.length; ++i) { arr2[i] = arr1[i - rotations]; } for (int i = 0; i < rotations; ++i) { arr2[i] = arr1[input.length - rotations + i]; } } // TODO: Fill in this method for Exercise 2 return arr2; } // 2D array rotation public static int[][] rotate2DArray(final int[][] input, final int rotations, final boolean rotateRows) { final int[][] newArr = new int[input.length][input[0].length]; if (rotateRows == false && rotations > input[0].length) { final int newFalCol1 = rotations % input[0].length; for (int i = 0; i < input.length; i++) { for (int j = newFalCol1; j < input[0].length; j++) { newArr[i][j] = input[i][j - newFalCol1]; } } for (int i = 0; i < input.length; ++i) { for (int j = 0; j < newFalCol1; ++j) { newArr[i][j] = input[i][input[0].length - newFalCol1 + j]; } } } else if (rotateRows == false && rotations < 0) { final int newFalCol1 = rotations % input[0].length * -1; for (int i = 0; i < input.length; i++) { for (int j = newFalCol1; j < input[0].length; j++) { newArr[i][j - newFalCol1] = input[i][j]; } } for (int i = 0; i < input.length; i++) { for (int j = 0; j < newFalCol1; j++) { newArr[i][input[0].length + j - newFalCol1] = input[i][j]; } } } else if (rotateRows == true && rotations > input.length) { final int newTruRow = rotations % input.length; for (int i = newTruRow; i < input.length; i++) { for (int j = 0; j < input[0].length; j++) { newArr[i][j] = input[i - newTruRow][j]; } } // Top left box for (int i = 0; i < newTruRow; i++) { for (int j = 0; j < input[0].length; j++) { newArr[i][j] = input[input.length - newTruRow + i][j]; } } } else if (rotateRows == true && rotations < 0) { final int newTruRow = rotations % input.length * -1; for (int i = newTruRow; i < input.length; i++) { for (int j = 0; j < input[0].length; j++) { newArr[i - newTruRow][j] = input[i][j]; } } // Top left box for (int i = 0; i < newTruRow; i++) { for (int j = 0; j < input[0].length; j++) { newArr[input.length - newTruRow + i][j] = input[i][j]; } } } else if (rotateRows == false) { for (int i = 0; i < input.length; i++) { for (int j = rotations; j < input[0].length; j++) { newArr[i][j] = input[i][j - rotations]; } } for (int i = 0; i < input.length; ++i) { for (int j = 0; j < rotations; ++j) { newArr[i][j] = input[i][input[0].length - rotations + j]; } } } else if (rotateRows == true) { for (int i = rotations; i < input.length; i++) { for (int j = 0; j < input[0].length; j++) { newArr[i][j] = input[i - rotations][j]; } } // Top left box for (int i = 0; i < rotations; i++) { for (int j = 0; j < input[0].length; j++) { newArr[i][j] = input[input.length - rotations + i][j]; } } } // TODO: Fill in this method for Exercise 3 return newArr; } public static void printIntroduction(final String name) { // can be a maximum of 30 characters // 1st Line 30 asterick // 2nd Line start with * and end with * // 3rd Line Start with *, space, Message"Hello ! Welcome to CSE8B!", // space, asterisk if(name == null || name == ""){ String intro = ("* Hello! Welcome to CSE 8B! *"); for (int i = 0; i < intro.length(); i++) { System.out.print("*"); } System.out.print("\n"); System.out.print("*"); for (int i = 0; i < intro.length() - 2; i++) { System.out.print(" "); } System.out.print("*"); System.out.print("\n"); System.out.print(intro); System.out.print("\n"); System.out.print("*"); for (int i = 0; i < intro.length() - 2; i++) { System.out.print(" "); } System.out.print("*"); System.out.print("\n"); for (int i = 0; i < intro.length(); i++) { System.out.print("*"); } } else { String intro = "* Hello" +" "+ name + "! Welcome to CSE 8B!" + " " + "*"; for(int i = 0; i < intro.length(); i++){ System.out.print("*"); } System.out.print("\n"); System.out.print("*"); for(int i = 0; i < intro.length() - 2; i++){ System.out.print(" "); } System.out.print("*"); System.out.print("\n"); System.out.print(intro); System.out.print("\n"); System.out.print("*"); for (int i = 0; i < intro.length() - 2; i++) { System.out.print(" "); } System.out.print("*"); System.out.print("\n"); for (int i = 0; i < intro.length(); i++) { System.out.print("*"); } } // TODO: Fill in this method for Exercise 4 } }