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

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

13.03.2020, 19:51. Показов 2127. Ответов 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
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.03.2020, 19:51
Ответы с готовыми решениями:

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

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

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

14
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
13.03.2020, 21:10

Не по теме:

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


Цитата Сообщение от 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  [ТС]
chumich, Я еще в большем тупике! Почему именно -3 и -2 для X?
0
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
13.03.2020, 21:57
Цитата Сообщение от 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  [ТС]
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
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
13.03.2020, 22:47
Лучший ответ Сообщение было отмечено 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  [ТС]
Добрый вечер, у меня появилось 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
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
18.03.2020, 22:43
Цитата Сообщение от Moroni Посмотреть сообщение
а если их будет очень много они же вылезут за окно программы
Все диаграммы создаются в одном элементе Chart. Добавляя в коллекцию Series нужное количество элементов. А дальше, для каждого элемента коллекции программно задаются параметры. Так что больше места это не займет.
Цитата Сообщение от Moroni Посмотреть сообщение
тогда возвращаем значения данного элемента.
Лучше прямо в этой функции и суммировать все эти элементы, возвращая готовую сумму как координату Y для данного X.
Цитата Сообщение от Moroni Посмотреть сообщение
Только меня напрягает минусовое число Х
Не надо напрягаться. Ничего страшного в отрицательных числах нет.
0
0 / 0 / 0
Регистрация: 18.06.2017
Сообщений: 121
18.03.2020, 23:15  [ТС]
chumich, Если у меня не все матрицы порядка 4 например одна из них будет 3 тогда там на оси абсцисс будет от -2 до 2, а у меня будет -3 до 3 потому что первые будут порядка 4 или это не проблема?
0
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
18.03.2020, 23:50
Цитата Сообщение от 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  [ТС]
chumich, вот я вроде сделал так должно получится? (что при Х = -3 У будет один при Х = -2 уже другой и т.д.)
0
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
19.03.2020, 22:28
Цитата Сообщение от Moroni Посмотреть сообщение
так должно получится?
Откуда же мне знать? С виду похоже на правду. Примерно так они и должны выглядеть - максимум при 0, минимумы ближе к краю. А уж насколько точно это построено, я не могу сказать.
0
0 / 0 / 0
Регистрация: 18.06.2017
Сообщений: 121
19.03.2020, 22:31  [ТС]
chumich, Я проверял значения через консоль по вашей схеме тому там правильные значения там на графике когда 0 все значения большие потому что там идет 4 раза + к сумме ((0;0)(1;1)(2;2)(3;3))
0
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
19.03.2020, 22:36
Ну, я и говорю, что всё очень похоже на правду. Думаю, что у вас получилось.
0
0 / 0 / 0
Регистрация: 18.06.2017
Сообщений: 121
19.03.2020, 22:43  [ТС]
chumich, Спасибо вам большое

Не по теме:

если дальше задание тоже будут немного не понятные я еще появлюсь

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.03.2020, 22:43
Помогаю со студенческими работами здесь

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

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

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

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

Работа с двумерными массивами
Помогите пожалуйста решить задачу про двумерный массив: Суть: Вычислить сумму элементов каждой строки матрицы Х(4х3), определить...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru