การบวกเมทริกซ์สองตัวใน C# ต้องการให้เมทริกซ์ทั้งสองมีขนาดเท่ากัน (จำนวนแถวและคอลัมน์เท่ากัน) จากนั้นนำองค์ประกอบที่ตำแหน่งตรงกันมาบวกกัน
อัลกอริทึม
- ประกาศอาร์เรย์ 3 ตัว: เมทริกซ์ตัวแรก, เมทริกซ์ตัวที่สอง, และเมทริกซ์ผลลัพธ์
- รับค่าองค์ประกอบของเมทริกซ์ทั้งสองจากผู้ใช้
- วนลูปบวกองค์ประกอบที่ตำแหน่งตรงกัน:
result[i,j] = arr1[i,j] + arr2[i,j] - แสดงผลเมทริกซ์ทั้งสาม
ตัวอย่างโค้ดสมบูรณ์
using System;
public class Exercise19
{
public static void Main()
{
int i, j, n;
int[,] arr1 = new int[20, 20];
int[,] arr2 = new int[20, 20];
int[,] arr3 = new int[20, 20];
// กำหนดขนาดเมทริกซ์ 3x3
n = 3;
Console.Write("ป้อนค่าองค์ประกอบเมทริกซ์แรก:\n");
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
arr1[i, j] = Convert.ToInt32(Console.ReadLine());
}
}
Console.Write("ป้อนค่าองค์ประกอบเมทริกซ์ที่สอง:\n");
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
arr2[i, j] = Convert.ToInt32(Console.ReadLine());
}
}
Console.Write("\nเมทริกซ์แรก:\n");
for (i = 0; i < n; i++)
{
Console.Write("\n");
for (j = 0; j < n; j++)
Console.Write("{0}\t", arr1[i, j]);
}
Console.Write("\nเมทริกซ์ที่สอง:\n");
for (i = 0; i < n; i++)
{
Console.Write("\n");
for (j = 0; j < n; j++)
Console.Write("{0}\t", arr2[i, j]);
}
// บวกเมทริกซ์
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
arr3[i, j] = arr1[i, j] + arr2[i, j];
Console.Write("\nผลลัพธ์การบวกเมทริกซ์สองตัว:\n");
for (i = 0; i < n; i++)
{
Console.Write("\n");
for (j = 0; j < n; j++)
Console.Write("{0}\t", arr3[i, j]);
}
Console.Write("\n\n");
}
}
ผลลัพธ์ตัวอย่าง
ป้อนค่าองค์ประกอบเมทริกซ์แรก: ป้อนค่าองค์ประกอบเมทริกซ์ที่สอง: เมทริกซ์แรก: 1 2 3 4 5 6 7 8 9 เมทริกซ์ที่สอง: 9 8 7 6 5 4 3 2 1 ผลลัพธ์การบวกเมทริกซ์สองตัว: 10 10 10 10 10 10 10 10 10
หมายเหตุ: โค้ดตัวอย่างใช้อาร์เรย์ขนาดคงที่ [20,20] แต่ใช้แค่ 3x3 ในการทำงานจริง ควรใช้ List<List<int>> หรือไลบรารีคณิตศาสตร์เช่น Math.NET Numerics สำหรับเมทริกซ์ขนาดใหญ่หรือซับซ้อน