Как заполнить матрицу случайными числами? - C#

Узнай цену своей работы

Формулировка задачи:

Нужно прикрути автозаполнение матриц произвольными числами. заполнение должно происходить при нажатии на кнопку 2. Но я не знаю как это сделать.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. namespace Zadanie4
  11. {
  12. public partial class Form1 : Form
  13. {
  14. public Form1()
  15. {
  16. InitializeComponent();
  17. }
  18. int m, n, p;
  19. int[,] A;
  20. int[,] B;
  21. private void button1_Click(object sender, EventArgs e)
  22. {
  23. ErrorCount.Visible = false;
  24. ErrorMas.Visible = false;
  25. int.TryParse(textBox1.Text, out m);
  26. dataGridView1.RowCount = m;
  27. dataGridView3.RowCount = m;
  28. int.TryParse(textBox2.Text, out n);
  29. dataGridView1.ColumnCount = n;
  30. dataGridView2.RowCount = n;
  31. int.TryParse(textBox3.Text, out p);
  32. dataGridView2.ColumnCount = p;
  33. dataGridView3.ColumnCount = p;
  34. A = new int[m, n];
  35. B = new int[n, p];
  36. }
  37. private void button2_Click(object sender, EventArgs e)
  38. {
  39. ErrorCount.Visible = false;
  40. ErrorMas.Visible = false;
  41. try
  42. {
  43. for (int i = 0; i < m; ++i)
  44. for (int j = 0; j < n; ++j)
  45. if (dataGridView1.Rows[i].Cells[j].Value.ToString() != "")
  46. A[i, j] = Convert.ToInt32(dataGridView1.Rows[i].Cells[j].Value);
  47. else throw new Exception();
  48. }
  49. catch
  50. {
  51. ErrorCount.Visible = true;
  52. }
  53. try
  54. {
  55. for (int i = 0; i < m; ++i)
  56. for (int j = 0; j < n; ++j)
  57. if (dataGridView2.Rows[i].Cells[j].Value.ToString() != "")
  58. B[i, j] = Convert.ToInt32(dataGridView2.Rows[i].Cells[j].Value);
  59. else throw new Exception();
  60. }
  61. catch
  62. {
  63. ErrorMas.Visible = true;
  64. }
  65. }
  66. private void button3_Click(object sender, EventArgs e)
  67. {
  68. for (int i = 0; i < m; ++i)
  69. {
  70. for (int j = 0; j < p; ++j)
  71. {
  72. int sum = 0;
  73. for (int ij = 0; ij < n; ++ij)
  74. sum += A[i, ij] * B[ij,j];
  75. dataGridView3.Rows[i].Cells[j].Value = sum;
  76. }
  77. }
  78. dataGridView3.Visible = true;
  79. }
  80. }
  81. }

Решение задачи: «Как заполнить матрицу случайными числами?»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10.  
  11. namespace задание4
  12. {
  13.     public partial class Form1 : Form
  14.     {
  15.         int m, n, p;
  16.         public Form1()
  17.         {
  18.             InitializeComponent();
  19.         }
  20.  
  21.         private void button1_Click(object sender, EventArgs e)
  22.         {
  23.             m = (int)numericUpDown1.Value;
  24.             n = (int)numericUpDown2.Value;
  25.             p = (int)numericUpDown3.Value;
  26.             dataGridView1.Rows.Clear();
  27.             dataGridView1.Columns.Clear();
  28.             for (int i = 0; i < n; i++) dataGridView1.Columns.Add(i.ToString(), (i+1).ToString());
  29.             for (int i = 0; i < m; i++) dataGridView1.Rows.Add();
  30.  
  31.             dataGridView2.Rows.Clear();
  32.             dataGridView2.Columns.Clear();
  33.             for (int i = 0; i < p; i++) dataGridView2.Columns.Add(i.ToString(), (i + 1).ToString());
  34.             for (int i = 0; i < n; i++) dataGridView2.Rows.Add();
  35.  
  36.             dataGridView3.Rows.Clear();
  37.             dataGridView3.Columns.Clear();
  38.             for (int i = 0; i < p; i++) dataGridView3.Columns.Add(i.ToString(), (i + 1).ToString());
  39.             for (int i = 0; i < m; i++) dataGridView3.Rows.Add();
  40.             button1.Enabled = false;
  41.             button2.Enabled = true;
  42.             button3.Enabled = false;
  43.         }
  44.  
  45.         private void button2_Click(object sender, EventArgs e)
  46.         {
  47.             Random rnd = new Random();
  48.              for (int j = 0; j < m; j++)
  49.                  for (int i = 0; i < n; i++)
  50.                     dataGridView1[i,j].Value = rnd.Next(10)-5;
  51.  
  52.              for (int j = 0; j < n; j++)
  53.                  for (int i = 0; i < p; i++)
  54.                      dataGridView2[i, j].Value = rnd.Next(10) - 5;
  55.              button1.Enabled = false;
  56.              button2.Enabled = false;
  57.              button3.Enabled = true;
  58.  
  59.         }
  60.  
  61.         private void button3_Click(object sender, EventArgs e)
  62.         {
  63.             button1.Enabled = true;
  64.             button2.Enabled = false;
  65.             button3.Enabled = false;
  66.  
  67.            int[,] a=new int[m,n];
  68.            int[,] b = new int[n, p];
  69.            int[,] resMass = new int[m, p];
  70.  
  71.            for (int j = 0; j < m; j++)
  72.                for (int i = 0; i < n; i++)
  73.                    a[j,i]=(int)dataGridView1[i, j].Value;
  74.  
  75.            for (int j = 0; j < n; j++)
  76.                for (int i = 0; i < p; i++)
  77.                   b[j,i]= (int)dataGridView2[i, j].Value;
  78.  
  79.           for (int i = 0; i < m; i++)
  80.                 for (int j = 0; j < p; j++)
  81.                     for (int k = 0; k < n; k++)
  82.                         resMass[i, j] += a[i, k] * b[k, j];
  83.  
  84.           for (int j = 0; j < m; j++)
  85.               for (int i = 0; i < p; i++)
  86.                   dataGridView3[i, j].Value = resMass[j, i].ToString();
  87.  
  88.         }
  89.     }
  90. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы