0 / 0 / 0
Регистрация: 18.06.2017
Сообщений: 121
|
|
1 | |
Работа с файлами, двумерными массивами и диаграммой13.03.2020, 19:51. Показов 1880. Ответов 14
Метки нет (Все метки)
Задание
Пользователь указывает имена N файлов, которые содержат элементы квадратных целочисленных матриц порядка M. Вывести пары имен тех файлов, содержащих матрицы с одинаковыми суммами диагональных элементов. Изобразить линейную диаграмму, поставив каждой матрицы в соответствии отдельный ряд данных. На оси абсцисс нужно отложить целые числа i от 1 - M к M - 1, а на оси ординат - сумму элементов матрицы, разница номера строки и номера столбца которых равна i. Можете сказать правильно ли я понял задание? Допустим пользователь вводит 3 имена файлов. Далее я думал считывать данные с файлов в переменные и через функцию проверять. Допустим берем 1 файл из 3 и проверяем его со 2 и 3, а далее берем 2 и проверяем его с 1 и 3 и т.д. с 3 файлом. После чего выводим имена пары по типу 1 файл и 3 файл, 2 и 3. Правда если 1 и 2 будет совпадать то зачем тогда проверять 2 и 1 нужно будет как-то опускать эту проверку. По диаграмме я толком не понял для какой матрицы(файла) именно нужно ее делать может сделать выбор из списка введенных названий файлов (матриц) пользователем. Не понятно вот это "На оси абсцисс нужно отложить целые числа i от 1 - M к M - 1" нужно выбирать числа array[0...n][0...n] Так? А на оси ординат уже сумму всех элементов матрицы у которых разница номера строки и номера столбца равна значению элемента?
0
|
13.03.2020, 19:51 | |
Ответы с готовыми решениями:
14
Работа с двумерными массивами работа с двумерными массивами в Си Работа с двумерными массивами Работа с двумерными массивами |
2080 / 1238 / 464
Регистрация: 20.12.2014
Сообщений: 3,237
|
|
13.03.2020, 21:10 | 2 |
Не по теме: Похоже преподаватель у вас садист Для всех. И для каждой - свой ряд данных. То есть общие значения на оси Х и (в вашем примере) три графика с разными значениями У. Допустим порядок матрицы у вас 4 (М). Тогда на оси Х вы берете значения -3, -2 и так далее до 3. А на У сумму элементов с разницей индексов строки и столбца. Например для х = -3 нужно отложить элемент (0;3) - он один имеет разницу -3, для х = -2 нужно сложить элементы: (0;2) и (1;3), для х = -1 сложить (0;1), (1;2) и (2;3) и так далее. Для каждой матрицы. Сочувствую.
0
|
0 / 0 / 0
Регистрация: 18.06.2017
Сообщений: 121
|
|
13.03.2020, 21:44 [ТС] | 3 |
chumich, Я еще в большем тупике! Почему именно -3 и -2 для X?
0
|
2080 / 1238 / 464
Регистрация: 20.12.2014
Сообщений: 3,237
|
|
13.03.2020, 21:57 | 4 |
Условие задачи:
Я же написал, например: М = 4 (ранг матрицы). Тогда 1 - M = -3. M - 1 = 3. Соответственно, если М = 5, то Х будет от -4 до 4 и так далее.
0
|
0 / 0 / 0
Регистрация: 18.06.2017
Сообщений: 121
|
|
13.03.2020, 22:21 [ТС] | 5 |
chumich,
Это я понял! Мы берем от -3 к 3 да!
Добавлено через 7 минут chumich, а дальше вот это можно более подробнее почему такие координаты?
0
|
2080 / 1238 / 464
Регистрация: 20.12.2014
Сообщений: 3,237
|
|
13.03.2020, 22:47 | 6 |
Сообщение было отмечено Moroni как решение
Решение
Индексы матричного элемента (a;b). a - строка, b - столбец. У вас по заданию y = сумме элементов для которых a - b = x (сумму элементов с разницей индексов строки и столбца)
То есть для х = -3 (в матрице с М = 4) нужно найти и сложить элементы у которых a - b = -3. Такой элемент только один (0;3), так как 0 - 3 = -3. Вот матрица (4х4): (0;0) (0;1) (0;2) (0;3) (1;0) (1;1) (1;2) (1;3) (2;0) (2;1) (2;2) (2;3) (3;0) (3;1) (3;2) (3;3) Ну и дальше смотрите и считайте: Наслаждайтесь
1
|
0 / 0 / 0
Регистрация: 18.06.2017
Сообщений: 121
|
|
18.03.2020, 22:30 [ТС] | 7 |
Добрый вечер, у меня появилось 2-а вопроса:
1. Если мне нужно создать неопределенное количество диаграмм то мне нужно их через код создавать? просто я в конструкторе сижу (я приблизительно понимаю, а если их будет очень много они же вылезут за окно программы) Как это реализовать? 2. Как бы програмно создать "а на оси ординат - сумму элементов матрицы, разница номера строки и номера столбца которых равна i." в моей прошлой теме мне пояснили как это сделать, я думал создать функцию в которую нужно передавать Х, массив и которая будет возвращать нужные мне значения элемента! В самой функции пробегаемся по массиву циклом array[i][j] (где i - первый значения,а j -второе) как там писали Вот матрица (4х4): (0;0) (0;1) (0;2) (0;3) (1;0) (1;1) (1;2) (1;3) (2;0) (2;1) (2;2) (2;3) (3;0) (3;1) (3;2) (3;3) после чего ставим условие i - j == X тогда возвращаем значения данного элемента. Правильно ли я понял? Добавлено через 5 минут Только меня напрягает минусовое число Х
0
|
2080 / 1238 / 464
Регистрация: 20.12.2014
Сообщений: 3,237
|
|
18.03.2020, 22:43 | 8 |
Все диаграммы создаются в одном элементе Chart. Добавляя в коллекцию Series нужное количество элементов. А дальше, для каждого элемента коллекции программно задаются параметры. Так что больше места это не займет.
Лучше прямо в этой функции и суммировать все эти элементы, возвращая готовую сумму как координату Y для данного X. Не надо напрягаться. Ничего страшного в отрицательных числах нет.
0
|
0 / 0 / 0
Регистрация: 18.06.2017
Сообщений: 121
|
|
18.03.2020, 23:15 [ТС] | 9 |
chumich, Если у меня не все матрицы порядка 4 например одна из них будет 3 тогда там на оси абсцисс будет от -2 до 2, а у меня будет -3 до 3 потому что первые будут порядка 4 или это не проблема?
0
|
2080 / 1238 / 464
Регистрация: 20.12.2014
Сообщений: 3,237
|
||||||
18.03.2020, 23:50 | 10 | |||||
Думаю нет, если диапазон подписей по Х организовывать через М, как говорилось, то диаграммы с меньшим диапазоном будут просто строиться не с начала, а со своего значения.
Ну, вот ПРИМЕРНЫЙ код для графика:
Для каждого из них у вас должны быть свои xmax и xmin. y[i] как раз хорошо, наверно, искать через функцию. Добавлено через 3 минуты Не по теме: Даценд, спасибо!
0
|
0 / 0 / 0
Регистрация: 18.06.2017
Сообщений: 121
|
|
19.03.2020, 22:22 [ТС] | 11 |
chumich, вот я вроде сделал так должно получится? (что при Х = -3 У будет один при Х = -2 уже другой и т.д.)
0
|
2080 / 1238 / 464
Регистрация: 20.12.2014
Сообщений: 3,237
|
|
19.03.2020, 22:28 | 12 |
Откуда же мне знать? С виду похоже на правду. Примерно так они и должны выглядеть - максимум при 0, минимумы ближе к краю. А уж насколько точно это построено, я не могу сказать.
0
|
0 / 0 / 0
Регистрация: 18.06.2017
Сообщений: 121
|
|
19.03.2020, 22:31 [ТС] | 13 |
chumich, Я проверял значения через консоль по вашей схеме тому там правильные значения там на графике когда 0 все значения большие потому что там идет 4 раза + к сумме ((0;0)(1;1)(2;2)(3;3))
0
|
2080 / 1238 / 464
Регистрация: 20.12.2014
Сообщений: 3,237
|
|
19.03.2020, 22:36 | 14 |
Ну, я и говорю, что всё очень похоже на правду. Думаю, что у вас получилось.
0
|
0 / 0 / 0
Регистрация: 18.06.2017
Сообщений: 121
|
|
19.03.2020, 22:43 [ТС] | 15 |
chumich, Спасибо вам большое
Не по теме: если дальше задание тоже будут немного не понятные я еще появлюсь
0
|
19.03.2020, 22:43 | |
19.03.2020, 22:43 | |
Помогаю со студенческими работами здесь
15
Работа с двумерными массивами Работа с двумерными массивами Работа с двумерными массивами Работа с двумерными массивами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |