Top Banner
© 2015 생능출판사 All rights reserved CHAPTER 11 조건으로 반복하기
31

쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

Feb 21, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

CHAPTER 11 조건으로 반복하기

Page 2: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

반복문

Q) 반복 구조는 왜 필요한가?

A) 같은 처리 과정을 되풀이하는 것이 필요하기 때문이다. 학생

30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야

한다.

Page 3: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 #include <stdio.h>

int main(void)

{

printf("환영합니다. ");

printf("환영합니다. ");

printf("환영합니다. ");

printf("환영합니다. ");

printf("환영합니다. ");

return 0;

}

환영합니다.

환영합니다.

환영합니다.

환영합니다.

환영합니다.

같은 처리가 반복된다.

Page 4: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

반복문의 종류

Page 5: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

스크래치에서의 반복문

Page 6: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

스크래치 포탄궤적

Page 7: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

while 문

while 문은 어떤 조건을 정해놓고 반복을 하는 구조

Page 8: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

while 문의 구조

Page 9: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

기본 예제 #include <stdio.h>

int main(void)

{

int i = 0;

while (i < 5)

{

printf ("환영합니다. ");

i++;

}

printf ("반복이 종료되었습니다. ");

return 0;

}

환영합니다.

환영합니다.

환영합니다.

환영합니다.

환영합니다.

반복이 종료되었습니다.

Page 10: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

핵심 예제: 0부터 9까지 출력

0, 1, 2, ..,, 9까지를 차례대로 화면에 출력하는 프로그램을 작성하여

보자.

Page 11: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 소스 #include <stdio.h>

int main(void)

{

int i = 0;

while (i < 10)

{

printf ("%d ", i);

i++;

}

printf(“\n”);

return 0;

}

Page 12: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

핵심 예제: (1+2+...+9+10) 계산

(1+2+...+9+10)의 값을 계산하는 프로그램을 작성하여 보자.

Page 13: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 소스 #include <stdio.h>

int main(void)

{

int i = 1;

int sum = 0;

while (i <= 10)

{

sum = sum + i;

i++;

}

printf("합계=%d\n", sum);

return 0;

}

Page 14: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

핵심 예제: 팩토리얼 계산

팩토리얼을 계산하는 프로그램을 작성하여 보자. 팩토리얼 n!은 1부터 n까지의 정수를 모두 곱한 것을 의미한다.

Page 15: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 소스 #include <stdio.h>

int main(void)

{

int i = 1;

int factorial = 1;

while (i <= 10)

{

factorial = factorial * i;

i++;

}

printf ("10!은 %d입니다. \n", factorial);

return 0;

}

Page 16: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

핵심 예제: 구구단 출력

구구단 중에서 3단을 반복문을 이용하여 출력하여 보자. 3*1, 3*2,

3*3, .., 3*9까지 9번 반복시키면 출력하면 될 것이다.

Page 17: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 소스 #include <stdio.h>

int main(void)

{

int i = 1;

while (i <= 9)

{

printf("3*%d = %d\n", i, 3*i);

i++;

}

return 0;

}

Page 18: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

핵심 예제: 최소값 구하기

사용자로부터 받은 정수 중에서 최소값이나 최대값을 찾아 보자.

Page 19: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 소스 #include <stdio.h>

#include <limits.h>

int main(void)

{

int number, min_value = INT_MAX;

printf("정수를 입력하시오(종료는 Ctrl+z)\n");

while(scanf("%d", &number) != EOF)

{

if( number < min_value )

min_value = number;

}

printf("최소값은 %d \n", min_value);

return 0;

}

Page 20: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

핵심 예제: 카운트 다운 프로그램

5->4->3->2->1과 같이 카운트를 하고 카운트가 0이 되면 “발사”라고

화면에 출력한다.

Page 21: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 소스 #include <stdio.h>

int main(void)

{

int count;

printf("숫자를 입력하시오: ");

scanf("%d", &count);

while( count > 0 ) {

printf("%d \n", count);

count--;

}

printf("발사! \n");

return 0;

}

Page 22: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

핵심 예제: 배수의 합 계산

1부터 100사이의 모든 3의 배수의 합을 계산하여 출력하는 프로그램을 반복 구조를 사용하여 작성하라.

Page 23: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 소스 #include <stdio.h>

int main(void)

{

int number;

int sum = 0;

number = 1;

while( number <= 100 )

{

if( number %3 == 0 )

sum += number;

number++;

}

printf("1부터 100 사이의 모든 3의 배수의 합은 %d입니다. \n", sum);

return 0;

}

Page 24: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

do-while 문

반복 조건을 루프의 처음이 아니라 루프의 끝에서 검사한다는 것이

다르다.

Page 25: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

핵심 예제: 기본 예제

do-while 문을 사용하여서 “Hello 10“부터 ”Hello 1“까지를 출력하여

보자.

Page 26: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 소스 #include <stdio.h>

int main(void)

{

int i = 10;

do{

printf("Hello %d\n", i);

i = i - 1;

} while (i > 0);

return 0;

}

Page 27: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

핵심 예제: 0을 입력할 때까지 합계

사용자로부터 양수를 받아서 합계를 한다. 사용자가 0을 입력하면 반복을 중단하고 이제까지의 합계를 화면에 출력한다.

Page 28: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 소스 #include <stdio.h>

int main(void)

{

int x, sum = 0;

do {

printf("정수를 입력하시오(0이면 종료) : ");

scanf("%d", &x);

sum = sum + x;

} while (x != 0);

printf("정수의 합계 : %d \n", sum);

return 0;

}

Page 29: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

핵심 예제: 신호등 프로그램

예를 들어서 사용자가 신호등의 색상을 나타내는 문자인 ‘r’, ‘y’, ‘g’ 을

입력할 때까지 반복해보자.

Page 30: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 소스 #include <stdio.h> int main (void) { char color; do { printf ("신호등 색상을 입력하세요(r, y, g): "); scanf (" %c", &color); } while (color!='r' && color!='y' && color!='g'); switch (color) { case 'r': printf ("정지! \n"); break; case 'y': printf ("조심! \n"); break; case 'g': printf ("진행! \n"); break; } return (0); }

Page 31: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

Q & A