목차
1. 문제 정의
2. 문제 분석
3. 프로그램 디자인
4. 결과 화면
5. 소스 코드
2. 문제 분석
3. 프로그램 디자인
4. 결과 화면
5. 소스 코드
본문내용
1. 문제 정의
=> MATRIX Class의 + * 연산자에 대한 행렬의 덧셈, 행렬의 상수 곱셈, 행렬과 행렬의 곱셈을 하는 부분을 추가하여 프로그램 작성
2차원의 배열을 이해해야 하며 call by value, call by reference, call by pointer를 이해해야 한다.
연산자 +를 써서 행렬의 덧셈을 구현하고
연산자 *를 써서 행렬과 상수의 곱셈을 구현하며
연산자 *를 써서 행렬과 행렬간 곱셈을 구현한다.
2. 문제 분석
게시판에 있던 기존의 프로그램을 분석해보면
Matrix& Matrix::transpose()
{
Matrix* temp = new Matrix(colsize , rowsize);
for (int j=0 ; j < colsize ; j++)
for (int i=0 ; i < rowsize ; i++)
temp->setElement(j , i, data[i][j]);
return *temp;
}
=> 이 부분을 통해 2x3 행렬을 3x2 로 바꾸는 전치행렬을 하는 함수입니다.
[1 2]
[3 2] => [1 3 2]
[2 3] => [2 2 3]
다음으로 main.cpp 파일을 보면
ma.setMatrix( a , 2, 3);
ma.print();
// 2x3행렬 출력
Matrix temp = ma.transpose();
temp.print();
// 2x3행렬을 transpose함수를 이용하여 전치행렬을 구현한 함수를 출력
......
3. 프로그램 디자인
=> 다음으로 연자산 * +에 대하여 어떻게 구현해야 하는가입니다.
해더파일에
Matrix operator+(Matrix &opr);
Matrix operator*(int scalar);
Matrix operator*(Matrix& opr); 추가
① 연산자 +
Matrix Matrix::operator+(Matrix& opr)
{
Matrix* temp = new Matrix(colsize , rowsize);
for(int i = 0; i < rowsize; i++)
{
for(int j = 0; j < colsize; j++)
{
temp->setElement(i, j, data[i][j] + opr.getElement(i,j));
}
}
return *temp;
}
=> MATRIX Class의 + * 연산자에 대한 행렬의 덧셈, 행렬의 상수 곱셈, 행렬과 행렬의 곱셈을 하는 부분을 추가하여 프로그램 작성
2차원의 배열을 이해해야 하며 call by value, call by reference, call by pointer를 이해해야 한다.
연산자 +를 써서 행렬의 덧셈을 구현하고
연산자 *를 써서 행렬과 상수의 곱셈을 구현하며
연산자 *를 써서 행렬과 행렬간 곱셈을 구현한다.
2. 문제 분석
게시판에 있던 기존의 프로그램을 분석해보면
Matrix& Matrix::transpose()
{
Matrix* temp = new Matrix(colsize , rowsize);
for (int j=0 ; j < colsize ; j++)
for (int i=0 ; i < rowsize ; i++)
temp->setElement(j , i, data[i][j]);
return *temp;
}
=> 이 부분을 통해 2x3 행렬을 3x2 로 바꾸는 전치행렬을 하는 함수입니다.
[1 2]
[3 2] => [1 3 2]
[2 3] => [2 2 3]
다음으로 main.cpp 파일을 보면
ma.setMatrix( a , 2, 3);
ma.print();
// 2x3행렬 출력
Matrix temp = ma.transpose();
temp.print();
// 2x3행렬을 transpose함수를 이용하여 전치행렬을 구현한 함수를 출력
......
3. 프로그램 디자인
=> 다음으로 연자산 * +에 대하여 어떻게 구현해야 하는가입니다.
해더파일에
Matrix operator+(Matrix &opr);
Matrix operator*(int scalar);
Matrix operator*(Matrix& opr); 추가
① 연산자 +
Matrix Matrix::operator+(Matrix& opr)
{
Matrix* temp = new Matrix(colsize , rowsize);
for(int i = 0; i < rowsize; i++)
{
for(int j = 0; j < colsize; j++)
{
temp->setElement(i, j, data[i][j] + opr.getElement(i,j));
}
}
return *temp;
}
추천자료
- Sparse Matrix 란 무엇이고 어떻게 사용되는지..
- C언어로 구현한 행렬과 행렬의 곱 자료구조
- Orthogonal Matrix와 회전 행렬, 회전 변환과 좌표계 변환 그리고 로봇좌표계정의
- 희소행렬연산하기
- C언어를 이용한 [2][2]행렬의 덧셈,뺄셈,곱셈,나눗셈 프로그램
- [자료구조] assignment -sparse matrix구현(희소행렬)-
- Matrix 해석 일반 (Matrix operation, 행렬 곱, symmetric, transpose, 등)
- 희소 행렬(sparse matrix)의 곱셈 구현
- C언어로 작성한 행렬 곱셈 프로그램 (Matrix Multi)
소개글