1 / 34

최신 C 프로그래밍 언어 문제해결에서 프로그래밍까지

최신 C 프로그래밍 언어 문제해결에서 프로그래밍까지. 개정판. 5 장 : 선택 제어 구조 도서출판 - 인터비젼. 5 장 선택 제어 구조. 학습목표 1. 선택 제어구조의 문법을 이해한다 . 2. if-else 제어구조 이해 3. switch case 제어구조의 이해 4. 선택 구조 활용 방법을 이해한다. 목차. 5 장 선택 제어 구조 예습시간 1. 선택 제어 구조 - if else 구조 [ 기초다지기 ] if else 구조 익히기

hector
Télécharger la présentation

최신 C 프로그래밍 언어 문제해결에서 프로그래밍까지

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 최신 C프로그래밍 언어문제해결에서 프로그래밍까지 개정판 5장 : 선택 제어 구조 도서출판 - 인터비젼

  2. 5장 선택 제어 구조 • 학습목표 • 1. 선택 제어구조의 문법을 이해한다. • 2. if-else 제어구조 이해 • 3. switch case 제어구조의 이해 • 4. 선택 구조 활용 방법을 이해한다.

  3. 목차 • 5장 선택 제어 구조 • 예습시간 • 1. 선택 제어 구조 - if else 구조 • [기초다지기] if else 구조 익히기 • 2. 선택 제어 구조 - switch case 구조 • [기초다지기] switch 구조 익히기 • 실습시간 • if else 구조 활용 • switch case 구조 활용 • 연습시간 • 선택 제어문 분석

  4. 선택 제어 구조 – if else 구조 예습시간 – 1 교시

  5. 선택 제어 구조 – if else 구조 • 학습 개요 • 선택 제어 구조 중 if 구문에 대해 알아본다. • 기본 if 문 및 if else 구조의 이해 • 중첩 if 구문의 이해 • 다중 선택 구조 (if ~ else if 구조)의 이해

  6. 선택 제어 구조 – if else 구조 • 제어구조의 종류 • 순차 구조 • 한 문장 수행 후 순차적으로 다음 문장 수행 (일반적 프로그램 흐름) • 선택 구조 • 조건에 따른 분기 처리 • 반복 구조 • 일정 구간의 반복 처리 • if 선택 구조 기본 • if 문은 조건에 따른 제어 흐름을 결정 • if 문에서 사용되는 조건 식은 논리와 관계 연산자를 포함 • if 구조는 단지 참인 경우만을 처리

  7. 선택 제어 구조 – if else 구조 • if 선택 구조 예

  8. 선택 제어 구조 – if else 구조 • if else 구조 • 참과 거짓인 경우를 나누어 처리

  9. 선택 제어 구조 – if else 구조 • 중첩 if 구조 • if문 안에 다른 if 문이 포함되어 표현되는 구조 • 조건에 의해 만족되는 결과에 대한 조건 비교 • 모든 조건 구조는 다른 조건 구조를 포함할 수 있다. • 중첩 if 문 사용 예 • 01 #include <stdio.h> • 02 void main(){ • 03     int x, y; • 04     scanf("%d", &x); • 05     if(x > 0){ • 06             y = scanf("%d", &y); • 07             if(y > 0){ • 08                     printf(" x 와 y는 모두 양수이다.“); • 09             }else{ • 10                     printf(" x는 양수 y는 0이나 음수이다."); • 11     }else{ • 12             printf("x는 음수입니다."); • 13     } • 14 }

  10. 선택 제어 구조 – if else 구조 • 다중 선택 구조 (if ~ else if 구조) • if else 구조의 확장 • 조건에 맞지 않을 경우 다시 비교가 이루어짐 • 비교 및 판단의 조건이 여러 개 일 경우 else 절 이하에 다시 if문 포함 시키는 구조 • 사용 형식

  11. 선택 제어 구조 – if else 구조 • 다중 선택 구조 활용 예 • 조건에 만족하는 등급 계산 프로그램 • 01 #include<stdio.h> • 02 void main(){ • 03     int score; • 04     char grade; • 05     // 성적 입력 • 07     printf("성적을 입력하세요 : “); • 06     scanf(“%d", &grade); • 07     if(score >= 90) {       // 90~ 100 사이 • 08             grade = 'A'; • 09     }else if(score >= 80){  // 80 ~ 89 사이 • 10             grade = 'B'; • 11     }else if(score >= 70){  // 70 ~ 79 사이 • 12             grade = 'C'; • 13     }else if(score >= 60){  // 60 ~ 69 사이 • 14             grade = 'D'; • 15     }else{                  // 60 미만 • 16             grade = 'F'; • 17     } • 18     printf(" 성적 %d 의 등급은 %c 입니다. \n", score, grade); • 19 } 등급 조건         성적 : 90 ~ 100     등급 : ‘A' 성적 : 80 ~ 89         등급 : ‘B' 성적 : 70 ~ 79         등급 : ‘C' 성적 : 60 ~ 69         등급 : ‘D' 성적 : 60 미만          등급 : ‘F'

  12. [기초다지기] if else 구조 익히기 • 1. if문을 이용한 프로그램 (덧셈/뺄셈) 선택 구문 • 분석 • 입력(A/S) 값에 의해 선택적으로 수행하는 구문 • 입력 문자에 대해 처음 if 문에서 A를, 두 번째 if 문에서 B를 비교하고 A일 경우 덧셈을, B일 경우 뺄셈을 수행하는 if 선택 구조 • 이프로그램은 if-else구조로 변경 가능 • <다음장>

  13. [기초다지기] if else 구조 익히기 • 1. if문을 이용한 프로그램 선택 구문 <계속> • 분석 • if 문을 else if 구문으로 변경 • 처음 if문의 비교가 만족할 때 그 다음의 if 문을 비교하지 않는 구조 • 입력은 A 또는 S로 두 작업을 모두 수행하는 것이 아니라 단지 하나만 수행 • 하나의 조건 만족 시 더 이상의 비교는 필요하지 않는 경우에 사용

  14. [기초다지기] if else 구조 익히기 • 2. 1번에서 곱셈,나눗셈, 다른 입력 처리 작업 추가 • 분석 • 나눗셈 결과는 실수 값을 나타내야 하므로 입력과 출력 결과 모두 실수 형으로 변경 • (A,S,M,D) 작업 중 하나의 입력을 통해 if조건에서 이 4개의 작업 중 하나가 선택되었는지를 확인한 후 두 수의 입력을 통해 덧셈, 뺄셈, 곱셈 나눗셈을 수행 • 나눗셈일 경우 분모가 0인지를 비교하여 0일 경우 에러메시지 출력 후 종료

  15. 선택 제어 구조 – switch case 구조 예습시간 – 2 교시

  16. 선택 제어 구조 – switch case 구조 • 학습 개요 • 선택 구조의 다른 형태인 switch case 구조를 이해한다. • if 구조와의 차이점과 switch 문의 특징에 대해 알아본다. • break 문을 다룬다.

  17. 선택 제어 구조 – switch case 구조 • switch 구조 • if문은 참과 거짓이라는 두 조건에 대한 분기 제공 • 3개 이상의 조건에 대해 중첩된 if나 다중 if문 사용으로 인해 프로그램의 복잡성 증가 • 이러한 문제 해결을 위해 switch 구조 사용 • 다중 조건에 대한 분기 구조 제공 switch case 구조

  18. 선택 제어 구조 – switch case 구조 • switch 구문의 특징 • 1. switch문에서 비교 식은 정수형 상수 값이어야 한다. • 2. case 문의 label 값은 정수나 문자 상수 또는 정수를 나타내는 식이다. • 정확한 표기 : • case 1 :       // label 1은 정수 상수 이므로 적합 • case 'A' :      // label 값이 문자 상수 ‘A'이므로 적합 • case 'B'*2 :   // label 값이 정수를 만드는 식이므로 적합 • 잘못된 표기 : • case 3.14 :    // label은 실수 값이 올 수 없다. • case a > b && b< c : // label에 관계나 논리 연산을 할 수 없다. • case "Sunday" : // label에 문자열이 올 수 없다. • 3. default : 문장은 생략될 수 있다.

  19. 선택 제어 구조 – switch case 구조 • switch case 활용 예 • 두 개의 값과 하나의 연산자 입력을 통한 계산 결과 출력 • 01 #include <stdio.h> • 02 void main(){ • 03     int x, y; • 04     char op; • 05     printf("두값과 연산자를 입력하여라 (예 10 + 4 ) \n"); • 06     printf("연산자의 종류는 ("+,-,*,/)이다. \n"); • 07     scanf("%d %c %d", &x, &op, &y); • 08     switch(op){ • 09             case '+' : printf(" x + y = %d \n", x+y); • 10             case '-' : printf(" x - y = %d \n", x-y); • 11             case '*' : printf(" x * y = %d \n", x*y); • 12             case '/' : printf(" x / y = %d \n", x/y); • 13     } • 14 }            • 입력 데이터 : 4 – 2 출력 결과 : ? 4 – 2 = 2 4 * 2 = 8 4 / 2 = 2

  20. 선택 제어 구조 – switch case 구조 • break 문 • 해당 지점에 속한 블록을 빠져 나오는 역할을 수행 • 자신이 속한 하나의 블록("{ }")만을 빠져 나온다. • break문을 포함하여 이전 프로그램 수정 • 01 #include <stdio.h> • 02 void main(){ • 03     int x, y; • 04     char op; • 05     printf("두값과 연산자를 입력하여라 (예 10 + 4 ) \n"); • 06     printf("연산자의 종류는 ("+,-,*,/)이다. \n"); • 07     scanf("%d %c %d", &x, &op, &y); • 08     switch(op){ • 09             case '+' : printf(" x + y = %d \n", x+y); • 11                        break; • 12             case '-' : printf(" x - y = %d \n", x-y); • 13                        break; • 14             case '*' : printf(" x * y = %d \n", x*y); • 15                        break; • 16             case '/' : printf(" x / y = %d \n", x/y); • 17     } • 18 }           

  21. [기초다지기] switch 구조 익히기 • 1. 예습 1교시 문제 2번을 Switch 구조로 변경

  22. [기초다지기] switch 구조 익히기 • 1. 예습 1교시 문제 2번을 Switch 구조로 변경 • 분석 • 다중 if 구조는 switch case 구조로 변경 가능 • switch(input)에서 input 값은 정수형(문자) 상수 값이어야 한다 • 이 프로그램에서 input는 문자 상수로 조건을 만족 • 하나의 case 문이 끝나는 지점에 break 문을 작성 • case 구문에 break 문이 존재하지 않을 경우 다음 case 구문을 계속해서 실행

  23. if else 구조 활용 실습시간 – 1 교시

  24. if else 구조 활용 • 학습개요 • 예제를 통한 if else 구조 학습 • 개인 수입에 대한 세금을 차등 적용하여 수입에 따른 세금 계산 프로그램

  25. if else 구조 활용 • 개인 수입에 대한 세금 계산 프로그램 • 문제 정의 • 개인에 대한 소득세를 계산하는 프로그램이다. 개인의 수입금액에 따라 세금이 차등 부가 되어진다. 또한 개인의 생활등급 역시 세금 계산에 포함된다. 세금 부가에 대한 조건식은 관련 함수 및 식 부분에 기술된다. 이때 각 개인의 소득에 대한 세금을 계산하여라. • 입/출력 조건 • 입력 조건 • 1) 월 수입액 • 2) 등급( 1: 생활 보호 대상자, 2: 국가 유공자, 3 : 일반 ) • 출력 조건 • 1) 수입에 대한 총 세금 영수증 • 2) 출력 형식 : (예 : 월 수입액 : 2200,000, 등급 : 일반) • (다음 장 계속)

  26. if else 구조 활용 • 개인 수입에 대한 세금 계산 프로그램 • 출력 조건 • 2) 출력 형식 : • 예 : 월 수입액 : 2200,000, • 등급 : 일반 • 관련 함수 및 식 • 세금 계산 조건식 ********************************* 월 수입액 : 2200000         등 급 : 3 ********************************* 금액            세율             세금 --------------------------- 500000        2%             10000 500000        5%             25000 1000000      7%             70000 200000        10%            20000 --------------------------- 총 세금 :                      125000원 ===========================

  27. if else 구조 활용 • 개인 수입에 대한 세금 계산 알고리즘 (플로우차트)

  28. if else 구조 활용 • 프로그램 작성 • 1 단계 • 115페이지의 프로그램을 빈 칸을 포함하여 작성하자. • 2 단계 • 아래의 입력 결과에 대한 출력 값을 작성하자. • 입력 조건 • 등급 1, 월 수입액 : 670000 • 등급 2, 월 수입액 : 1700000 • 등급 3, 월 수입액 : 2850000 ①. income < RANGE_5 ②. if(grade == 1 || grade == 2) ③. (int)(remainder * (RATE_5 / 100.0)); ④. else if(income < RANGE_20) ⑤. else ⑥. grade ==1 ⑦. (int)((RANGE_20 - RANGE_10) * (RATE_5 / 100.0));

  29. switch case 구조 활용 실습시간 – 2 교시

  30. switch case 구조 활용 • 학습개요 • 다중 조건에 대한 처리 • switch 구조를 이용한 해당 년도에 대한 띠(동물이름) 알아 맞히기 프로그램 작성

  31. switch case 구조 활용 • 해당 년도에 대한 띠(동물이름) 알아 맞히기 • 문제 정의 • 음력으로 모든 해는 상징하는 동물 이름이 존재한다. 12지간이라 불러지는 이것은 12년 주기로 반복되고 이 동물은 자(쥐), 축(소), 인(호랑이), 묘(토끼), 진(용), 사(뱀), 오(말), 미(양), 신(원숭이), 유(닭), 술(개), 해(돼지)로 이루어져 있다. 년도를 입력하면 그 해의 동물이름을 출력하는 프로그램을 작성하여라. • 입/출력 조건 • 입력 조건 • 1) 년도 (예 :2004) • 출력 조건 • 1) 해당 년도에 해당되는 동물 이름 • 관련 함수 및 식 • 1) 년도의 입력은 1900년 이후의 값으로 한다. • 2) 1900년을 상징하는 동물은 자(쥐)이다. • 1900 % 12 = 4 (쥐의 해) • 3) 동물은 12년의 주기로 반복된다.

  32. switch case 구조 활용 • 알고리즘 (플로우차트)

  33. switch case 구조 활용 • 프로그램 작성 • 1 단계 • 121페이지의 프로그램을 빈 공간을 포함하여 작성한 후 animal.c 이름을 저장한다. • 2 단계 • 프로그램이 정상적으로 동작할 경우 다음과 같은 입력에 대한 출력 결과를 작성하여라. • 입력 조건 • 입력 년도 : 1990, 입력년도 : 1850, 입력년도 : 1968         ①. year < 1900         ②. switch(gap)         ③. break         ④. case 1         ⑤. default:

  34. The End. 선택 제어 구조

More Related