Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 18.06.2017
Сообщений: 121
1

Работа с файлами, двумерными массивами и диаграммой

13.03.2020, 19:51. Показов 1880. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание
Пользователь указывает имена 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
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2020, 19:51
Ответы с готовыми решениями:

Работа с двумерными массивами
1. Дан двумерный массив размером n*m, заполненный случайными числами. Определить, есть ли в данном...

работа с двумерными массивами в Си
работа с двумерными массивами в Си 1)Найти сумму положительных кратных 3 элементов 2)Составьте...

Работа с двумерными массивами
Дан массив размера n × m, все элементы которого различны. Необходимо найти такие элементы, которые...

Работа с двумерными массивами
Здравствуйте! Скажите, пожалуйста, есть на пример двумерная матрица A размера n*m, где n -...

14
2080 / 1238 / 464
Регистрация: 20.12.2014
Сообщений: 3,237
13.03.2020, 21:10 2

Не по теме:

Похоже преподаватель у вас садист


Цитата Сообщение от Moroni Посмотреть сообщение
для какой матрицы(файла)
Для всех. И для каждой - свой ряд данных. То есть общие значения на оси Х и (в вашем примере) три графика с разными значениями У.
Цитата Сообщение от Moroni Посмотреть сообщение
Не понятно вот это "На оси абсцисс нужно отложить целые числа i от 1 - M к M - 1"
Допустим порядок матрицы у вас 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
Цитата Сообщение от Moroni Посмотреть сообщение
Почему именно -3 и -2 для X?
Условие задачи:
Цитата Сообщение от Moroni Посмотреть сообщение
На оси абсцисс нужно отложить целые числа i от 1 - M к M - 1,
Я же написал, например: М = 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,
Цитата Сообщение от chumich Посмотреть сообщение
Я же написал, например: М = 4 (ранг матрицы). Тогда 1 - M = -3. M - 1 = 3.
Соответственно, если М = 5, то Х будет от -4 до 4 и так далее.
Это я понял! Мы берем от -3 к 3 да!

Добавлено через 7 минут
chumich, а дальше вот это можно более подробнее почему такие координаты?
Цитата Сообщение от chumich Посмотреть сообщение
Например для х = -3 нужно отложить элемент (0;3) - он один имеет разницу -3, для х = -2 нужно сложить элементы: (0;2) и (1;3), для х = -1 сложить (0;1), (1;2) и (2;3) и так далее.
0
2080 / 1238 / 464
Регистрация: 20.12.2014
Сообщений: 3,237
13.03.2020, 22:47 6
Лучший ответ Сообщение было отмечено Moroni как решение

Решение

Цитата Сообщение от 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)
Ну и дальше смотрите и считайте:
Цитата Сообщение от chumich Посмотреть сообщение
для х = -2 нужно сложить элементы: (0;2) и (1;3), для х = -1 сложить (0;1), (1;2) и (2;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
Цитата Сообщение от Moroni Посмотреть сообщение
а если их будет очень много они же вылезут за окно программы
Все диаграммы создаются в одном элементе Chart. Добавляя в коллекцию Series нужное количество элементов. А дальше, для каждого элемента коллекции программно задаются параметры. Так что больше места это не займет.
Цитата Сообщение от Moroni Посмотреть сообщение
тогда возвращаем значения данного элемента.
Лучше прямо в этой функции и суммировать все эти элементы, возвращая готовую сумму как координату Y для данного X.
Цитата Сообщение от Moroni Посмотреть сообщение
Только меня напрягает минусовое число Х
Не надо напрягаться. Ничего страшного в отрицательных числах нет.
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
Цитата Сообщение от Moroni Посмотреть сообщение
это не проблема?
Думаю нет, если диапазон подписей по Х организовывать через М, как говорилось, то диаграммы с меньшим диапазоном будут просто строиться не с начала, а со своего значения.
Ну, вот ПРИМЕРНЫЙ код для графика:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
double xmin = 1 - М;
double xmax = М - 1;
int count = xmax - xmin + 1;
double[] x = new double[count];
double[] y = new double[count];
for (int i = 0; i < count; i++)
{
    x[i] = xmin +  i;
    y[i] = здесь должна быть сумма ваших элементов;
}
chart1.ChartAreas[0].AxisX.Maximum = xmax;
chart1.ChartAreas[0].AxisX.Minimum = xmin;
chart1.ChartAreas[0].AxisX.MajorGrid.Interval = 1;
 
chart1.Series[0].Points.DataBindXY(x, y);
Эти Series[] и есть ваши графики.
Для каждого из них у вас должны быть свои 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
Цитата Сообщение от Moroni Посмотреть сообщение
так должно получится?
Откуда же мне знать? С виду похоже на правду. Примерно так они и должны выглядеть - максимум при 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.03.2020, 22:43
Помогаю со студенческими работами здесь

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

Работа с двумерными массивами
Дан массив, состоящий из NXM элементов, значения которого вводится с клавиатуры. Подсчитать сколько...

Работа с двумерными массивами
помогите переделать программу с паскаля на delphi вот на всякий случай условие .В матирице ...

Работа с двумерными массивами
Помогите пожалуйста решить задачу про двумерный массив: Суть: Вычислить сумму элементов каждой...


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

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