제품
이진 연산자 *를 오버로드하여 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)
연산:
순서도:
소스 코드:
포함
네임스페이스 표준 사용;
클래스 매트릭스
{
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++ 프로그래밍의 기본 구조를 이해했습니다.
Reference
이 문제에 관하여(제품), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/kritikaacharya/the-products-4775
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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;
}
}
}
}
return mult;
}
return 0;
네임스페이스 표준 사용;
클래스 매트릭스
{
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++ 프로그래밍의 기본 구조를 이해했습니다.
Reference
이 문제에 관하여(제품), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kritikaacharya/the-products-4775텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)