0 / 0 / 1
Регистрация: 18.05.2012
Сообщений: 29
1

Класс Arrays

21.05.2012, 02:47. Показов 2194. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста написать такой код. Увы мои познания языка не дают возможности быстро написать код, а очень надо. Заранее благодарю за помощь.

Квадратная матрица симметричная относительно главной диагонали, задана в виде одномерного массива. Восстановить исходную матрицу и напечатать по строкам.
Разработать и использовать в программе метод выведения матрицы на экран, метод, копирующий элементы одномерного массива в верхний треугольник матрицы и метод заполнения матрицы случайными числами

В коде активно используется класс Arrays.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2012, 02:47
Ответы с готовыми решениями:

2d arrays
Помогите пожалуйста найти ошибку в следующем коде: public boolean checkIfAscending(int...

Arrays.sort()
После сортировки в начале стоят слова с верхним регистром(отсортированные) , потом отсортированные...

Функция Arrays.sort()
Подскажите пожалуйста, почему функция Arrays.sort() возвращает всем элементам массива значение "0"....

Лямбда-выражение в Arrays.sort
Здравствуйте! Компилятор почему-то ругается на строку с лямбда-выражением, используемым в методе...

5
487 / 333 / 71
Регистрация: 24.12.2011
Сообщений: 591
21.05.2012, 15:06 2
Цитата Сообщение от NickolasAnnish Посмотреть сообщение
В коде активно используется класс Arrays
это нужно по условию?

Добавлено через 18 минут
и вопрос вдогонку. Одномерный массив содержит элементы только для верхнего треуголника?
0
0 / 0 / 1
Регистрация: 18.05.2012
Сообщений: 29
21.05.2012, 22:45  [ТС] 3
Цитата Сообщение от exiqa Посмотреть сообщение
и вопрос вдогонку. Одномерный массив содержит элементы только для верхнего треуголника?
А вот этого я сам не знаю. Я задание переписал как было.
Судя по всему матрица состоит полностью из массива, но элементы массива симметричны по этим самым треугольникам.

Цитата Сообщение от exiqa Посмотреть сообщение
это нужно по условию?
Тема самой работы: "Передача в методы ссылок на массивы. Методы класса Arrays"
0
487 / 333 / 71
Регистрация: 24.12.2011
Сообщений: 591
21.05.2012, 23:26 4
Вариант 1, одномерный массив содержит элементы только для верхнего треугольника
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import java.util.Arrays;
 
public class Matrix {
 
    public static void printMatrix(int[][] matrix) {
        for (int[] array : matrix) {
            System.out.println(Arrays.toString(array));
        }
    }
    
    public static void fillUpperTriangle(int[][] matrix, int[] array) {
        int length = matrix.length;
        int index = 0;
        for (int i = 0; i < length; i++) {
            for (int j = i; j < length; j++) {
                matrix[i][j] = array[index++];
            }
        }
    }
    
    public static int[][] createSymmetricMatrix(int[] array) {  
        int size = (int) Math.sqrt(array.length * 2);
        int[][] matrix = new int[size][size];
        fillUpperTriangle(matrix, array);
        for (int i = 1; i < matrix.length; i++) {
            for (int j = 0; j < i; j++) {
                matrix[i][j] = matrix[j][i];
            }
        }
        return matrix;
    }
    
    public static void main(String[] args) {
        
        int[] array = { 1, 3, 0, 2, 6, 5 };
        int[][] matrix = createSymmetricMatrix(array);
        printMatrix(matrix);
 
    }
 
}
[1, 3, 0]
[3, 2, 6]
[0, 6, 5]
Вариант 2, когда массив содержит все элементы
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.util.Arrays;
 
public class Matrix {
    
    public static void printMatrix(int[][] matrix) {
        for (int[] array : matrix) {
            System.out.println(Arrays.toString(array));
        }
    }
    
    public static int[][] createSymmetricMatrix(int[] array) {
        int size = (int) Math.sqrt(array.length);
        int[][] matrix = new int[size][size];
        int from = 0, to = size, i = 0;
        while (i < size) {
            matrix[i] = Arrays.copyOfRange(array, from, to);
            from = to;
            to += size;
            i++;
        }
        return matrix;
    }
    
    public static void main(String[] args) {
        
        int[] array = { 1, 3, 0, 3, 2, 6, 0, 6, 5 };
        int[][] matrix = createSymmetricMatrix(array);
        printMatrix(matrix);
        
    }
 
}
[1, 3, 0]
[3, 2, 6]
[0, 6, 5]
1
0 / 0 / 1
Регистрация: 18.05.2012
Сообщений: 29
22.05.2012, 02:20  [ТС] 5
Огромное спасибо за помощь, но есть два вопроса.
Первый: можно ли длину массива вводить с клавиатуры?(Пытался через сканнер - не получилось, через Math.random - тоже)
Второй вытекает из первого: если нельзя длину массива ввести с клавиатуры, то можно ли увеличить его длину? Поскольку попытки добавить элемент в массив не увенчались успехом.
0
487 / 333 / 71
Регистрация: 24.12.2011
Сообщений: 591
22.05.2012, 11:17 6
Цитата Сообщение от NickolasAnnish Посмотреть сообщение
метод заполнения матрицы случайными числами
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.util.Random;
import java.util.Scanner;
 
public class Matrix {
 
    public static int[][] generateRandomMatrix(int size) {
        Random rand = 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] = rand.nextInt();
            }
        }
        return matrix;
    }
    
    public static void main(String[] args) {
        
        System.out.print("Input matrix size -> ");
        int size = new Scanner(System.in).nextInt();
        int[][] matrix = generateRandomMatrix(size);
 
    }
 
}
длину массива после создания изменить нельзя
0
22.05.2012, 11:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2012, 11:17
Помогаю со студенческими работами здесь

Что делает Arrays.sort(...)
Arrays.sort(...)...что этот массив делаеть? Где можно подробно о нем почитать ?

Как убрать кавычки из вывода Arrays.tostring?
Здравствуйте! Задался вопросом, как убрать кавычки (которые еще и развернулись наизнанку после...

Arrays.asList для примитивного и объектного типов
Не могу понять почему, то ли после отпуска туплю, то ли еще что.. Почему для Integer array =...

Как расширить массив, не используя arrays.copy
Пробую написать метод для расширения масива при добавлении елемента по чсету большего чем размер...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru