C 프로그래밍 .


52 views
Uploaded on:
Category: Medical / Health
Description
C 프로그래밍 . 7 장 . 김 영 균 ygkim@cespc1.kumoh.ac.kr. 강의 내용. 7. 분기 (Branch) 와 점프 (Jump) • if, else 문 • switch 문 • continue 문 • break,case,default,goto 문 . - 교재 pp234. 예제 7.1  하루 중 최저 기온을 섭씨 온도로 읽어 들이고 입력된 총 항목 수와 영하의 기온을 기록한 백분율을 출력하는 프로그램 .
Transcripts
Slide 1

C 프로그래밍 7 장 김 영 균 ygkim@cespc1.kumoh.ac.kr

Slide 2

강의 내용 7. 분기 (Branch) 와 점프 (Jump) • if, else 문 • switch 문 • proceed 문 • break,case,default,goto 문

Slide 3

- 교재 pp234. 예제 7.1  하루 중 최저 기온을 섭씨 온도로 읽어 들이고 입력된 총 항목 수와 영하의 기온을 기록한 백분율을 출력하는 프로그램 . /* coldday.c - 하루 중 영하로 내려간 비율 */#include <stdio.h> #define SCALE "Celsius" #define FREEZING 0 int main(void) { coast temperature; int solidifying = 0; int days = 0; printf("Enter the rundown of day by day low temperatures. \n"); printf("Use %s, and enter q to stop. \n", SCALE);

Slide 4

while(scanf("%f", &temperature) == 1 ) { days++; if(temperature < FREEZING ) freezing++; } if(days != 0) printf("%d days total:%.1f%% were beneath frigid. \n", days, 100.0 * (coast) solidifying/days); if(days==0) printf("No information entered! \n"); return 0;/* 성공적으로 프로그램을 끝냄 */}

Slide 5

Enter the rundown of day by day low temperatures. Use Celsius, and enter q to stop. 20 11 3 - 4 - 6 - 10 - 2.5 10 8 - 5 q 10 days complete: 50.0% were beneath cold. - if 문의 형식 if(expression) proclamation; - articulation 는 단일문 이거나 단일 블록이나 복합문이 될 수 있음 . - if 문에서는 조건이 맞으면 articulation 의 실행이 한번만 이루어 짐 . - if 문의 한가지 동작을 처리할 것인지 말 것인지를 선택 . on the off chance that else 문은 두 가지 동작 중 한 가지 동작을 선택 할 수 있게 함 .

Slide 6

- if 문에 else 의 추가 if(days != 0) printf("%d days all out: %.1f%% were beneath freezing.\n", days, 100.0 * (glide) solidifying/days); if(days==0) printf("No information entered!\n"); 아래와 같이 else 를 사용해서 다시 작성할 수 있음 . if(days!=0) printf("%d days absolute: %.1f%% were underneath frosty. \n", days, 100.0 * (skim) solidifying/days); else printf("No information entered!\n");

Slide 7

- if else 문의 일반적 형식 if(expression) statement1 else statement2 만약 expression 이 참이면 (0 이 아니면 ), statement1 이 실행됨 , 거짓 또는 0 이면 else 다음에 위치한 statement2 가 실행 됨 . - 복합문을 사용 할 경우 if (x>0) { printf("Increment x:\n"); x++; } else printf("x <= 0 \n");

Slide 8

- getchar() 함수 getchar() 함수는 인수 없이 사용하고 입력된 문자를 리턴 함 . 입력 문자를 읽어 들여서 변수 ch 에 그 값을 대입 . ch = getchar(); 는 scanf("%c", &ch); 와 같다 . - putchar() 함수 인수로 주어지는 문자 값을 출력 한다 . putchar(ch); 는 printf("%c",ch); 와 같다 .

Slide 9

- 교재 pp 240, 예제 7.2/* cypher.c - 입력과 출력 예제 */#include <stdio.h> #define SPACE "/* 따옴표 - 공백 - 따옴표 */int main(void) { singe ch; ch = getchar();/* 문자 입력 */while( ch != "\n" )/* 줄의 끝이 아닌 동안 반복 */{ if ( ch == SPACE )/* 공백은 공백으로 출력 */putchar(ch); else putchar(ch+1);/* 다른 문자인 경우 다음 문자를 출력 */ch = getchar(); } return 0; }

Slide 10

- 교재 pp 241, 예제 7.2/* cypher2.c - 입력과 출력 예제 */#include <stdio.h> #define SPACE "/* 따옴표 - 공백 - 따옴표 */int main(void) { roast ch; while(( ch=getchar() ) !=\'\n\' ) { if(ch==SPACE)/* 공백으로 출력 */putchar(ch); else putchar(ch+1);/* 다른 문자인 경우 다음 문자를 출력 */} return 0; }

Slide 11

- 교재 pp 242, 예제 7.4 전력회사는 고객이 사용하는 에너지의 양에 따라서 요금을 부과 . 어떤 전력회사가 다음과 같이 요금을 부과 . 처음 240kwh 까지 : kwh 당 $0.06898 다음 300kwh 까지 : kwh 당 $0.12032 다음 540kwh 까지 : kwh 당 $0.14022/* electric.c - 전기 요금 계산 */#include <stdio.h> #define RATE1 0.06898/* 처음 240kwh 까지 요금 */#define RATE2 0.12032/* 다음 300kwh 까지 요금 */#define RATE3 0.14022/* 다음 540kwh 까지 요금 */#define BREAK1 240.0/* 요금의 첫번째 분기점 */#define BREAK2 540.0/* 요금의 두번째 분기점 */#define BASE1 (RATE1 * BREAK1) #define BASE2 (BASE1 + (RATE2 * (BREAK2 - BREAK1)))

Slide 12

- 교재 pp 242, 예제 7.4 int main(void) { coast kwh;/* 사용한 전력량 */drift bill;/* 요금 */printf("Please enter the kwh utilized. \n"); scanf("%f", &kwh); if(kwh <= BREAK1) bill = RATE1 * kwh; else if (kwh <= BREAK2)/* 240 에서 540kwh 처리 */bill = BASE1 + (RATE2 *(kwh-BREAK1)); else bill = BASE2 + (RATE3 *(kwh-BREAK2)); printf("The charge for %.1f kwh is $%1.2f. \n", kwh, charge); return 0; }

Slide 13

- else 와 if 의 짝짓기 if( number > 6) if( number < 12 ) printf("You\' re close! \n"); else printf("Sorry, you lose a turn! \n"); - else 는 가장 근접한 if 와 짝을 이룬다 . else 가 첫번째 if 의 짝이라면 , if( number > 6) { if( number < 12 ) printf("You\' re close! \n"); } else printf("Sorry, you lose a turn! \n");

Slide 14

- 교재 pp249, 예제 7.5/* divisors.c - 중첩된 if 문을 사용해서 수의 약수를 출력 */#include <stdio.h> #define NO 0 #define YES 1 int main(void) { long num; long div; int prime; printf("Please enter a number for investigation; "); printf("Enter q to stop. \n"); while( scanf("%ld", &num) ==1) { for(div =2 , prime = YES; (div*div) < = num; div++) {

Slide 15

- 교재 pp249, 예제 7.5 if( num % div ==0 ) { if((div * div) != num) printf("%ld is distinguishable by %ld and %ld. \n", num, div, num/div ); else printf("%ld is detachable by %ld. \n", num,div); prime = NO; } if (prime == YES) printf("%ld is prime. \n", num ); printf("Please enter another number for examination; "); printf("Enter q to stop. \n"); } return 0; }

Slide 16

- if 문을 사용하는 형태들 형식 1 if ( expression ) explanation expression 이 참일 때 , articulation 가 실행 된다 . 형식 2 if ( expression ) explanation 1 else proclamation 2 만약 expression 이 참이면 , articulation 1 이 실행되고 , 그렇지 않을 경우엔 articulation 2 가 실행 된다 .

Slide 17

- if 문을 사용하는 형태들 형식 3 if ( expression 1 ) explanation 1 else if ( expression 2) articulation 2 else proclamation 3 expression 1 이 참이면 , explanation 1 이 실행되고 , 거짓이면 , expression2 가 참이면 articulation 2 가 실행되고 , 두 수식이 모두 거짓일 때 explanation 3 이 실행 된다 .

Slide 18

- 교재 pp252, 예제 7.6/* chcount.c - 비 여백 문자의 수를 세는 프로그램 */#include <stdio.h> #define PERIOD "." int main(void) { int ch; int charcount =0; while (( ch=getchar()) != PERIOD ) { if( ch != " && ch != "\n" && ch != "\t" ) charcount++; } printf("There are %d nonwhitespace characters. \n", charcount ); }

Slide 19

- C 언어의 논리 연산자 (coherent administrator) 연산자 의 미 && AND || OR ! NOT 1. exp1 && exp2 는 exp1 과 exp2 가 모두 참일 때만 참이다 . 2. exp1 || exp2 는 exp1 이나 exp2 중 어느 하나가 참이거나 둘 다 참일 때만 참이다 . 3. !exp1 은 exp1 이 참이면 거짓이고 거짓이면 참이다 .

Slide 20

- 예를 들면 , 5 > 2 && 4 > 7 은 거짓 . 5 > 2 || 4 > 7 은 참 . !( 4 > 7 ) 은 참 . 왜냐하면 , 4 > 7 이 거짓이기 때문 . - 연산 우선 순위 a > b && b > c || b > d 는 (( a > b) && ( b > c ) || ( b > d ) 로 해석 됨 .

Slide 21

- 단어 계수 프로그램 만들기 ( 교재 pp. 255) 의사코드 (pseudo code) read a character while there is more info increment character check

Recommended
View more...