두 행렬의 곱셈

C++Beginner
지금 연습하기

소개

이 랩에서는 C++ 프로그래밍 언어를 사용하여 두 행렬 (2 차원 배열) 의 곱셈을 구하는 방법을 배우겠습니다. 초보 학습자도 어려움 없이 따라 할 수 있도록 간단한 단계로 나누어 설명하겠습니다.

필요한 헤더 파일 포함하기

다음 명령을 사용하여 ~/project 디렉토리에 main.cpp라는 새 파일을 생성합니다.

touch ~/project/main.cpp

첫 번째 단계에서는 필요한 헤더 파일을 포함해야 합니다.

#include <iostream>

입력을 받고 출력을 표시하기 위해 iostream 파일을 사용합니다.

main() 함수 정의하기

두 번째 단계에서는 main 함수를 선언합니다.

int main() {

변수 정의하기

세 번째 단계에서는 입력 행렬과 곱셈 결과를 저장하기 위해 변수를 선언해야 합니다.

int row1, col1, row2, col2, i, j, k;
int m1[10][10], m2[10][10], pro[10][10];

여기서 row1 과 col1 은 각각 첫 번째 행렬의 행과 열의 수를 나타내고, row2 와 col2 는 두 번째 행렬의 행과 열의 수를 나타냅니다. m1, m2, pro 변수는 두 개의 입력 행렬과 곱 행렬을 나타냅니다.

사용자로부터 입력 받기

네 번째 단계에서는 사용자로부터 행렬을 입력받습니다.

std::cout << "\nEnter the number of Rows and Columns of first matrix : ";
std::cin >> row1 >> col1;

std::cout << "\nEnter the number of Rows and Columns of second matrix : ";
std::cin >> row2 >> col2;

// input of first matrix
std::cout << "\nEnter the " << row1 * col1 << " elements of first matrix : \n";
for (i = 0; i < row1; i++) {
    for (j = 0; j < col1; j++) {
        std::cin >> m1[i][j];
    }
}

// input of second matrix
std::cout << "\nEnter the " << row2 * col2 << " elements of second matrix : \n";
for (i = 0; i < row2; i++) {
    for (j = 0; j < col2; j++) {
        std::cin >> m2[i][j];
    }
}

여기서는 두 행렬의 행과 열에 대한 사용자 입력을 받고, 각 행렬의 각 요소에 대한 입력을 받습니다.

행렬 곱셈

다섯 번째 단계에서는 행렬을 곱합니다.

if (col1 == row2) {
    for (i = 0; i < row1; i++) {
        for (j = 0; j < col2; j++) {
            pro[i][j] = 0;
            for (k = 0; k < col1; k++)
                pro[i][j] = pro[i][j] + (m1[i][k] * m2[k][j]);
        }
    }
}

여기서는 먼저 행렬이 곱셈에 유효한지 확인합니다. 유효하다면, 소개에서 설명한 대로 곱셈을 수행합니다.

행렬 표시

여섯 번째 단계에서는 행렬을 표시합니다.

std::cout << "\nThe first matrix is : \n";
for (i = 0; i < row1; i++) {
    for (j = 0; j < col1; j++) {
        std::cout << m1[i][j] << "  ";
    }
    std::cout << std::endl;
}

std::cout << "\nThe second matrix is : \n";
for (i = 0; i < row2; i++) {
    for (j = 0; j < col2; j++) {
        std::cout << m2[i][j] << "  ";
    }
    std::cout << std::endl;
}

std::cout << "\nThe Product matrix is : \n";
for (i = 0; i < row1; i++) {
    for (j = 0; j < col2; j++) {
        std ::cout << pro[i][j] << "  ";
    }
    std::cout << std::endl;
}

먼저 두 행렬을 표시한 다음 결과 행렬을 표시합니다.

코드 컴파일 및 실행

코드를 컴파일하려면 터미널을 열고 코드 파일이 저장된 디렉토리로 이동합니다. 이제 다음 명령을 실행하여 코드를 컴파일합니다.

g++ main.cpp -o main

코드가 성공적으로 컴파일된 후, 다음 명령을 실행하여 프로그램을 실행합니다.

./main

요약

축하합니다! C++ 프로그래밍 언어에서 두 행렬의 곱셈을 구하는 방법을 배웠습니다. 행렬 곱셈이 유효한지 확인하는 방법, 행렬을 곱하는 방법, 입력 및 결과 행렬을 표시하는 방법을 배웠습니다. Linux 환경에서 코드를 테스트했으며 코드를 컴파일하고 실행하는 방법을 배웠습니다.