/
evgeniasd
/
HW_Matrix
Обзор
Документация
Войти
/
evgeniasd
/
HW_Matrix
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Matrix.java
84 строки
3 KB
evgeniasd
create: Matrix.java
31 май 2026, 15:04
Верифицирован
31 май 2026, 15:04
416c0f8
Код
Авторство
О чём код?
import java.util.Random; import java.util.Scanner; public class Matrix { public static final int SIZE = 8; public static void main(String[] args) { int[][] matrix = createMatrix(SIZE); System.out.println("Оригинальная матрица:"); printMatrix(matrix); int angle = chooseAngle(); int[][] rotated = rotateMatrix(matrix, angle); System.out.println("\nПовернутая матрица (на " + angle + "° по часовой стрелке):"); printMatrix(rotated); } private static int chooseAngle() { Scanner sc = new Scanner(System.in); while (true) { System.out.println("\nВыберите угол поворота (90, 180 или 270 градусов): "); String input = sc.nextLine(); try { int angle = Integer.parseInt(input); if (angle == 90 || angle == 180 || angle == 270) { return angle; } else { System.out.println("Ошибка: введите 90, 180 или 270."); } } catch (NumberFormatException e) { System.out.println("Ошибка: введите число."); } } } private static int[][] createMatrix(int size) { Random random = new Random(); int[][] matrix = new int[size][size]; for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { matrix[i][j] = random.nextInt(256); } } return matrix; } private static void printMatrix(int[][] matrix) { int size = matrix.length; for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { System.out.printf("%4d", matrix[i][j]); } System.out.println(); } } private static int[][] rotateMatrix(int[][] matrix, int angle) { int[][] result = matrix; // Поворачиваем на 90° нужное количество раз int rotations = angle / 90; for (int r = 0; r < rotations; r++) { result = rotate90(result); } return result; } private static int[][] rotate90(int[][] matrix) { int size = matrix.length; int[][] result = new int[size][size]; for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { result[i][j] = matrix[size - 1 - j][i]; } } return result; } }