Как заполнить матрицу случайными числами? - 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();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д