행렬의 덧셈(메모리할당)
- 최초 등록일
- 2004.10.17
- 최종 저작일
- 2004.10
- 12페이지/ 한컴오피스
- 가격 1,000원
소개글
프로그램의 소스의 설명이 자세합니다. 주석도 달아놓았구요 또한 프로그램의 결과도 있습니다. 상세한 설명이 포인트입니다.
컴파일 실행환경
비쥬얼 스튜디오에거 가능합니다.
본문내용
<소스분석>
1. MAX변수의 상수선언
①을 보면 MAX 변수를 5로 선언하게 된다. 상수로 변수를 선언하게 되면 그 다음부터는 변수의 값을 바꿀 수 없게 된다. MAX는 2차원 배열의 크기를 정하는 부분이다. 5*5행렬까지의 크기를 가지게 된다. 다른 방식으로는 const int MAX=5; 가 있다.
2. 함수의 프로토 타입 설정
②, ③, ④부분을 보면 함수의 프로토 타입을 설정하는 부분이다.
void input_matrix (int mat[][MAX], int row, int col); <- ②
void add_matrix (int mat1[][MAX], int mat2[][MAX], int result[][MAX], int row, int col); <- ③
void output_matrix (int mat[][MAX], int row, int col); <- ④
②에서보면 input_matrix 함수는 인수를 3개를 가진다. mat[][MAX]는 main()함수의 mat1[MAX][MAX]과 mat2[MAX][MAX]의 주소 값을 넘겨받게 된다. call by adress로 입력받아서 최종적으로 mat1, mat2 배열의 주소 값에 데이터를 선언하게 한다. int row, int col은 call by value로 선언한 부분으로 더하게 될 행렬의 행과 열의 데이터 값을 입력받는다. 또한 일차원 배열과 달리 MAX값을 주는 것은 공간을 정확히 넘겨주기 위한 것이다. 예를 들면 3차원 배열에서는 mat[][MAX][MAX]와 같은 형태로 선언해주게 된다.
③의 add_matrix 함수는 인수를 5개를 가진다. row와 col이 같은 행렬을 입력받아 2개의 행렬을 더해주는 함수이다. 배열로 선언된 부분은 배열의 메모리 값을 넘겨받아 그 배열 자체의 데이터 값을 변환해주기 위해서 adress를 넘겨주는 것이다. 인수들의 선언방식은 ②와 동일하다.
④의 output_matrix 함수는 인수를 3개를 가진다. 최종 결과값을 화면에 뿌려주는 역할을 하는 함수이다. 인수의 선언방식은 ②와 동일하다
참고 자료
없음