Transcript 제 4 장 선택구조
4. 선택 구조 주요 내용 홀수, 짝수 판별하기 양수, 음수의 구별 대, 소 구분하기 성적에 따른 학점 부여하기 직각 삼각형 판별하기 이차 방정식의 근 구하기 새내기 C 프로그래머를 위한 순서도 작성 2 선택 구조란? 어떠한 조건을 검사하여 그 검사의 결과에 따라 처 리 내용을 선택적으로 수행하는 것 조건의 결과에 따른 순서도의 흐름 변경 발생 새내기 C 프로그래머를 위한 순서도 작성 3 홀수, 짝수 판별하기 ① 시 작 ② 입력 Z ③ R = Z Mod 2 하나의 정수 값(Z)을 입력한다. Z를 2로 나눈 나머지(R)를 구한다. R 값을 0과 비교한다. ④ R= 0 YES R 값이 0이 아닌 경우에 Z 값은 홀수이다. NO ⑤ ⑥ 출력 Z is odd. 종 출력 Z is even. R 값이 0인 경우에 Z 값은 짝수이다. 료 새내기 C 프로그래머를 위한 순서도 작성 4 홀수, 짝수 판별하기 순서도 기호 ④에서 나머지가 0인지 1인지를 비교 하는 연산이 필요 ⊙나눗셈의 결과로 나오는 나머지의 값이 0 아니면 1의 두 가지 값만 존재하므로 나머지가 0인지 아닌지 또는 나 머지가 1인지 아닌지 만을 비교 ④에서 R값이 1과 같은지 아닌지를 비교하는 경우 에는 ⑤의 출력 내용이 서로 바뀌어야 함 새내기 C 프로그래머를 위한 순서도 작성 5 양수, 음수의 구별 입력된 수를 0과 비교하는 연산이 필요 입력된 수가 0보다 크면 양수이고, 작으면 음수 새내기 C 프로그래머를 위한 순서도 작성 6 양수, 음수 판별하기 - 1 ① ② 시 작 입력 Z 하나의 정수 값(Z)을 입력한다. Z 값을 0과 비교한다. ③ Z>0 YES Z 값이 0보다 크지 않으 면 Z 값은 음수이다. NO ④ ⑤ 출력 Z is negative. 종 출력 Z is positive. Z 값이 0보다 크면 Z 값은 양수이다. 료 새내기 C 프로그래머를 위한 순서도 작성 7 양수, 음수 판별하기 - 1 예외적인 경우 발생 가능 입력된 Z 값이 0과 같은 경우 ⊙이 경우에 Z의 값은 양수도 음수도 아닌 0 그 자체 새내기 C 프로그래머를 위한 순서도 작성 8 양수, 음수 판별하기 - 2 ① 시 작 입력 Z ② 하나의 정수 값( Z) 을 입력한다. Z 값을 0과 비교한다. ③ Z>0 YES NO YES ④ Z<0 NO ⑤ 출력 Z is negative. 출력 Z is zer o. 출력 Z is positive. Z 값이 0보다 크면 Z 값은 양수이다. Z 값이 0보다 크지도 않고, 작 지도 않으면 Z 값은 0이다. ⑥ Z 값이 0보다 크지 않으면 Z 값은 음수 이다. 종 료 새내기 C 프로그래머를 위한 순서도 작성 9 양수, 음수, 0 판별하기 ① 시 작 입력 Z ② 하나의 정수 값( Z)을 입력한다. Z 값을 0과 비교한다. ③ < Z:0 = ④ 출력 Z is negative. 출력 Z is zer o. > Z 값이 0과 같으면 Z 값은 0이다. 출력 Z is positive. Z 값이 0보다 크면 Z 값은 양수이다. Z 값이 0보다 작으 면 Z 값은 음수이다. ⑤ 종 료 새내기 C 프로그래머를 위한 순서도 작성 10 음수를 양수로 변환하기 입력된 정수 값의 절대값을 구하는 문제 ⊙입력된 정수 값이 0보다 크거나 같으면 입력된 수 자체 를 출력 ⊙그렇지 않으면 부호를 바꾸어 출력 입력된 수가 음수이면 부호를 바꾸어 양수 값으로 변환하여 출력 ⊙부호를 바꾸기 위하여 입력된 수에 -1을 곱함 새내기 C 프로그래머를 위한 순서도 작성 11 절대값 구하기 ① ② 시 작 입력 Z 하나의 정수 값( Z) 을 입력한다. Z 값을 0과 비교한다. ③ Z<0 NO Z 값이 0보다 작으면 - 1을 곱 한다. YES ④ absZ = Z * ( - 1) ⑤ 출력 Z, absZ absZ = Z Z와 absZ 값을 출력한다. ⑥ 종 료 새내기 C 프로그래머를 위한 순서도 작성 12 두 수의 크기 판별하기 - 1 ① ② 시 작 입력 A, B 두 개의 정수 값( A , B) 을 입력한다. A 와 B의 값을 비교한다. ③ A >B YES A 의 값이 B의 값보다 크 지 않으면 B가 큰 수이다. NO ④ ⑤ 출력 B is bigger . 종 출력 A is bigger . A 의 값이 B의 값보 다 크면 A 가 큰 수 이다. 료 새내기 C 프로그래머를 위한 순서도 작성 13 두 수의 크기 판별하기 - 1 예외적인 경우 발생 가능 ③의 결과에서 A의 값과 B의 값이 같은 경우 ⊙이 경우에 B가 큰 수로 판별되는 문제 새내기 C 프로그래머를 위한 순서도 작성 14 두 수의 크기 판별하기 - 2 ① 시 작 입력 A, B ② 두 개의 정수 값( A , B) 을 입력한다. A 와 B의 값을 비교한다. ③ A >B YES A 의 값이 B의 값보 다 크면 A 가 큰 수 이다. NO YES ④ A <B 출력 A is bigger . NO ⑤ 출력 B is bigger . 출력 A is equal to B. A 값이 B보다 크지도 않 고, 작지도 않으면 A 와 B 의 값은 같다. ⑥ B의 값이 A 의 값보 다 크면 B가 큰 수이 다. 종 료 새내기 C 프로그래머를 위한 순서도 작성 15 다중 선택 구조 조건의 판단에 대한 결과가 세 가지 이상인 경우 해결 방법 ⊙복수 개의 선택 기호 사용 ⊙다중 분기 구조 사용 새내기 C 프로그래머를 위한 순서도 작성 16 복수 개의 선택 구조 사용 예 새내기 C 프로그래머를 위한 순서도 작성 17 성적에 따른 학점 부여 원칙 성적 학점 90 ~ 100 A 80 ~ 89 B 70 ~ 79 C 60 ~ 69 D 0 ~ 50 F 새내기 C 프로그래머를 위한 순서도 작성 18 성적에 따른 학점 부여하기 - 1 시 작 입력 Scor e Scor e >= 90 YES NO Scor e >= 80 Cr edit = ‘ A ’ YES NO Cr edit = ‘ B’ Scor e >= 70 YES NO Cr edit = ‘ C’ Scor e >= 60 YES NO Cr edit = ‘ D’ Cr edit = ‘ F’ 출력 Scor e, Cr edit 종 료 새내기 C 프로그래머를 위한 순서도 작성 19 다중 분기 사용을 위한 학점 부여 원칙 성적 성적 Div 10 학점 90 ~ 100 9, 10 A 80 ~ 89 8 B 70 ~ 79 7 C 60 ~ 69 6 D 0 ~ 50 0, 1, 2, 3, 4, 5 F 새내기 C 프로그래머를 위한 순서도 작성 20 성적에 따른 학점 부여하기 - 2 시 작 입력 Scor e Scor e Div 10 9, 10 Cr edit = ‘ A ’ 8 Cr edit = ‘ B’ 7 6 Cr edit = ‘ C’ Cr edit = ‘ D’ 0, 1, 2, 3, 4, 5 Cr edit = ‘ F’ 출력 Scor e, Cr edit 종 료 새내기 C 프로그래머를 위한 순서도 작성 21 직각 삼각형 판별하기 세 변의 길이(A, B, C)를 입력받아서 이 삼각형이 직각 삼각형인지 아닌지를 판별하는 문제 ⊙A는 삼각형의 빗변, B와 C는 각각 밑변과 높이 피타고라스 정리 이용 ⊙A2 = B2 + C2 ⊙A2 - B2 - C2 = 0 새내기 C 프로그래머를 위한 순서도 작성 22 직각 삼각형 판별하기 시 작 입력 A, B, C Y = A^2 - B^2 - C^2 Y= 0 NO YES 출력 a r ight- angled tr iangle 종 출력 Not a r ightangled tr iangle 료 새내기 C 프로그래머를 위한 순서도 작성 23 이차 방정식의 근 구하기 ax2 + bx + c = 0 (a 0) 3가지 형태의 근 ⊙실근(real roots) ⊙중근(multiple root) ⊙허근(imaginary roots) 판별식(discriminant) ⊙D = b2 - 4ac ⊙D의 값이 양수이면 실근 ⊙D의 값이 음수이면 허근 ⊙D의 값이 0이면 중근 새내기 C 프로그래머를 위한 순서도 작성 24 이차 방정식의 근의 종류 판별하기 시 작 입력 a, b, c 이차 방정식의 계수를 입력한다. D = b^2 - 4 * a * c D 값을 0과 비교한다. < D:0 = 출력 Imaginar y r oots 출력 Multiple r oot > D 값이 0과 같으면 중근이다. 출력 Real r oots D 값이 0보다 크면 실근이다. D 값이 0보다 작으 면 허근이다. 종 료 새내기 C 프로그래머를 위한 순서도 작성 25