Как заполнить матрицу случайными числами? - C#
Формулировка задачи:
Нужно прикрути автозаполнение матриц произвольными числами. заполнение должно происходить при нажатии на кнопку 2. Но я не знаю как это сделать.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Zadanie4 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } int m, n, p; int[,] A; int[,] B; private void button1_Click(object sender, EventArgs e) { ErrorCount.Visible = false; ErrorMas.Visible = false; int.TryParse(textBox1.Text, out m); dataGridView1.RowCount = m; dataGridView3.RowCount = m; int.TryParse(textBox2.Text, out n); dataGridView1.ColumnCount = n; dataGridView2.RowCount = n; int.TryParse(textBox3.Text, out p); dataGridView2.ColumnCount = p; dataGridView3.ColumnCount = p; A = new int[m, n]; B = new int[n, p]; } private void button2_Click(object sender, EventArgs e) { ErrorCount.Visible = false; ErrorMas.Visible = false; try { for (int i = 0; i < m; ++i) for (int j = 0; j < n; ++j) if (dataGridView1.Rows[i].Cells[j].Value.ToString() != "") A[i, j] = Convert.ToInt32(dataGridView1.Rows[i].Cells[j].Value); else throw new Exception(); } catch { ErrorCount.Visible = true; } try { for (int i = 0; i < m; ++i) for (int j = 0; j < n; ++j) if (dataGridView2.Rows[i].Cells[j].Value.ToString() != "") B[i, j] = Convert.ToInt32(dataGridView2.Rows[i].Cells[j].Value); else throw new Exception(); } catch { ErrorMas.Visible = true; } } private void button3_Click(object sender, EventArgs e) { for (int i = 0; i < m; ++i) { for (int j = 0; j < p; ++j) { int sum = 0; for (int ij = 0; ij < n; ++ij) sum += A[i, ij] * B[ij,j]; dataGridView3.Rows[i].Cells[j].Value = sum; } } dataGridView3.Visible = true; } } }
Решение задачи: «Как заполнить матрицу случайными числами?»
textual
Листинг программы
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace задание4 { public partial class Form1 : Form { int m, n, p; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { m = (int)numericUpDown1.Value; n = (int)numericUpDown2.Value; p = (int)numericUpDown3.Value; dataGridView1.Rows.Clear(); dataGridView1.Columns.Clear(); for (int i = 0; i < n; i++) dataGridView1.Columns.Add(i.ToString(), (i+1).ToString()); for (int i = 0; i < m; i++) dataGridView1.Rows.Add(); dataGridView2.Rows.Clear(); dataGridView2.Columns.Clear(); for (int i = 0; i < p; i++) dataGridView2.Columns.Add(i.ToString(), (i + 1).ToString()); for (int i = 0; i < n; i++) dataGridView2.Rows.Add(); dataGridView3.Rows.Clear(); dataGridView3.Columns.Clear(); for (int i = 0; i < p; i++) dataGridView3.Columns.Add(i.ToString(), (i + 1).ToString()); for (int i = 0; i < m; i++) dataGridView3.Rows.Add(); button1.Enabled = false; button2.Enabled = true; button3.Enabled = false; } private void button2_Click(object sender, EventArgs e) { Random rnd = new Random(); for (int j = 0; j < m; j++) for (int i = 0; i < n; i++) dataGridView1[i,j].Value = rnd.Next(10)-5; for (int j = 0; j < n; j++) for (int i = 0; i < p; i++) dataGridView2[i, j].Value = rnd.Next(10) - 5; button1.Enabled = false; button2.Enabled = false; button3.Enabled = true; } private void button3_Click(object sender, EventArgs e) { button1.Enabled = true; button2.Enabled = false; button3.Enabled = false; int[,] a=new int[m,n]; int[,] b = new int[n, p]; int[,] resMass = new int[m, p]; for (int j = 0; j < m; j++) for (int i = 0; i < n; i++) a[j,i]=(int)dataGridView1[i, j].Value; for (int j = 0; j < n; j++) for (int i = 0; i < p; i++) b[j,i]= (int)dataGridView2[i, j].Value; for (int i = 0; i < m; i++) for (int j = 0; j < p; j++) for (int k = 0; k < n; k++) resMass[i, j] += a[i, k] * b[k, j]; for (int j = 0; j < m; j++) for (int i = 0; i < p; i++) dataGridView3[i, j].Value = resMass[j, i].ToString(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д