Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 26

Найти элементы, расположенные выше побочной диагонали матрицы, которые удовлетворяют условию: k1 ≥ aij ≤ k2

20.03.2019, 13:02. Показов 2719. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Разработать программу, которая среди элементов, расположенных выше побочной диагонали целочисленной матрицы А, находит те элементы, которые удовлетворяют условию: k1 ≥ aij ≤ k2 , где k1, k2 – заданные целые числа, и формирует из них одномерный массив. Значения элементов матрицы А формируются случайным образом, размер матрицы задается. Помогите плиииз.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.03.2019, 13:02
Ответы с готовыми решениями:

Элементы, расположенные выше главной диагонали, рассчитать как обратные им по знаку (aij = -aij)
Помогите написать программу на С++ Матрица вводится с клавиатуры, причем задаются только элементы, расположенные ниже главной...

Среди элементов, расположенных ниже главной диагонали матрицы, найти те элементы, которые удовлетворяют условию
8. Среди элементов, расположенных ниже главной диагонали мат¬рицы A(6,6), найти те элементы, которые удовлетворяют условию K2 <= Aij...

Среди элементов выше побочной диагонали матрицы найти элементы, удовлетворяющие условию, и занести в массив
Среди элементов, расположенных выше побочной диагонали матрицы N(6,6), найти элементы, удовлетворяющие условию N<=K и N>i+j, и...

10
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
20.03.2019, 13:53
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import java.util.Arrays;
import java.util.Scanner;
 
public class MatrixN {
    public static final int MIN = 0;
    public static final int MAX = 9;
 
    public static void main(String[] args) {
        int size = readConsole("Введите размерность матрицы", 2, 10);
        int[][] matrix = createMatrix(size, MIN, MAX);
        System.out.println("Дана матрица:");
        printMatrix(matrix);
        int[] array = getElementUpDiagonalMatrix(matrix, MAX, MAX);
        System.out.println("Выводим все элементы выше побочной диоганали: " + Arrays.toString(array));
 
        System.out.println("Условие: k1 >= a[i][j] <= k2;");
 
        int kFirst = readConsole("Введите К1", MIN, 1000);
        int kSecond = readConsole("Введите К2", MIN, 1000);
        array = getElementUpDiagonalMatrix(matrix, kFirst, kSecond);
        System.out.println("Ответ: элементы соответствующие условию: " + Arrays.toString(array));
 
    }
 
    private static void printMatrix(int[][] matrix) {
        for (int[] line : matrix) {
            System.out.println(Arrays.toString(line));
        }
    }
 
    private static int readConsole(String text, int min, int max) {
        Scanner read = new Scanner(System.in);
        boolean correct = false;
        int result = 0;
        while (!correct) {
            System.out.print(text + " [" + min + ".." + max + "]: ");
            try {
                result = Integer.parseInt(read.nextLine().trim());
                if (!(correct = result >= min && result <= max)) {
                    System.out.println("Число не удовлетворяет диапазону [" + min + ".." + max + "]. Попробуйте снова...");
                }
            } catch (NumberFormatException e) {
                System.out.println("Вы ввели не число. Попробуйте снова...");
            }
        }
        return result;
    }
 
    private static int[][] createMatrix(int size, int min, int max) {
        int[][] matrix = new int[size][size];
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                matrix[i][j] = (int) (Math.random() * (max - min + 1) + min);
            }
        }
        return matrix;
    }
 
    private static int[] getElementUpDiagonalMatrix(int[][] matrix, int k1, int k2) {
        int[] array = new int[(matrix.length * matrix.length) / 2 - matrix.length / 2];
        int size = matrix[0].length - 2;
        int i = 0;
        int j = 0;
        int count = 0;
        for (int index = 0; index < array.length; index++) {
            if (matrix[i][j] <= k1 && matrix[i][j] <= k2) {
                array[count++] = matrix[i][j];
            }
            if (j < size) {
                j++;
            } else {
                j = 0;
                size--;
                i++;
            }
        }
        return Arrays.copyOf(array, count);
    }
}
вывод:

Java
1
2
3
4
5
6
7
8
9
10
11
12
Введите размерность матрицы [2..10]: 5
Дана матрица:
[2, 9, 9, 7, 2]
[6, 7, 6, 4, 0]
[4, 6, 7, 9, 5]
[1, 5, 9, 8, 3]
[5, 6, 4, 4, 1]
Выводим все элементы выше побочной диоганали: [2, 9, 9, 7, 6, 7, 6, 4, 6, 1]
Условие: k1 >= a[i][j] <= k2;
Введите К1 [0..1000]: 5
Введите К2 [0..1000]: 5
Ответ: элементы соответствующие условию: [2, 4, 1]
1
 Аватар для Aviz__
2739 / 2048 / 507
Регистрация: 17.02.2014
Сообщений: 9,467
20.03.2019, 14:50
LCR, вот тут ниже https://www.cyberforum.ru/java... 21367.html
0
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 26
21.03.2019, 23:53  [ТС]
ArtemFM Спасибо , а можно сделать чтоб столбец и строки вводил пользователь и не ограничивать его.
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
22.03.2019, 00:43
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import java.util.Arrays;
import java.util.Scanner;
 
public class MatrixN {
    public static void main(String[] args) {
        Scanner read = new Scanner(System.in);
 
        System.out.print("Введите размер матрицы: ");
        int size = read.nextInt();
        int[][] matrix = new int[size][size];
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                System.out.print("Введите значение матрицы M[" + i + "][" + j + "]: ");
                matrix[i][j] = read.nextInt();
            }
        }
 
        System.out.println("Дана матрица:");
        printMatrix(matrix);
        int[] array = getElementUpDiagonalMatrix(matrix, Integer.MAX_VALUE, Integer.MAX_VALUE);
        System.out.println("Выводим все элементы выше побочной диоганали: " + Arrays.toString(array));
 
        System.out.println("Условие: k1 >= a[i][j] <= k2;");
 
        System.out.print("Введите К1: ");
        int kFirst = read.nextInt();
        System.out.print("Введите К2: ");
        int kSecond = read.nextInt();
        array = getElementUpDiagonalMatrix(matrix, kFirst, kSecond);
        System.out.println("Ответ: элементы соответствующие условию: " + Arrays.toString(array));
 
    }
 
    private static void printMatrix(int[][] matrix) {
        for (int[] line : matrix) {
            System.out.println(Arrays.toString(line));
        }
    }
 
    private static int[] getElementUpDiagonalMatrix(int[][] matrix, int k1, int k2) {
        int[] array = new int[(matrix.length * matrix.length) / 2 - matrix.length / 2];
        int size = matrix[0].length - 2;
        int i = 0;
        int j = 0;
        int count = 0;
        for (int index = 0; index < array.length; index++) {
            if (matrix[i][j] <= k1 && matrix[i][j] <= k2) {
                array[count++] = matrix[i][j];
            }
            if (j < size) {
                j++;
            } else {
                j = 0;
                size--;
                i++;
            }
        }
        return Arrays.copyOf(array, count);
    }
}
1
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 26
22.03.2019, 15:18  [ТС]
блин извини сам не правильно сформулирова что размер матрицы n,m вводил пользователь и проверялось что точно вводит цифры, а если нет, то выводить ошибку и заново повторить, и заполнять матрицу рандомными числами. БОЛЬШОЕ СПАСИБО и ИЗВИНИ
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
22.03.2019, 15:40
в первом варианте так и есть, только размер матрицы NxN. Потому что иначе как выявить диагональ?
0
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 26
22.03.2019, 16:07  [ТС]
а можно там ограничение убрать?
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
22.03.2019, 16:19
Лучший ответ Сообщение было отмечено LCR как решение

Решение

можно:

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import java.util.Arrays;
import java.util.Scanner;
 
public class MatrixN {
    public static final int MIN = 0;
    public static final int MAX = 9;
 
    public static void main(String[] args) {
        int size = readConsole("Введите размерность матрицы: ");
        int[][] matrix = createMatrix(size, MIN, MAX);
        System.out.println("Дана матрица:");
        printMatrix(matrix);
        int[] array = getElementUpDiagonalMatrix(matrix, MAX, MAX);
        System.out.println("Выводим все элементы выше побочной диоганали: " + Arrays.toString(array));
 
        System.out.println("Условие: k1 >= a[i][j] <= k2;");
 
        int kFirst = readConsole("Введите К1: ");
        int kSecond = readConsole("Введите К2: ");
        array = getElementUpDiagonalMatrix(matrix, kFirst, kSecond);
        System.out.println("Ответ: элементы соответствующие условию: " + Arrays.toString(array));
 
    }
 
    private static void printMatrix(int[][] matrix) {
        for (int[] line : matrix) {
            System.out.println(Arrays.toString(line));
        }
    }
 
    private static int readConsole(String text) {
        Scanner read = new Scanner(System.in);
        boolean correct = false;
        int result = 0;
        while (!correct) {
            System.out.print(text);
            try {
                result = Integer.parseInt(read.nextLine().trim());
                correct = true;
            } catch (NumberFormatException e) {
                System.out.println("Вы ввели не число. Попробуйте снова...");
            }
        }
        return result;
    }
 
    private static int[][] createMatrix(int size, int min, int max) {
        int[][] matrix = new int[size][size];
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                matrix[i][j] = (int) (Math.random() * (max - min + 1) + min);
            }
        }
        return matrix;
    }
 
    private static int[] getElementUpDiagonalMatrix(int[][] matrix, int k1, int k2) {
        int[] array = new int[(matrix.length * matrix.length) / 2 - matrix.length / 2];
        int size = matrix[0].length - 2;
        int i = 0;
        int j = 0;
        int count = 0;
        for (int index = 0; index < array.length; index++) {
            if (matrix[i][j] <= k1 && matrix[i][j] <= k2) {
                array[count++] = matrix[i][j];
            }
            if (j < size) {
                j++;
            } else {
                j = 0;
                size--;
                i++;
            }
        }
        return Arrays.copyOf(array, count);
    }
}
1
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 26
02.04.2019, 20:56  [ТС]
такой вопрос стал у меня я никак не могу реализовать чтоб min и max вводились с клавиатуры . Они вводятся, но не так работает. Помогите.
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package test01;
import java.util.Arrays;
import java.util.Scanner;
 
public class MatrixN {
 
        public static  int a;
        public static  int b;
     
        public static void main(String[] args) {
            int size = readConsole("Введите размерность матрицы: ");
            int[][] matrix = createMatrix(size, a, b);
            System.out.println("Дана матрица:");
            printMatrix(matrix);
            int[] array = getElementUpDiagonalMatrix(matrix, a, a);
            System.out.println("Выводим все элементы выше побочной диоганали: " + Arrays.toString(array));
     
            System.out.println("Условие: k1 >= a[i][j] <= k2;");
     
            int kFirst = readConsole("Введите К1: ");
            int kSecond = readConsole("Введите К2: ");
            array = getElementUpDiagonalMatrix(matrix, kFirst, kSecond);
            System.out.println("Ответ: элементы соответствующие условию: " + Arrays.toString(array));
     
        }
     
        private static void printMatrix(int[][] matrix) {
            for (int[] line : matrix) {
                System.out.println(Arrays.toString(line));
            }
        }
     
        private static int readConsole(String text) {
            Scanner read = new Scanner(System.in);
            boolean correct = false;
            int result = 0;
            while (!correct) {
                System.out.print(text);
                try {
                    result = Integer.parseInt(read.nextLine().trim());
                    correct = true;
                } catch (NumberFormatException e) {
                    System.out.println("Вы ввели не число. Попробуйте снова...");
                }
            }
            return result;
        }
     
        private static int[][] createMatrix(int size, int a, int b) {
            Scanner sc = new Scanner(System.in);
            System.out.println("Введите левую границу интервала:");
            while (!sc.hasNextInt())
            {
                //если не целое число
                System.out.println("Необходимо ввести целое число. повторите ввод!");
                sc.next();
            }
            a = sc.nextInt();
            
            
            System.out.println("Введите правую границу интервала:");
            while (!sc.hasNextInt())
            {
                //если не целое число
                System.out.println("Необходимо ввести целое число. повторите ввод!");
                sc.next();
            }
            b = sc.nextInt();
            int[][] matrix = new int[size][size];
            for (int i = 0; i < size; i++) {
                for (int j = 0; j < size; j++) {
                    matrix[i][j] = (int) (Math.random() * (a - b + 1) + b);
                }
            }
            return matrix;
        }
     
        private static int[] getElementUpDiagonalMatrix(int[][] matrix, int k1, int k2) {
            int[] array = new int[(matrix.length * matrix.length) / 2 - matrix.length / 2];
            int size = matrix[0].length - 2;
            int i = 0;
            int j = 0;
            int count = 0;
            for (int index = 0; index < array.length; index++) {
                if (matrix[i][j] <= k2 && matrix[i][j] <= k1) {
                    array[count++] = matrix[i][j];
                }
                if (j < size) {
                    j++;
                } else {
                    j = 0;
                    size--;
                    i++;
                }
            }
            return Arrays.copyOf(array, count);
        }
    }
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
03.04.2019, 05:24
Что за min и max тебе нужен?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.04.2019, 05:24
Помогаю со студенческими работами здесь

Заменить нулями все элементы матрицы, расположенные на побочной диагонали и выше
Заменить нулями все элементы , расположенные на побочной диагонали и выше ее матрицы размером 6х6 , состоящей из элементов целого типа.

Заменить нулями все элементы матрицы, расположенные на побочной диагонали и выше
Разработать алгоритм методом пошаговой детализации и программу решения задачи , в которой заменить нулями все элементы , расположенные на...

Заменить нулями все элементы, расположенные на побочной диагонали матрицы и выше ее
заменить нулями все элементы, расположенные на побочной диагонали и выше ее двумерного динамического массива A, состоящего из элементов...

Заменить все нулевые элементы матрицы, которые стоят на побочной диагонали и выше нее, на 1
Дана квадратная матрица NxN. Заменить все 0 элементы на 1, которые стоят на побочной диагонали и выше нее.

Обнулить элементы матрицы, лежащие одновременно выше главной диагонали и выше побочной диагонали
Дана квадратная матрица порядка M. Обнулить элементы матрицы, лежащие одновременно выше главной диагонали и выше побочной диагонали....


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru