Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 30.05.2014
Сообщений: 64

Вывод данных из двух DataGridView в третий

17.06.2014, 23:13. Показов 1277. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Допустим у меня есть две матрицы в dataGridView1 и dataGridView2, итак вопрос, как подсчитанный результат вывести в dataGridView3?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.06.2014, 23:13
Ответы с готовыми решениями:

Сравнение данных из двух массивов и вывод результата в третий
Здравствуйте! Есть таблица с наименованием позиций и их ячейкой которая на складе. И есть вторая таблица, с наименованием позиций и их...

Сравнение двух массивов и вывод отсутствующих данных в третий массив
Добрый день, Форумчане. Задача стоит такая: Имеется два массива provider и margin, требуется сравнить margin с provider....

Вывод данных из двух таблиц в DataGridView
Привет Есть база, в ней 3 таблицы. В 1 таблице хранятся ФИО и ID. Во 2 таблице ID и операция, т.е. связь по полю ID. Делаю запрос (в...

12
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9674 / 4826 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
18.06.2014, 06:53
А что считаем?
0
1 / 1 / 0
Регистрация: 30.05.2014
Сообщений: 64
18.06.2014, 10:29  [ТС]
 Комментарий модератора 
Эти сообщения вынесены из другой темы.
Чехарда с порядком сообщений вызвана нарушением ТСом правил.

~wargosya писал

Вот пример на си, должен работать
C++
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
using System;
 
namespace Example
{
    class Program
    {
    
static void Main(string[] args)
        {
            int k,l,m;
            Console.WriteLine("Введите k:");
            k = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите l:");
            l = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите m:");
            m = int.Parse(Console.ReadLine());
 
            Random rnd = new Random();
 
            int[,] A = new int[k, l];
            int[,] B = new int[l, m];
            int[,] C = new int[k, m];
 
            for (int i = 0; i < k; ++i)
            {
                for (int j = 0; j < l; ++j)
                {
                    A[i, j] = rnd.Next(1, 9);
                    Console.Write("{0,3}", A[i, j]);  
                }
                Console.WriteLine();
            }
            Console.WriteLine();
 
            for (int i = 0; i < l; ++i)
            {
                for (int j= 0; j< m; ++j)
                {
                    B[i, j] = rnd.Next(1, 9);
                    Console.Write("{0,3}", B[i, j]);
                }
                Console.WriteLine();
            }
 
            Console.WriteLine("Перемноженная матрица");
 
            for (int i = 0; i < k; ++i)
            {
                for (int j = 0; j < m; ++j)
                {
                    C[i, j] = 0;
                    for (int q = 0; q < l; ++q)
                        C[i, j] += A[i, q] * B[q, j];               
                    Console.Write("{0,3}", C[i, j]);
                }  
                Console.WriteLine();                
            }
            
            Console.ReadKey();
        }
        
    }
}
~zna926 писал

Начать нужно с заполнения двух гридов случайными целыми числами - кнопка 1
Умножение матриц кнопка 2. умножение немного громоздко. Если понадобится, напишу код

Совсем не сложно. Сейчас напишу код заполнения 2 матриц случайными целыми числами.
Я взял 2 матрицы размерами 5 х 5
Завтра напишу вторую часть - умножение матриц

C#
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
Forms Code
{
 
 using System.Windows.Forms;
 
 namespace xxxxxxxx
 {
   public int n, n1, n2, n3, k;
    public String s, s1, s2;
      public Random rnd = new Random();
    public partial class Form1 : Form
    {
 
      private void Form1_Load(object sender, EventArgs e) 
       {
         dataGridView1.RowCount = 5;
           dataGridView1.ColumnCount = 6;
 
           dataGridView2.RowCount = 5;
            dataGridView2.ColumnCount = 6;
 
           dataGridView3.RowCount = 5;
            dataGridView3.ColumnCount = 6;
            for(int i = 0; i<5; i++)
            {
             dataGridView1.Rows[i].Cells[0].Value = i.ToString(); 
               dataGridView2.Rows[i].Cells[0].Value = i.ToString(); 
             dataGridView3.Rows[i].Cells[0].Value = i.ToString(); 
            }
      }
 
      private void button1_Click(object sender, EventArgs e)
       {
            for (int i = 0; i < 5; i++)
            {
             for (int j = 1; j < 6; j++)
             {
              n = rnd.Next(-30, 30);  // генерация случайных целых чисел в прделах от -30 до 30
               dataGridView1.Rows[i].Cells[j].Value = n;
               n1 = rnd.Next(-30, 30);
               dataGridView2.Rows[i].Cells[j].Value = n1;
 
             }
            }
       }
}
Добавлено через 10 часов 40 минут
Умножение 2 матриц 5 х 5, это дополнение к коду заполнения гридов

C#
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
Forms Code
{
 
       private void button2_Click(object sender, EventArgs e)
       {
          k = 1;
            for (int i = 0; i < 5; i++)
            {
                for (int j = 1; j < 6; j++)
                {
                    s1 = dataGridView1.Rows[i].Cells[j].Value.ToString();
                    s2 = dataGridView2.Rows[j-1].Cells[k].Value.ToString();
                    n1 = int.Parse(s1);
                    n2 = int.Parse(s2);
                    n = n1 * n2;
                    dataGridView3.Rows[i].Cells[j].Value = n;
                   
                    s1 = "";
                    s2 = "";
                }
                k ++;
                if (k == 6)
                    k = 1;
            }
 
 
      }
}
0
1 / 1 / 0
Регистрация: 30.05.2014
Сообщений: 64
18.06.2014, 13:34  [ТС]
Считаем две матрицы. Полученный результат нужно вывести в третью dataGridView
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
18.06.2014, 13:54
Цитата Сообщение от Korsun Посмотреть сообщение
как подсчитанный результат вывести в dataGridView3?
Очевидно, что сложить две матрицы. Они у вас как массивы оформлены или как таблицы?
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9674 / 4826 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
18.06.2014, 14:08
Цитата Сообщение от insite2012 Посмотреть сообщение
Очевидно, что сложить две матрицы
Цитата Сообщение от Korsun Посмотреть сообщение
Считаем две матрицы
insite2012, ты это как определил? Считать можно и умножение двух матриц или разность.
Korsun, так что считаем?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
18.06.2014, 14:16
tezaurismosis, ну я вот сделал метод, а там пусть ТС сам определиться и подставит нужный знак. Правда, за достоверность не ручаюсь, пусть проверяет, не могу сказать что очень дружен с математикой.
C#
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
using System.Data;
 
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] m1 ={{1,2,3},
                        {4,5,6},
                        {7,8,9}};
 
            int[,] m2 ={{1,2,3},
                        {4,5,6},
                        {7,8,9}};
 
            int[,] res = MatrixSum(m1, m2);
        }
        static int[,] MatrixSum(int[,] m1, int[,] m2)
        {
            if ((m1.GetLength(0) != m2.GetLength(0)) || (m1.GetLength(1) != m2.GetLength(1)))
            {
                throw new ArgumentException("Arguments invalid!");
            }
            int[,] res= new int[m1.GetLength(0),m1.GetLength(1)];
            for (int i = 0; i < m1.GetLength(0); i++)
            {
                for (int j = 0; j < m1.GetLength(1); j++)
                {
                    res[i, j] = m1[i, j] + m2[i, j];
                }
            }
            return res;
        }
    }
}
А вообще, конечно, проще было бы сделать метод с аргументами из двух таблиц и возвращаемым значением таблица.
1
1 / 1 / 0
Регистрация: 30.05.2014
Сообщений: 64
18.06.2014, 14:50  [ТС]
tezaurismosis, умножение двух матриц
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
18.06.2014, 14:52
Korsun, в моем методе замените + на *
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9674 / 4826 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
18.06.2014, 15:06
Цитата Сообщение от insite2012 Посмотреть сообщение
в моем методе замените + на *
Неа. Дело теперь сложнее:

Перемножение матриц
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
18.06.2014, 15:10
tezaurismosis, так они у него разной размерности, что-ли?
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9674 / 4826 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
18.06.2014, 15:12
insite2012, перемножение матриц работает совсем по-иному. Нужно чтобы количество столбцов левого множителя было равно количеству строк правого. И умножение хитрое - по строкам и столбцам.
 Комментарий модератора 
Korsun, дублировать темы запрещено.
0
1 / 1 / 0
Регистрация: 30.05.2014
Сообщений: 64
18.06.2014, 17:02  [ТС]
insite2012, Спасибо, посчитать-то мы посчитали, но вопрос так и остался нерешенным.

Добавлено через 1 час 48 минут
Результат, ну ни в какую не хочет отображаться в DataGridView3. Укажите на ошибки, кому не сложно. Я новичок в этом деле, да еще и невнимательный
Вот, что мы имеем:
C#
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
        private void button2_Click(object sender, EventArgs e)
        {
            dataGridView1.AllowUserToAddRows = false;
 
            m = Convert.ToInt32(textBox1.Text);
            int n = Convert.ToInt32(textBox2.Text);
            dataGridView1.ColumnCount = n;
            dataGridView1.RowCount = m;
 
 
            dataGridView2.AllowUserToAddRows = false;
 
            n = Convert.ToInt32(textBox2.Text);
            int p = Convert.ToInt32(textBox3.Text);
            dataGridView2.ColumnCount = p;
            dataGridView2.RowCount = n;
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
 
            int[,] A = new int[m, n];
            int pr1 = 0;
            for (int i = 0; i < m; i++)
                for (int j = 0; j < n; j++)
                {
 
                    A[i, j] = Convert.ToInt32(dataGridView1[j, i].Value);
                    pr1 = pr1 * A[i, j];
 
                }
 
 
            int[,] B = new int[n, p];
            int pr2 = 0;
            for (int i = 0; i < m; i++)
                for (int j = 0; j < n; j++)
                {
 
                    B[i, j] = Convert.ToInt32(dataGridView2[j, i].Value);
                    pr2 = pr2 * B[i, j];
                }
 
 
            int[,] C = new int[m, p];
            for (int i = 0; i < m; ++i)
                for (int j = 0; j < n; ++j)
                    for (int q = 0; q < n; ++q)
                    {
                        C[i, j] += A[i, q] * B[q, j];
 
 
                        dataGridView3.Rows[i].Cells[j].Value = C;
                    }
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.06.2014, 17:02
Помогаю со студенческими работами здесь

Вывод данных из двух таблиц БД в одну dataGridView
В БД две таблицы Reisi и Goroda. Таблицы связаны по полю IDtown. Пытаюсь вывести из таблицы Reisi все поля кроме IDtown, вместо...

Вывод двух связанных таблиц данных в один Datagridview
Если можете подскажите, очень надо:wall: Есть в БД SQL связанные таблицы: 1. Services_direction Столбцы: id_service_direction ...

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

Вывод двух связанных таблиц данных в один элемент DataGridView
Добрый день нашел интересную ссылку про вывод связанных таблиц http://sernam.ru/book_cbd.php?id=43 База данных своя, не как в этом...

Вывод суммы двух textbox в третий
Доброго времени суток. Возник такой вот вопрос... Если есть два textbox для чисел и два radiobutton (сложение и умножение). Как сделать...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru