김선균 (kyun@kangwon.ac.kr) 2017. 05. 02 컴퓨터 프로그래밍 기초 - 7th : 함수 - 김선균 (kyun@kangwon.ac.kr) 2017. 05. 02
< 목 차 > 과제없습니다! Review 과제설명 break문 continue문 함수 함수의 구조 함수를 이용한 프로그래밍 함수의 원형을 이용한 프로그래밍 과제없습니다!
과제 #3 설명 #include <stdio.h> int main(void) { int number, x, y; printf(“-------------------------\n”); printf(“1. 덧셈 (add)\n2. 뺄셈 (sub)\n3. 곱셈 (mul)\n4. 나눗셈 (div)\n5. 종료 (exit)\n"); printf(“원하는 메뉴를 선택 하세요 : “); scanf(“%d”, &number);
과제 #3 설명 default: printf(“지원하지 않는 메뉴입니다\n”); } switch(number) { case 1: printf(“두 개의 정수를 입력 : “); scanf(“%d %d”, &x, &y); printf(“연산 결과는 %d\n”, x+y); break; case 2: printf(“연산 결과는 %d\n”, x-y); . case 5: printf(“종료 하겠습니다\n”); default: printf(“지원하지 않는 메뉴입니다\n”); }
과제 #3 설명 if(number == 1) { printf(“두 개의 정수를 입력 : “); scanf(“%d %d”, &x, &y); printf(“연산 결과는 %d\n”, x+y); } else if(number == 2) printf(“연산 결과는 %d\n”, x-y); . else if(number == 5) printf(“종료 하겠습니다\n “); else printf(“지원하지 않는 메뉴입니다\n“);
3. 과제 #3 조건문(if-else)과 switch문을 이용하여 출력화면을 작성하세요
과제 설명 // while 문을 이용한 계산 #include <stdio.h> int main(void) { int n, i int sum = 0; i = n; printf(“입력 : “); scanf(“%d”, &n); while(n) sum += n * n; n--; } printf(“1부터 %d까지의 합은 :\n“, i, sum); return 0;
과제 설명 // for 문을 이용한 계산 #include <stdio.h> int main(void) { int n, i; int sum = 0; printf(“입력 : “); scanf(“%d”, &n); for(i = 1; i <= n; i++) sum += i * i; } printf(“1부터 %d까지의 합은 :\n“, n, sum); return 0;
과제 설명 // 반복문을 이용하지 않은 계산 #include <stdio.h> int main(void) { int n; int sum = 0; sum = n * (n + 1) * (2 * n + 1) / 6 //sum = 1*1 + 2*2 + 3*3 + 4*4 …………. printf(“1부터 %d까지의 합은 :\n“, n, sum); return 0; }
0. Review while 문의 사용 – 조건이 만족할 때 까지 반복 사용법 while( 조건 ) { 조건 만족 시 반복할 내용 증감문; } 보통의 경우 증감문 필수
0. Review do while 문의 사용 – 일단 한번 실행 후 반복 결정!! 사용법 do { 조건 만족 시 반복할 내용 증감문; } while( 조건 ); 보통의 경우 증감문 사용 필수 세미콜론 사용에 유의
0. Review for 문의 사용 - 초기화, 조건, 증감문을 한번에 !! 사용법 예 : ⑤ ① ② ④ 조건에 만족할 때 반복할 내용 } ③ 세미콜론 사용에 유의 int i; for(i=0;i<5;i++) { printf(“i의 값은 %d입니다.\n, i); }
0. Review 다음과 같은 프로그램을 작성하세요!!
1. break 문 break 문 break 문은 반복 루프를 벗어나기 위하여 사용한다. 반복 루프 안에서 break 문이 실행되면 반복 루프를 빠져 나오게 된다/ 반복루프 break break를 만나면 탈출할 수 있읍니다.
1. continue 문 현재의 반복을 중단하고 다음 반복을 시작하게 한다
1. break 와 continue
함수 함수의 기본 구조
3. 함수를 이용한 프로그래밍 예제 두 수 중 큰 값을 출력하는 함수 #include <stdio.h> int get_max(int x, int y) { if( x > y ) return x; else return y; } int main(void) int x, y; printf(“두 수를 입력하세요 : “); scanf(“%d %d”, &x, &y); printf(“두 수 중 큰 수는? : %d\n”, get_max(x, y) ); return 0;
3. 함수를 이용한 프로그래밍 예제 별표 기호를 이용하여 정사각형 그리는 프로그램 #include <stdio.h> int draw_rect(int size) { int x, y; for(y=0; y<size; y++) { for(x=0; x<size; x++) { printf(“*”); } printf(“\n”); int main(void) int num; printf(“정사각형의 크기를 입력하세요 : “); scanf(“%d”, &num); draw_rect(num); return 0;
3. 함수를 이용한 프로그래밍 예제 Factorial 값을 구하는 프로그램 #include <stdio.h> int factorial(int n) { int i, result = 1; for(i=1; i<=n; i++) { result = result * i; } return result; int main(void) int num; printf(“정수를 입력하세요 : “); scanf(“%d”, &num); printf(“%d!의 값은 %d입니다.\n”, num, factorial(num)); return 0;
3. 함수를 이용한 프로그래밍 예제 xy (거듭제곱)을 구하는 함수 #include <stdio.h> int power(int x, int y) { int i, result = 1; for(i=0; i < y; i++) { result = result * x; } return result; int main(void) int x, y; printf(“두 수를 입력하세요 : “); scanf(“%d %d”, &x, &y); printf(“%d의 %d 제곱은? : %d\n”, x, y, power(x, y) ); return 0; 두 수를 입력하세요 : 3 4 3의 4 제곱은 ? : 81
4. 함수원형을 이용한 프로그래밍 Main 함수 이전에 함수를 정의하고 구현해야 할까? 그렇지 않다 ! 함수원형 – 대략적인 함수의 틀만 잡아놓고 뒤에서 자세하게 구현 함수원형 : 함수의 반환형, 이름, 매개변수를 미리 알려주는 것 ( 미리 알려주지 않으면 컴퓨터는 모른다... ) 함수 정의 후 ‘;’을 붙여준다.
4. 함수원형을 이용한 프로그래밍 정수의 제곱을 계산하는 함수 #include <stdio.h> int square(int n); int main(void) { int i, result; for(i=0; i<5; i++) { result = square(i); printf(“%d의 거듭 제곱은 : %d\n”, i, result); } return 0; int square(int n) return n*n; 0의 거듭 제곱은 : 0 1의 거듭 제곱은 : 1 2의 거듭 제곱은 : 4 3의 거듭 제곱은 : 9 4의 거듭 제곱은 : 16
4. 함수원형을 이용한 프로그래밍 1부터 입력한 수까지 정수의 합을 구하는 함수 #include <stdio.h> int compute_sum(int n); int main(void) { int n, sum; printf(“정수를 입력하시오 : “); scanf(“%d”, &n); sum = compute_sum(n); printf(“1부터 %d까지의 합은 %d입니다.\n”, n, sum); return 0; } int compute_sum(int n) int i, result = 0; for(i=1; i<=n; i++) { result += i; return result; 정수를 입력하시오 : 10 1부터 10까지의 합은 55입니다.
4. Q&A