현승일 교수
7주차 3강. 함수 및 변수를 활용한 프로그래밍 실습
학습내용
학습목표
1. 함수의 parent-child 프로그래밍 실습 2. 재귀함수 프로그래밍 실습
3. 다양한 변수를 활용한 프로그래밍 실습 4. 프로그래밍 실습
1. 함수의 parent-child 관계 프로그램을 작성할 수 있다.
2. 재귀함수를 이용한 프로그램을 작성할 수 있다.
3. 다양한 변수를 활용하여 프로그램을 작성할 수 있다.
4. 함수 및 변수를 활용한 프로그램을 작성할 수 있다.
◉
함수의 parent-child 프로그램 실습
• 함수의 원형 선언
• 함수의 parent – child 관계
• 함수 호출 및 값을 주고, 주고 받는 방법 이해
1. 함수의 parent-child 프로그래밍 실습
◉
재귀함수 프로그래밍 실습
2. 재귀함수 프로그래밍 실습
• Factorial을 구하는 프로그램 작성
- Factorial : n! = n * (n-1) * (n-2) * … * 2 * 1
- 재귀호출을 이용하여 프로그램을 작성
◉
다양한 변수를 활용한 프로그래밍 실습
3. 다양한 변수를 활용한 프로그래밍 실습
• 로컬변수, 전역변수의 개념을 이해
• 전역변수를 사용하여 수행한 기능을 static 변수를 이용하도록
프로그램을 변경시켜 봄
학습하기가 끝났습니다.
다음페이지 버튼을 클릭하여
평가문항을 풀어보세요. 4. 프로그래밍 실습
※ 자료실에서 프로그램 소스 코드를 다운로드 받으세요.
실습
4. 프로그래밍 실습(1)
◉
parent-child(1)
1. C언어에서는 main() 함수가 가장 먼저 실행이 된다.
2. main()에서 호출하는 함수는 항상 위쪽에 있어야 한다. (아래에 있는 경우는 함수 원형 선언 필수) 3. 함수는 여러 개를 계속 호출이 가능하다. (parent-child 개념)
실습
4. 프로그래밍 실습(2)
4. main() 함수에서 cal_annual_salary() 함수 호출 시 매개변수 전달 방식을 이해한다.
5. cal_annual_salary() 함수에서 매개변수를 이용하여 값을 계산하고, 이를 다시 child 함수 (cal_tex()에 전달이 가능하다.
◉
parent-child(2)
실습
4. 프로그래밍 실습(3)
6. main()의 서브함수인 cal_annual_salary()에서 호출된 cal_tex() 함수는 매개변수를 이용하여 값을 계산하고, 이를 다시 호출함수로 넘겨준다. (child → parent)
7. cal_annual_salary() 함수는 cal_tex() 함수에서 받은 값을 다시 main() 함수로 넘겨준다.
◉
parent-child(3)
실습
4. 프로그래밍 실습(4)
◉
재귀함수(1)
1. 재귀함수란 자기자신을 호출하는 함수를 말한다.
2. 재귀함수는 factorial 계산, fibinacci 수열 등의 계산 시 효율이 높은 방법이다.
3. main() 함수에서의 호출은 factorial(num)과 같이 단순한 형태로 이루어진다.
실습
4. 프로그래밍 실습(5)
4. Factorial 함수는 5! = 5 * 4 * 3 * 2 * 1과 같은 형태의 계산을 수행한다.
5. 5!의 경우 첫 번째 수행 시 return 5 * Factorial (5-1)과 같이 진행된다.
6. 이후에도 자기자신을 n이 0이 될 때까지 반복적으로 호출한다.
◉
재귀함수(2)
실습
4. 프로그래밍 실습(6)
◉
변수 활용(1)
1. 프로그램상에서 로컬변수, 전역변수, static변수를 구분해 본다.
2. 첫 번째로는 전역변수 total을 선언한 다음 프로그램을 실행시켜 결과 값을 확인한다.
3. 전역변수와 로컬변수의 특징과 범위를 정확하게 이해한다.
실습
4. 프로그래밍 실습(7)
◉
변수 활용(2)
4. AddTotal() 함수 호출 시 로컬변수 num을 매개변수로 넘겨주고, Addtotal() 함수에서는 매개변수로 받은 로컬변수의 값을 전역변수에 더해준다.
→ Addtotal() 함수에서 total += num; 연산 수행 후 전역변수 total의 값이 바뀐다.
어느 함수에서 호출을 하든 total 값은 변경된 값으로 나오게 된다.
실습
4. 프로그래밍 실습(8)
5. 전역변수 int total = 0; 부분을 주석 처리한다.
6. AddTotal() 함수에서 static변수로 total을 선언하고, 초기화 한다. (static int total=0;) 7. 전역변수 total과 static변수 total이 같은 역할을 하는 것을 확인한다.
◉
변수 활용(3)
실습점검
• 실습 재미있게 해보셨나요?
‘함수 및 변수를 활용한 프로그래밍 실습(변수 활용)’ 학습의 완성한 화면과 자신의 실습 결과물을 비교해 보세요.
1. 함수에서의 parent-child 구조를 설명할 수 있나요?
2. 재귀함수의 동작원리를 설명할 수 있나요?
3. 전역변수, 로컬변수, static 변수의 사용법을 설명할 수 있나요?
예 예 예
아니오
아니오
아니오
실습점검
1. 함수의 parent-child 구조
- 함수는 parent-child 구조와 같이 계속적인 호출이 가능하다.
2. 재귀함수
- 재귀함수란 효율적인 처리를 위하여 함수자신을 호출하는 것을 말한다.
3. 전역변수, 로컬변수, static변수
- 함수에서 { } 내부에 정의되면 로컬변수, 외부에 정의되면 전역변수이다.
- 전역변수는 프로그램이 시작되면 끝날 때까지 소멸되지 않는다.
- 전역변수는 사용을 줄이는 것이 좋으며, static변수 사용 등으로 보완이 가능하다.
◉