Создание приложения Windows Forms на C# в Visual Studio. Написать программу, вычисляющую произведение двух матриц произвольной размерности. Элементы матриц вводятся с клавиатуры в компонент StringGrid. Предусмотреть возможность ввода с клавиатуры количества строк и столбцов заданных матриц.
Ответы
private void button1_Click(object sender, EventArgs e)
{
int row1 = dataGridView1.Rows.Count;
int col1 = dataGridView1.Columns.Count;
int row2 = dataGridView2.Rows.Count;
int col2 = dataGridView2.Columns.Count;
if (col1 != row2)
{
MessageBox.Show("Невірні розміри матриць!");
return;
}
double[,] matrix1 = new double[row1, col1];
double[,] matrix2 = new double[row2, col2];
for (int i = 0; i < row1; i++)
{
for (int j = 0; j < col1; j++)
{
matrix1[i, j] = Convert.ToDouble(dataGridView1.Rows[i].Cells[j].Value);
}
}
for (int i = 0; i < row2; i++)
{
for (int j = 0; j < col2; j++)
{
matrix2[i, j] = Convert.ToDouble(dataGridView2.Rows[i].Cells[j].Value);
}
}
double[,] result = new double[row1, col2];
for (int i = 0; i < row1; i++)
{
for (int j = 0; j < col2; j++)
{
for (int k = 0; k < col1; k++)
{
result[i, j] += matrix1[i, k] * matrix2[k, j];
}
}
}
// Виведення результату в dataGridView3
dataGridView3.Rows.Clear();
dataGridView3.Columns.Clear();
for (int i = 0; i < row1; i++)
{
dataGridView3.Columns.Add("", "");
}
for (int i = 0; i < col2; i++)
{
dataGridView3.Rows.Add();
}
for (int i = 0; i < row1; i++)
{
for (int j = 0; j < col2; j++)
{
dataGridView3.Rows[j].Cells[i].Value = result[i, j].ToString();
}
}
}