일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- iOS7 beta2
- ios7 beta3
- beta5
- ios7 베타
- WWDC
- 블로그
- ios7 beta4
- ios 7 beta 5
- iphone
- 아이폰 IOS7
- 아이폰5
- 컴퓨터
- ios9
- ios7 배포
- iphone5
- ios7 beta
- TISTORY
- 티스토리 초대장
- computer
- ios8
- ios
- 베타5
- ios7 gm
- 아이폰
- 티스토리
- ios7 골드마스터
- ios8 beta
- ios7 beta3 버그
- iOS7
- 애플
- Today
- Total
wookss blog
프로시저와 함수의 차이, 매개변수 전달 방식 본문
프로시저와 함수의 차이를 Ada 예를 통해 설명하여라.
부프로그램은 일반적으로 프로시저(procedure)와 함수(function)로 구분한다.
프로시저 |
값을 반환하지 않고 부작용을 만듦. |
함수 |
값을 반환하고 부작용은 없어야 함. |
(부작용을 만든다는 것 : 매개변수나 프로시저 외부에서 정의된 변수의 값을 수정하는 것.)
FORTRAN과 Ada와 같은 언어는 프로시저와 함수를 위해 다른 예약어를 사용하는데, Ada는 프로시저를 정의 할 때, procedure라는 예약어를 사용한다. 그리고 Ada의 함수 정의 형식은 function라는 예약어를 사용한다.
Ada의 프로시저 정의의 예약어 사용 |
Ada의 함수 정의 형식의 예약어 사용 |
procedure incre(x, y: in out integer) is begin x := x+1; y := y+1; end incre; |
function 함수이름 (매개변수) return 반환값타입 is begin return 반환값; end 함수이름; |
매개변수 전달 방식에 따른 전달 값 표현
다음 C문장으로 작성된 프로그램이 있다.
sub(int x, int y) x = x+1; y = y+1; } int main(void) { int data[5] = {1, 2, 3, 4, 5}; int a=1;
sub(a, data[a]); sub(a, data[a]); // a와 data의 값은? } |
다음 각각의 매개변수 전달 방식에 따라 동작할 경우에 변수 a와 data의 값을 나타내어라. (1) 값 전달 a=1, data[a]= 1, 2, 3, 4, 5 (2) 참조 전달 a=3, data[a]= 1, 3, 4, 4, 5 (3) 이름 전달 a=3, data[a]= 1, 2, 4, 5, 5 |
'Study > 프로그래밍' 카테고리의 다른 글
모바일 페이지로 자동 이동시키는 스크립트, 소스 (0) | 2013.12.30 |
---|---|
매크로 함수와 인라인 함수를 사용하는 경우의 장단점 (1) | 2013.05.21 |
연산자, 반복문, 분기문, 구조적 프로그래밍 (0) | 2013.05.14 |
정적 바인딩과 동적 바인딩 (0) | 2013.05.14 |
프로그래밍 처리 기법 (0) | 2013.05.14 |