Transcript 2~3주차.

2주차
제 2주차
학습 내용
조건문
•if 문
•If ~ else 문
•If ~ else if ~ else 문
•switch 문
• 상황에 따라 처리할 때 사용하는 문을 조건 판단 문이라 함
• 조건 판단 문 중 하나인 if 문은 조건이 참일 때 지정한 문을
처리하는 구문이다.
구
문
if (조건)
{
문;
}
조건이
참이면 처리
• 설명한 예를 if 문으로 표현하면 다음과 같은 코드가 됨
예
시
if (술을 사면)
{
간다
}
• 그러면 C 언어에서는 어떻게 조건을 표현하는지 알아보자.
• 조건은 관계 연산자를 이용하여 표현한다.
연산자
식이 참인 경우
==
우변이 좌변과 같다
!=
우변이 좌변과 같지 않다
>
우변보다 좌변이 크다
>=
우변보다 좌변이 크거나 같다
<
우변보다 좌변이 작다
<=
우변보다 좌변이 작거나 같다
• 관계 연산자를 사용해서 몇 가지 조건을 표현하면 다음과 같다.
조건 1. 5 > 3
조건 2. 5 < 3
조건 3. a == 6
조건 4. a <= 6
조건 1은 참이다.
조건 2는 거짓이다.
조건 3과 4는 변수 a에 따라 다르다.
• 논리 연산자를 사용하면 여러 조건을 조합해서 보다 편리하게 처리할 수
있다.
연산자
뜻
설명
!
논리 부정 (NOT)
논리식의 진위를 반대
로 만든다.
&&
논리 곱 (AND)
두 논리식이 모두 참이
어야 참이다.
||
논리 합 (OR)
두 논리식 중 하나만
참이면 참이다.
조건 1. 1 <= a && a <= 10
조건 2. a == ‘y’ || a == ‘Y’
조건 3. !(a == 1)
조건 1은 a가 1보다 크거나 같고
10보다 작거나 같으면 참이다.
조건 2는 a가 ‘y’ 또는 ‘Y’이면
참이다.
조건 3은 a가 1이면 거짓이다.
• C 언어에서는 0을 ‘거짓’, 그 이외의 모든 수를 ‘참’으로 정의
한다.
• 관계 연산자는 연산식이 참이면 1을, 거짓이면 0을 반환한다.
관계 연산자 사용 예
조건이 거짓이라면
조건이 참이라면
• 앞 절의 if 문에서는 조건이 참일 경우에만 특정한 처리를 했
지만, if 문은 조건이 거짓일 때 지정한 문을 처리하는 구문도
있다.
if ~ else 문
구
문
if (조건)
{
문;
}
else
{
문;
}
if의 조건이 참이면
if 문 처리
if의 조건이 거짓이면
else 문 처리
• 조건이 2개 이상일 경우
• else if 문을 사용하여 두 가지 이상의 조건을 판단할 수 있다.
if ~ else if ~ else 문
구
문
if (조건 1)
{
문;
}
else if (조건 2)
{
문;
}
else
{
문;
}
if의 조건이 참이면
if 문 처리
if의 조건이 거짓이면
else if의 조건을
확인
else if의 조건이
거짓이면
else 문 실행
• if 문과 마찬가지로 조건을 처리할 수 있는 switch 문이 있다.
구
문
switch 문
switch (식)
{
case 상수 1:
문;
break;
case 상수 2:
문;
break;
default :
문;
break;
}
switch 문은
식의 결과에
해당하는
case를 실행함
case의
상수 자리에
변수를
쓸 수 없음
• break 문이 없으면 프로그램은 어떻게 동작하는지 확인해보자.
• 아래 프로그램을 직접 입력하고 실행결과를 확인하라.
break가 없는 switch 문
• break 문은 반복문과 switch문을 빠져 나오는데 쓰인다.
• 간단한 조건일 경우엔 if 문 대신에 조건 연산자를 사용할 수 있다.
조건 연산자
구
문
조건 ? 식1 : 식 2;
조건 연산자 사용하기 (p. 143)
조건이 참이면 식1
조건이 거짓이면 식2
실행
제 2주차
문제 1
• 사용자로부터 정수를 입력 받아 양수면 “양수”, 음수
면 “음수”, 0이면 ‘제로’를 출력하는 프로그램을 작성
하시오.
―예시
제 2주차
문제 1
• 해답
제 2주차
문제 2
• 두 정수를 입력 받아 합한 값이 100이상이면 100을
출력하고 100미만이면 합한 값을 출력하는 프로그램
을 작성하시오.
―예시
제 2주차
문제 2
• 해답
제 2주차
문제 3
• 조건 연산자만을 이용하여 사용자로부터 입력 받은
세 개의 정수 중에서 가장 큰 수를 출력하여 보라.
조건 연산자
조건 ? 식1 : 식 2;
―예시
제 2주차
문제 3
• 해답
제 2주차
문제 4
• 근로 소득세를 계산하는 프로그램을 작성하여 보
자. 근로 소득세율은 다음 표와 같다. (단, 조건문
은 switch문을 사용)
―예시
과세표준
세율
1000만원 미만
8%
1000만원 이상 4000만원 미만
17%
4000만원 이상 8000만원 미만
26%
8000만원 이상
35%
제 2주차
문제 4
• 해답
제 2주차
문제 5
• 수식을 입력 받아 연산기호에 따라 수식과 결과를
출력하여보자.
(단 수식은 □+□ 꼴이다.)
―예시
제 2주차
문제 5
• 해답
제 2주차
문제 6
• 성적을 입력 받고 등급을 출력하는 프로그램을 만드시오.
(90점이상 A, 80점이상 90점미만은 B, 70점이상 80점미만은
C, 60점이상 70점미만은 D, 아무것도 만족하지 않으면 F 를
출력한다.)
―예시
제 2주차
문제 6
• 해답
제 2주차
문제 7
• 정수를 입력한 뒤 홀수인지 짝수인지와 부호를 구
별하는 프로그램을 작성하시오.
―예시
제 2주차
문제 7
• 해답
제 2주차
문제 8
• 사용자로부터 1를 입력하면 화씨를 입력 받아 섭씨
로, 2를 입력하면 화씨로 변환하여 화면에 출력하
도록 프로그램을 작성하시오.
섭씨 = (5.0/9.0)*(화씨 - 32.0)
화씨 = 섭씨*(9/5)+32
―예시
제 2주차
문제 8
• 해답
제 2주차
문제 9
• (x,y) 좌표를 받아서 좌표가 속해있는 사분면을 출력
하는 프로그램을 작성하라.(단 0,0을 입력 시 "원점
입니다."를 출력한다. x 또는 y 둘 중 하나만 0일 경
우 각각 x절편입니다, y절편입니다.를 출력하시오.)
―예시
제 2주차
문제 9
• 해답
제 2주차
문제 10
• 대문자를 입력하면 소문자로 변환하는 프로그램
을 작성하세요.
―예시
제 2주차
문제 10
• 해답
제 2주차
문제 11
• 월 을 입력 받아 계절을 표시하는 프로그램을 작성
하시오. (단 3,4,5 는 봄, 6 , 7, 8은 여름 , 9,10,11은
가을, 12, 1, 2는 겨울이며 이외의 값은 그런 월은
없습니다.를 출력한다)(switch 문을 사용)
제 2주차
문제 11
• 해답
제 2주차
문제 12
• 사용자로부터 하나의 문자를 입력 받아서 문자가
알파벳 문자인지, 숫자인지, 아니면 특수기호인지를
출력하는 프로그램을 작성하라. 알파벳이나 숫자를
제외한 나머지 문자들은 모두 특수 문자로 간주한
다.
제 2주차
문제 12
• 해답
제 2주차
문제 13
• 1차 방정식 ax+b=0의 해를 구해보자. 사용자로부
터 a와 b의 값을 받아서 근을 구할 수 있으면 근을
계산하여 출력하라.
제 2주차
문제 13
• 해답
제 2주차
문제 14
• 키보드에서 영문자 하나를 읽어서 모음과 자음을
구분하는 프로그램을 작성하여 보자. (a, e, i, o, u는
모음이다.)
제 2주차
문제 14
• 해답
제 2주차
문제 15
• x에 대한 2차 방정식 ax^2+bx+c=0 의 근을 구하
는 프로그램을 작성하시오. 2차 방정식은 판별식에
의하여 근이 달라진다. a = 0이면 근은 -b/c 이다.
(따라서 판별식이 0인지 아닌지를 먼저 판단)
근의
공식
판별식
제곱근 구하기 #include <math.h> 의 sqrt() 함수 사용
저장할 변수 = sqrt(9)
3이 저장된다.
제 2주차
문제 15
• 해답