제 4 장 선택구조

Download Report

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