제품

3840 단어
문제:
이진 연산자 *를 오버로드하여 2x2 행렬을 곱합니다. 크기가 2인 2차원 정수형 배열로 Matrix 클래스를 정의합니다. 미리 정의된 값으로 Matrix k의 객체 하나를 초기화합니다. 사용자 값으로 Matrix l의 다른 객체를 초기화합니다. 마찬가지로 결과를 저장할 값이 0인 다른 객체 n을 만듭니다. 이제 표현식 m = k*l을 실행 가능하게 만드는 연산자 함수를 정의합니다.
문제 분석:
문제는 연산자 오버로딩을 사용하여 두 행렬을 빼는 것입니다. mat[2] 데이터 멤버와 void set(), void display() 멤버 함수, 하나의 기본 생성자와 하나의 매개변수화된 생성자를 갖는 클래스가 정의됩니다. 처리 또는 계산 단계에서 이 문제에 대한 두 행렬의 차이 결과를 얻기 위해 함수 행렬 연산자 - (행렬 mat1)를 오버로드하는 연산자가 필요합니다.
입력 변수 처리
변수/계산 출력 변수 필요한 헤더
파일/함수/macr
mat[2] mat[2] mat[2] iostream 행렬 연산자 *
(매트릭스 매트1)

연산:
  • 시작
  • 클래스 행렬과 데이터 멤버 및 멤버 함수 정의 3. 연산자 오버로딩 함수 정의: 행렬 연산자 * (행렬 mat1)
  • 행렬 클래스의 개체 만들기: k,l,m.
  • 행렬 k의 요소를 사전 정의된 값으로 설정
  • 행렬 l의 요소 입력
  • m = k * l 수행
  • 행렬 값 표시: k,l 및 m
  • 중지

  • 순서도:

    소스 코드:

    포함



    네임스페이스 표준 사용;

    클래스 매트릭스
    {
    int 매트[2][2];
    공공의:
    행렬(){}
    friend 행렬 연산자*(행렬 mat1, 행렬 mat2);

    void setMatrix(){
        cout<<"Enter 2x2 matrix: "<<endl;
        for (int i = 0; i < 2; i++)
        {
            for (int k = 0; k < 2; k++)
            {
                cin>> mat[i][k];
            }
    
        }
    
    }
    
    void printMatrix(){
        cout<<"Here you go: "<<endl;
        for (int i = 0; i < 2; i++)
        {
            for (int k = 0; k < 2; k++)
            {
                cout<< mat[i][k]<<" ";
            }
            cout<<endl;
    
        }
    
    
    }
    

    };

    행렬 연산자*(행렬 mat1, 행렬 mat2)
    {
    {
    매트릭스 멀티;
    for(int i=0; i<2; i++)
    {
    for(int j=0; j<2; j++)
    {
    for(int k=0; k<2; k++)
    {
    mult.mat[i][j] += (mat1.mat[i][k] * mat2.mat[k][j]);
    }

            }
        }
        return mult;
    }
    

    }

    정수 메인(){
    행렬 a,b,c;
    a.setMatrix();
    b.setMatrix();
    c=a*b;
    c.printMatrix();

    return 0;
    

    }
    p2.cpp
    ZIP 추출기로 열기
    1/15

    포함



    네임스페이스 표준 사용;

    클래스 매트릭스
    {
    int 매트[2][2];
    공공의:
    행렬(){}
    friend 행렬 연산자*(행렬 mat1, 행렬 mat2);

    void setMatrix(){
        cout<<"Enter 2x2 matrix: "<<endl;
        for (int i = 0; i < 2; i++)
        {
            for (int k = 0; k < 2; k++)
            {
                cin>> mat[i][k];
            }
    
        }
    
    }
    
    void printMatrix(){
        cout<<"Here you go: "<<endl;
        for (int i = 0; i < 2; i++)
        {
            for (int k = 0; k < 2; k++)
            {
                cout<< mat[i][k]<<" ";
            }
            cout<<endl;
    
        }
    
    
    }
    

    };

    행렬 연산자*(행렬 mat1, 행렬 mat2)
    {
    {
    매트릭스 멀티;
    for(int i=0; i<2; i++)
    {
    for(int j=0; j<2; j++)
    {
    for(int k=0; k<2; k++)
    {
    mult.mat[i][j] += (mat1.mat[i][k] * mat2.mat[k][j]);
    }

            }
        }
        return mult;
    }
    

    }

    정수 메인(){
    행렬 a,b,c;
    a.setMatrix();
    b.setMatrix();
    c=a*b;
    c.printMatrix();

    return 0;
    

    }
    -토론 및 결론:
    연산자 오버로딩 기능을 이용하여 두 개의 2x2 행렬을 곱하는 프로그램입니다. 따라서 두 행렬의 곱이 수행되고 표시됩니다. 이 실습에서는 헤더 파일, 클래스, 데이터 멤버 및 함수의 의미, 연산자 오버로딩 함수, 2차원 배열 및 문제 해결 단계를 포함하여 C++ 프로그래밍의 기본 구조를 이해했습니다.

    좋은 웹페이지 즐겨찾기