Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

โปรแกรม C# สำหรับบวกเมทริกซ์สองตัว (Matrix Addition)

การบวกเมทริกซ์สองตัวใน C# ต้องการให้เมทริกซ์ทั้งสองมีขนาดเท่ากัน (จำนวนแถวและคอลัมน์เท่ากัน) จากนั้นนำองค์ประกอบที่ตำแหน่งตรงกันมาบวกกัน

อัลกอริทึม

  1. ประกาศอาร์เรย์ 3 ตัว: เมทริกซ์ตัวแรก, เมทริกซ์ตัวที่สอง, และเมทริกซ์ผลลัพธ์
  2. รับค่าองค์ประกอบของเมทริกซ์ทั้งสองจากผู้ใช้
  3. วนลูปบวกองค์ประกอบที่ตำแหน่งตรงกัน: result[i,j] = arr1[i,j] + arr2[i,j]
  4. แสดงผลเมทริกซ์ทั้งสาม

ตัวอย่างโค้ดสมบูรณ์

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 สำหรับเมทริกซ์ขนาดใหญ่หรือซับซ้อน