using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
System.Windows.Forms.TextBox[] textbox1;
System.Windows.Forms.TextBox[] textbox2;
System.Windows.Forms.TextBox[] textbox3;
int[,] a = new int[5, 5];
int[,] b = new int[5, 5];
int[,] c = new int[5, 5];
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
textbox1 = new System.Windows.Forms.TextBox[16];
for (int i = 0; i < 16; i++)
{
textbox1[i] = new TextBox();
this.Controls.Add(textbox1[i]);
if (i <= 3)
textbox1[i].Location = new System.Drawing.Point(10 + i * 100, 10);
else if (i > 3 && i <= 7)
textbox1[i].Location = new System.Drawing.Point(10 + (i - 4) * 100, 40);
else if (i > 7 && i <= 11)
textbox1[i].Location = new System.Drawing.Point(10 + (i - 8) * 100, 70);
else if (i > 11 && i <= 15)
textbox1[i].Location = new System.Drawing.Point(10 + (i - 12) * 100, 100);
}
textbox2 = new System.Windows.Forms.TextBox[16];
for (int i = 0; i < 16; i++)
{
textbox2[i] = new TextBox();
this.Controls.Add(textbox2[i]);
if (i <= 3)
textbox2[i].Location = new System.Drawing.Point(10 + i * 100, 160);
else if (i > 3 && i <= 7)
textbox2[i].Location = new System.Drawing.Point(10 + (i - 4) * 100, 190);
else if (i > 7 && i <= 11)
textbox2[i].Location = new System.Drawing.Point(10 + (i - 8) * 100, 220);
else if (i > 11 && i <= 15)
textbox2[i].Location = new System.Drawing.Point(10 + (i - 12) * 100, 260);
}
textbox3 = new System.Windows.Forms.TextBox[16];
for (int i = 0; i < 16; i++)
{
textbox3[i] = new TextBox();
this.Controls.Add(textbox3[i]);
if (i <= 3)
textbox3[i].Location = new System.Drawing.Point(10 + i * 100, 300);
else if (i > 3 && i <= 7)
textbox3[i].Location = new System.Drawing.Point(10 + (i - 4) * 100, 330);
else if (i > 7 && i <= 11)
textbox3[i].Location = new System.Drawing.Point(10 + (i - 8) * 100, 360);
else if (i > 11 && i <= 15)
textbox3[i].Location = new System.Drawing.Point(10 + (i - 12) * 100, 390);
}
}
private void button1_Click(object sender, EventArgs e)
{
for (int i = 1; i < 5; i++)
for (int j = 1; j < 5; j++)
{
for (int k = 1; k < 5; k++)
{
c[i, j] = c[i, j] + a[i, k] * b[k, j];
c[i = 1, j] = c[i = 1, j] + a[1, 1] * b[i, j] + a[1, 2] * b[i + 1, j] + a[1, 3] * b[i + 2, j] + a[1, 4] * b[i + 3, j];
c[i = 2, j] = c[i = 2, j] + a[2, 1] * b[i - 1, j] + a[2, 2] * b[i, j] + a[2, 3] * b[i + 1, j] + a[2, 4] * b[i + 2, j];
c[i = 3, j] = c[i = 3, j] + a[3, 1] * b[i - 2, j] + a[3, 2] * b[i - 1, j] + a[3, 3] * b[i, j] + a[3, 4] * b[i + 1, j];
c[i = 4, j] = c[i = 4, j] + a[4, 1] * b[i - 3, j] + a[4, 2] * b[i - 2, j] + a[4, 3] * b[i - 1, j] + a[4, 4] * b[i, j];
}
}
//input
a[1, 1] = Convert.ToInt16(textbox1[0].Text);
a[1, 2] = Convert.ToInt16(textbox1[1].Text);
a[1, 3] = Convert.ToInt16(textbox1[2].Text);
a[1, 4] = Convert.ToInt16(textbox1[3].Text);
a[2, 1] = Convert.ToInt16(textbox1[4].Text);
a[2, 2] = Convert.ToInt16(textbox1[5].Text);
a[2, 3] = Convert.ToInt16(textbox1[6].Text);
a[2, 4] = Convert.ToInt16(textbox1[7].Text);
a[3, 1] = Convert.ToInt16(textbox1[8].Text);
a[3, 2] = Convert.ToInt16(textbox1[9].Text);
a[3, 3] = Convert.ToInt16(textbox1[10].Text);
a[3, 4] = Convert.ToInt16(textbox1[11].Text);
a[4, 1] = Convert.ToInt16(textbox1[12].Text);
a[4, 2] = Convert.ToInt16(textbox1[13].Text);
a[4, 3] = Convert.ToInt16(textbox1[14].Text);
a[4, 4] = Convert.ToInt16(textbox1[15].Text);
b[1, 1] = Convert.ToInt16(textbox2[0].Text);
b[1, 2] = Convert.ToInt16(textbox2[1].Text);
b[1, 3] = Convert.ToInt16(textbox2[2].Text);
b[1, 4] = Convert.ToInt16(textbox2[3].Text);
b[2, 1] = Convert.ToInt16(textbox2[4].Text);
b[2, 2] = Convert.ToInt16(textbox2[5].Text);
b[2, 3] = Convert.ToInt16(textbox2[6].Text);
b[2, 4] = Convert.ToInt16(textbox2[7].Text);
b[3, 1] = Convert.ToInt16(textbox2[8].Text);
b[3, 2] = Convert.ToInt16(textbox2[9].Text);
b[3, 3] = Convert.ToInt16(textbox2[10].Text);
b[3, 4] = Convert.ToInt16(textbox2[11].Text);
b[4, 1] = Convert.ToInt16(textbox2[12].Text);
b[4, 2] = Convert.ToInt16(textbox2[13].Text);
b[4, 3] = Convert.ToInt16(textbox2[14].Text);
b[4, 4] = Convert.ToInt16(textbox2[15].Text);
for (int i = 1; i < 5; i++)
for (int j = 1; j < 5; j++)
{
c[i = 1, j] = a[1, 1] * b[i, j] + a[1, 2] * b[i + 1, j] + a[1, 3] * b[i + 2, j] + a[1, 4] * b[i + 3, j];
c[i = 2, j] =a[2, 1] * b[i - 1, j] + a[2, 2] * b[i, j] + a[2, 3] * b[i + 1, j] + a[2, 4] * b[i + 2, j];
c[i = 3, j] = a[3, 1] * b[i - 2, j] + a[3, 2] * b[i - 1, j] + a[3, 3] * b[i, j] + a[3, 4] * b[i + 1, j];
c[i = 4, j] = a[4, 1] * b[i - 3, j] + a[4, 2] * b[i - 2, j] + a[4, 3] * b[i - 1, j] + a[4, 4] * b[i, j];
}
//output
for (int i = 0; i < 16; ++i)
if (i < 4)
{
textbox3[i].Text = Convert.ToString(c[1, i + 1]);
}
else if (i >= 4 && i < 8)
{
textbox3[i].Text = Convert.ToString(c[2, (i - 4) + 1]);
}
else if (i >= 8 && i < 12)
{
textbox3[i].Text = Convert.ToString(c[3, (i - 4 * 2) + 1]);
}
else
{
textbox3[i].Text = Convert.ToString(c[4, (i - 4 * 3) + 1]);
}
}
}
}
沒有留言:
張貼留言