diagrams.net Link

 

Flowchart Maker & Online Diagram Software

Flowchart Maker and Online Diagram Software draw.io is free online diagram software. You can use it as a flowchart maker, network diagram software, to create UML online, as an ER diagram tool, to design database schema, to build BPMN online, as a circuit d

app.diagrams.net

 

 

 

 

연습문제

 

 

예제 53

함수 이용해서 두 수 중 큰 수 찾기

 

두 수를 입력받고, 그 중 큰 수를 찾아 반환한다.

반환하는 로직은 func 함수를 정희하고 사용해서 두 수 중 큰 수를 찾는다.

 

더보기


분석 (설명)

  1. a, b 중 큰 수를 반환하는 func 함수를 정의한다.
  2. m 값을 반환한다.
  3. func 함수를 호출한다. 이 때 a, b 값이 전달된다. 그리고 func 함수에서 반환한 값을 r 에 저장한다.

 


 

설계 (순서도)

 

구현

 

/* 실행결과
정수(2개): 7 3
큰 수: 7
*/

 

 

 

 


 

예제54

함수 이용해서 세 수 중 큰 수 찾기

 

세 수 중 큰 수를 찾아 반환하는 func 함수를 이용해서 세 수 중 큰 수를 찾는다.

 

더보기


분석 (설명)

  1. a, b, c 중 가장 큰 수를 반환하는 func 함수를 정의한다.
  2. m 값을 반환한다.
  3. func 함수를 호출한다. 이 때 a, b, c 값이 전달된다. 그리고 func 함수에서 반환한 값을 r에 저장한다.

 


 

설계 (순서도)

 

구현

 

/* 실행결과
정수(3개): 11 16 7
가장 큰 수: 16
*/

 

 

 

 


 

예제55

함수 이용해서 1부터 10까지의 약수 구하기

 

임의의 수에 대한 약수 구하는 func 함수를 이용해서 1부터 10까지의 수에 대한 약수를 구한다.

 

더보기


분석 (설명)

  1. a의 약수를 구하는 func 함수를 정의한다.
  2. func 함수를 종료한다.

 


 

설계 (순서도)



 

구현

 

/* 실행결과
1: 1 
2: 1 2 
3: 1 3 
4: 1 2 4 
5: 1 5 
6: 1 2 3 6 
7: 1 7 
8: 1 2 4 8 
9: 1 3 9 
10: 1 2 5 10
*/

 

 

 

 



예제56

재귀함수 이용해서 1부터 입력 받은 수까지의 합 구하기

 

재귀함수를 사용하는 방법을 알아보겠습니다.

 

1부터 3까지의 합은 다음과 같습니다.

3 + 2 + 1

 

이것을 다음과 같이 나타낼 수 있습다.

3 + 1부터 2까지의 합

 

여기서 ‘1부터 3까지의 합’을 함수 호출 형식으로 다음과 같이 나타낼 수 있다.

sum(3)

 

sum(3)은 다음과 같은 의미를 지닌다

3 + sum(2)

 

3을 a로 일반화 시키면 다음과 같은데 1부터 a까지의 합을 의미한다

sum(a) = a + sum(a - 1)

 

그런데 1부터 1까지의 합은 1이므로 a가 1인 경우에는 1이 된다

sum(1) = 1

 

이런 내용을 포함해서 다시 정리하면 다음과 같다.

sum(a) = 1 (n ≤ 1)

            = a + sum(a - 1) (그 외)

 

이런 개념을 이용해서 1부터 임의의 수까지의 합을 구하는 sum 재귀함수를 만들어서 1부 터 입력 받은 수까지의 합을 구한다.

 

더보기


분석 (설명)

  1. a의 약수를 구하는 func 함수를 정의한다.
  2. func 함수를 종료한다.

 


 

설계 (순서도)

 

구현

 

/* 실행결과
정수: 10
55
*/

 

 

 

 



예제57

재귀함수 이용해서 피보나치수열 구하기

 

피보나치수열의 a번째 항은 다음과 같다.

fibo(a) = 1 (a≤2)

           = fibo(a-1) + fibo(a-2) (그 외)

 

이런 개념을 이용해서 피보나치수열의 임의의 항을 구하는 fibo 재귀함수를 만들어서 입력 받은 위치에 대한 피보나치수를 구한다.

 

더보기

 

분석 (설명)

  1. 피보나치수열의 a번째 항을 구하는 fibo 함수를 정의한다.
  2. 2 fibo 함수를 재귀호출한다.

 


 

설계 (순서도)

 

구현

 

/* 실행결과
항: 7
13
*/

 

 

 

 



과제

 

과제 47

함수를 이용해서 두 수중 작은 수를 찾는 순서도와 C 프로그램을 작성하여라.

 

 

 


과제 48

소수 판별하는 함수를 이용해서 2부터 10까지의 수에 대해 소수인지 아닌지를 출력하는 순서도와 C 프로그램을 작성하여라

 

 

 


과제 49

계승을 구하는 재귀함수를 이용해서 입력 받은 수에 대한 계승을 구하는 순서도와 C 프로그램을 작성하여라.