Skip to Content
CoursesCSC102การบวกเมทริกซ์ขนาด 2x2

การบวกเมทริกซ์ขนาด 2x2

โจทย์

เขียนโปรแกรมที่อ่านเมทริกซ์ขนาด 2 x 2 จำนวนสองเมทริกซ์ และแสดงผลรวมของทั้งสองเมทริกซ์ เมทริกซ์ที่จะนำมาบวกกันต้องมีขนาดเท่ากันและมีประเภทของสมาชิกที่เหมือนกันหรือเข้ากันได้

ตัวอย่างเช่น สำหรับเมทริกซ์ขนาด 2 x 2 สองเมทริกซ์ a และ b, ผลลัพธ์ c คือ

[a11a12a21a22]+[b11b12b21b22]=[a11+b11a12+b12a21+b21a22+b22]\begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix} + \begin{bmatrix} b_{11} & b_{12} \\ b_{21} & b_{22} \end{bmatrix} = \begin{bmatrix} a_{11} + b_{11} & a_{12} + b_{12} \\ a_{21} + b_{21} & a_{22} + b_{22} \end{bmatrix}

ถ้าเมทริกซ์ 1 คือ 1 2 3 4 และเมทริกซ์ 2 คือ 0 2 4 1 เมทริกซ์จะถูกบวกกันดังนี้:

[1.02.04.05.0]+[0.02.01.04.5]=[1.04.05.09.5]\begin{bmatrix} 1.0 & 2.0 \\ 4.0 & 5.0 \end{bmatrix} + \begin{bmatrix} 0.0 & 2.0 \\ 1.0 & 4.5 \end{bmatrix} = \begin{bmatrix} 1.0 & 4.0 \\ 5.0 & 9.5 \end{bmatrix}

คำแนะนำ: ใช้ double เป็นประเภทข้อมูล

InputOutput
1 2 4 5
0 2 1 4.5
1.0 4.0
5.0 9.5

โค้ด

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double[][] matrixA = new double[2][2]; double[][] matrixB = new double[2][2]; for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { matrixA[i][j] = scanner.nextDouble(); } } for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { matrixB[i][j] = scanner.nextDouble(); } } for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { double sum = matrixA[i][j] + matrixB[i][j]; System.out.print(sum + " "); } System.out.println(); } } }

คำอธิบาย

import java.util.Scanner;
  • เราเริ่มต้นด้วยการนำเข้า (import) คลาส Scanner ซึ่งใช้สำหรับการรับข้อมูลจากผู้ใช้
public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);
  • เราสร้างคลาสหลักชื่อ Main
  • เมธอด main เป็นจุดเริ่มต้นของโปรแกรม
  • เราสร้างออบเจ็กต์ Scanner เพื่อรับข้อมูลจากผู้ใช้
double[][] matrixA = new double[2][2]; double[][] matrixB = new double[2][2];
  • เราสร้างอาร์เรย์สองมิติสองชุด matrixA และ matrixB ขนาด 2x2 เพื่อเก็บข้อมูลของเมทริกซ์สองเมทริกซ์
  • เราใช้ double เป็นประเภทข้อมูลตามคำแนะนำ เพื่อรองรับทั้งจำนวนเต็มและทศนิยม
for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { matrixA[i][j] = scanner.nextDouble(); } }
  • เราใช้ลูปซ้อนเพื่อรับค่าจากผู้ใช้สำหรับเมทริกซ์ A
  • scanner.nextDouble() ใช้เพื่อรับค่าทศนิยมจากผู้ใช้
for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { matrixB[i][j] = scanner.nextDouble(); } }
  • เราทำเช่นเดียวกันเพื่อรับค่าสำหรับเมทริกซ์ B
for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { double sum = matrixA[i][j] + matrixB[i][j]; System.out.print(sum + " "); } System.out.println(); }
  • เราใช้ลูปซ้อนอีกครั้งเพื่อบวกค่าในตำแหน่งเดียวกันของทั้งสองเมทริกซ์
  • sum เก็บผลรวมของสมาชิกในตำแหน่งเดียวกันของทั้งสองเมทริกซ์
  • เราใช้ System.out.print() เพื่อแสดงผลลัพธ์ในแต่ละตำแหน่ง โดยเว้นวรรคระหว่างแต่ละค่า
  • System.out.println() ใช้เพื่อขึ้นบรรทัดใหม่หลังจากแสดงผลครบทุกคอลัมน์ในแต่ละแถว
ปรับปรุงล่าสุด