Chapter 6 Repetition.

Slides:



Advertisements
Similar presentations
Ⅰ. 연산자 Ⅱ. 제어 구조. 연산자 : 할당 연산자 - 사용자가 정의한 변수에 임의의 값을 저장하는 기능 strvar = strVar1+ “ Hello ”
Advertisements

Chapter 2. Text Patterns 2.1 ~ 2.3 서울시립대 전자전기컴퓨터공학과 데이터마이닝 연구실 G 노준호.
2014 가을학기 계산 입문 연습 #4 지도교수 : 박성우 조교 : 이다훈. Python 을 설치합시다.
Power Java 제6장 조건과 반복.
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 07. 반복실행을 명령하는 반복문.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
6장 명령문.
C 5장. 제어문 #include <stdio.h> int main(void) { int num;
Chapter 7. 조건문.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
제5장 제어명령
Chapter 07. 반복문.
처음으로 배우는 C 프로그래밍 제2부 기초 제5장 반복문.
7. while 문의 흐름 제어.
Chapter 02 순환 (Recursion).
어서와 Java는 처음이지! 제3장선택과 반복.
6 반복문의 기본 for 문 여러 번 반복하는 작업은 for 문으로!.
7 while 문의 흐름 제어 조건만 만족한다면 무조건 무한 반복!.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
고급 선택 제어문과 반복문 Chapter 9 C에서의 다중 선택 제어문 선 검사 반복 구조와 for 문
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
For/While Syntax & Practice!!
2주차: 변수, 수식, Control Flow.
Part 07 제어 구조 ©우균, 창병모 © 우균, 창병모.
Tail-recursive Function, High-order Function
예제로 배우는 Visual Basic 구구단 작성기로 익히는 반복문
순서도.
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
C#.
4장 제어문 선택문: if 문, if – else 문, switch 문
3. while문 반복문의 종류 while 문 while( 조건식 )        문장;.
Chapter 09 반복문.
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express Slide 1 (of 27)
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
C 언어 교육 02 주차 – scanf & 반복문과 조건문 교육부장 조하정.
어서와 C언어는 처음이지 제14장.
어서와 C언어는 처음이지 제15장.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
7장. 다양한 형태의 반복문. 7장. 다양한 형태의 반복문 7-1 반복문이란? 반복문의 기능 세 가지 형태의 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 7-1 반복문이란? 반복문의 기능 특정 영역을 특정 조건이 만족하는 동안에 반복.
목차. 목차 6.1 반복이란? 6.1 반복이란? 반복문의 종류 6.2 while문.
연산자 (Operator).
제어문 & 반복문 C스터디 2주차.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터 프로그래밍 기초 - 5th : 조건문(if, else if, else, switch-case) -
Hanoi Tower.
Choi Seong Yun 컴퓨터 프로그래밍 기초 #06 : 반복문 Choi Seong Yun
Chapter 03. 주석문과 제어문.
제 5장 제어문 Hello!! C 언어 강성호 김학배 최우영.
김선균 컴퓨터 프로그래밍 기초 - 7th : 함수 - 김선균
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
2007 1학기 08 반복문.
Chapter 08. 함수.
Control Flow 요약.
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
8장. 조건에 따른 흐름의 분기. 8장. 조건에 따른 흐름의 분기 8-1 흐름의 분기가 필요한 이유 상황에 따른 프로그램의 유연성 부여 그림 8-1.
C언어 프로그래밍의 이해 Ch05. 명령문.
-Part1- 제7장 반복문이란 무엇인가.
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문
[ 단원 04 ] 반복과 배열.
7주차: Functions and Arrays
C++ 프로그래밍 기초 √ 원리를 알면 IT가 맛있다 3장. 연산자.
7장. 다양한 형태의 반복문. 7장. 다양한 형태의 반복문 7-1 반복문이란? 반복문의 기능 세 가지 형태의 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 7-1 반복문이란? 반복문의 기능 특정 영역을 특정 조건이 만족하는 동안에 반복.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
어서와 C언어는 처음이지 제16장.
제어문Control Statements
어서와 C언어는 처음이지 제21장.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

Chapter 6 Repetition

반복문 특정 상태(condition)를 만족하는 동안 같은 명령을 반복하여 수행 Loop control expression: 반복이 끝나는 상태를 검사하는 식 Loop control variable: 특별히 loop expression이 특정 변수에 의존할 때, 그 변수

Figure 6-1

Figure 6-2

Figure 6-3

Figure 6-4

초기화 및 변경 초기화 : 루프를 시작하기 전에 준비를 함 루프갱신(updating) 명시적 암묵적 일반적으로 제어변수(control variable)의 값을 줌 루프갱신(updating) 루프를 제어하는 값을 바꿈 이에 따라 제어조건이 참에서 거짓으로 바뀌면 루프를 빠져나옴

Figure 6-5

Figure 6-6

Figure 6-7

계수기 제어 루프 반복되어야 하는 횟수를 알 때 사용 계수기의 값을 증가시키거나 감소시켜서 원하는 횟수만큼 반복했으면 중지시킴 계수기를 저장하는 값을 제어변수(control variable)이라 함

Figure 6-8

C에서의 루프 Algol68의 개념과 유사 조건검사: while문, do-while문 계수기: for문 … 그러나 for문도 조건검사에 사용할 수도 있다. 그러나 되도록 계수기를 이용한 검사에 씀이 바람직

Figure 6-9

Figure 6-10

While문 수행 전 검사 루프 문장 끝에 ‘;’이 나타나지 않는다. while(1) { … } 있어도 오류가 나오지는 않는다… 이유는? while(1) { … } 무한 루프 while(100), while(‘a’) while(num>0) …

Figure 6-11

예제I if (num > 100) num = 100; lineCount = 0; while (num > 0) { if (lineCount < 10) lineCount++; else printf("\n"); lineCount = 1; } /* else */ printf("%4d", num--); } /* while */ return 0;

예제 II int x; int sum = 0; /* Statements */ printf("Enter your numbers: <EOF> to stop.\n"); while (scanf("%d", &x) != EOF) sum += x; printf ("\nThe total is: %d\n", sum); return 0; } /* main */

For루프 세 개의 수식 사용 ‘;’은 불필요 제한 조건이 만족하면 계속 수행 초기화 제한조건 수식변경 ‘;’은 불필요 제한 조건이 만족하면 계속 수행 초기화, 제한조건. 수식변경 부분을 생략할 수도 있음 제한조건이 거짓이 되면 수행을 끝냄 루프의 몸체 부분에서도 while문처럼 제한조건을 변경시킬 수는 있으나 바람직하지 못함 for(;제한조건;)  while(제한조건) : 동일함 for(;;)  무한 수행

Figure 6-12

Figure 6-13

예제 I printf ("\nPlease enter the limit: "); scanf ("%d", &limit); for (i = 1; i <= limit; i++) printf("\t%d\n", i); return 0;

예제 II int main (void) { /* Local Definitions */ int i; int j; /* Statements */ for (i = 1; i <= 3; i++) printf("Row %d: ", i); for (j = 1; j<= 5; j++) printf("%3d", j); printf("\n"); } /* for i */ return 0; } /* main */

Figure 6-14

do … while 루프 수행 후 검사 한 번은 수행 do … while 문의 몸체는 하나의 문장으로 이루어짐  여러 개 문장을 쓰려면 복합문으로 만들어야 함 ‘;’을 꼭 써야 함.

예제 I loopCount = 5; printf("while loop : "); while (loopCount > 0) printf ("%3d", loopCount--); printf("\n\n"); /* 동일한 작업을 하는 두 문장 */ printf("do...while loop: "); do while (loopCount > 0); printf("\n"); return 0; } /* main */

예제 II int main (void) { /* Local Definitions */ int x; int sum = 0; int testEOF; /* Statements */ printf("Enter your numbers: <EOF> to stop.\n"); do testEOF = scanf("%d", &x); if (testEOF != EOF) sum += x; } while (testEOF != EOF); printf ("\nTotal: %d\n", sum); return 0; } /* main */

Figure 6-15

Figure 6-16

제어문의 선택 풀려는 문제에 가장 적합한 것을 선택한다. 그렇게 하면 프로그램이 자연스러워 진다.

쉼표 식 둘 이상의 식이 쉼표로 분리된 식 주로 for문의 초기화에 사용 가장 낮은 우선순위 좌 우선이며, 마지막 값은 오른쪽 값이 됨 for(sum=0, i=1; i<=20; i++) a=(b*=2, c*=2, b+c); /*이렇게 쓰는 것이 꼭 좋지는 않음.

Figure 6-17

복리계산 for (futureVal = presVal, looper = 1; looper <= years; { futureVal = futureVal * (1 + rate/100.0); printf("%3d%11.2lf\n", looper, futureVal); } /* for */

숫자 역으로 출력 printf("Enter a number and I'll print it backward: "); scanf ("%d", &num); while (num > 0) { digit = num % 10; printf("%d", digit); num = num / 10; } /* while */ printf("\nHave a good day.\n"); return 0;

Figure 6-18

2진수를 10진수로 간단히 구형 가능 10진수를 2진수로 …. 어렵지 않음 정수를 읽어서 2진수로 바꾸는 프로그램 작성 :실험

Figure 6-19

루프와 관련된 다른 명령문 break : 루프에서 빠져나옴 continue: 루프 수행을 계속하지만 남은 연산은 하지 않음 주로 제한조건이 for, while, do-while, case문의 중간에 만족하였을 때 사용 되도록 사용을 자제해야 함. continue: 루프 수행을 계속하지만 남은 연산은 하지 않음 while이나 do-while문은 검사식으로 제어가 이동 for문은 변경식으로 제어가 이동 되도록 사용을 자제해야 함 return과 goto

Figure 6-20

Figure 6-21

Figure 6-22

Figure 6-23

Figure 6-24

Figure 6-25

되부름(recursion) 함수가 자신을 다시 부름 특정문제의 정의로부터 바로 프로그램을 할 수 있음 실제 속도가 떨어지므로 개념적으로만 사용, 예외로 일부 문제는 되부름을 사용할 수밖에 없음 특별한 문제가 아니면 반복적 정의로 처리 가능 Factorial, fibonacci number  반복적으로 처리 가능 Tower of Hanoi  반복적으로 처리할 수 없음

Figure 6-26

Figure 6-27

Figure 6-28

Figure 6-29

Figure 6-30

Figure 6-31.a

Figure 6-31.b

Calls: Output: Towers (3, A, C, B) Towers (2, A, B, C) Figure 6-32 Calls: Output: Towers (3, A, C, B) Towers (2, A, B, C) Towers (1, A, C, B) Step 1: Move from A to C Step 2: Move from A to B Towers (1, C, B, A) Step 3: Move from C to B Step 4: Move from A to C Towers (2, B, C, A) Towers (1, B, A, C) Step 5: Move from B to A Step 6: Move from B to C Step 7: Move from A to C

Figure 6-33

Figure 6-34

프로그램 효율성 O(log n) O(n) O(n log n) O(n2) 2학년 2학기에 배움

실습 및 예습 실습 예습 10진수를 2진수로 바꾸는 문제 38번, 51번, 58번 9-15번 풀기, 17, 20, 정수를 바꾸는 문제 실수를 바꾸되 2진수 소수점 10자리까지만 구함 38번, 51번, 58번 예습 9-15번 풀기, 17, 20,