2주 식과 연산자, 제어문.(142)

Download Report

Transcript 2주 식과 연산자, 제어문.(142)

컴퓨터 프로그래밍 응용 2주
금주 학습내용
•
•
•
•
•
수식과 연산자란?
산술 연산
논리 연산
관계 연산
비트 연산
수식
 수식(expression)
x+y
x*x + 5*x + 6
(principal * interest_rate * period) / 12.0
 수식(expression)
 상수, 변수, 연산자의 조합
 연산자와 피연산자로 나누어진다.
3.14
피연산자
*
연산자
radius
피연산자
증감 연산자
증감 연산자
의미
++x
x값을 먼저 증가한 후에 다른 연산에 사용한다.
이 수식의 값은 증가된 x값이다.
x++
x값을 먼저 사용한 후에, 증가한다.
이 수식의 값은 증가되지 않은 원래의 x값이다.
--x
x값을 먼저 감소한 후에 다른 연산에 사용한다.
이 수식의 값은 감소된 x값이다.
x--
x값을 먼저 사용한 후에, 감소한다.
이 수식의 값은 감소되지 않은 원래의 x값이다.
++x : 11
x++ : 10
--x : 9
x-- : 10
== 11
10
10 +-- 11 =
9
10
10
11
10
10
9
x
형변환
 형변환(type cast): 사용자가 데이터의 타입을 변경하는 것
(자료형) 상수 또는 변수
 (int) 1.23456
 (double) x // double형으로 변환
 (long) (x+y) // long형으로 변환
1.23456
(int)
1
관계 연산자
 두개의 피연산자를 비교하는 연산자
 결과값은 참(1) 아니면 거짓(0)
연산자 기호
의미
사용예
==
x와 y가 같은가?
x == y
!=
x와 y가 다른가?
x != y
>
x가 y보다 큰가?
x>y
<
x가 y보다 작은가?
x<y
>=
x가 y보다 크거나 같은가?
x >= y
<=
x가 y보다 작거나 같은가?
x <= y
논리 연산자
 여러 개의 조건을 조합하여 참과 거짓을 따지는 연산자
 결과값은 참(1) 아니면 거짓(0)
연산자 기호
사용예
의미
&&
x && y
AND 연산, x와 y가 모두 참이면 참, 그렇지 않으면 거짓
||
x || y
OR 연산, x나 y중에서 하나만 참이면 참, 모두 거짓이면 거
짓
!
!x
NOT 연산, x가 참이면 거짓, x가 거짓이면 참
조건 연산자
x > y 가 참이면 x가 수식의 값이 된다.
max_value = (x > y ) ? x : y;
x > y 가 거짓이면 y가 수식의 값이 된다.
absolute_value = (x > 0) ? x: -x;
// 절대값 계산
max_value = (x > y) ? x: y;
// 최대값 계산
min_value = (x < y) ? x: y;
// 최소값 계산
(age > 20) ? printf(“성인\n”): printf(“청소년\n”);
비트 연산자
연산자
연산자의 의미
설명
&
비트 AND
두개의 피연산자의 해당 비트가 모두 1이면 1, 아니면 0
|
비트 OR
두개의 피연산자의 해당 비트중 하나만 1이면 1, 아니면 0
^
비트 XOR
두개의 피연산자의 해당 비트의 값이 같으면 0, 아니면 1
<<
왼쪽으로 이동
지정된 개수만큼 모든 비트를 왼쪽으로 이동한다.
>>
오른쪽으로 이동
지정된 개수만큼 모든 비트를 오른쪽으로 이동한다.
~
비트 NOT
0은 1로 만들고 1은 0로 만든다.
비트 이동 연산자
연산자
기호
설명
왼쪽 비트 이동
<<
x << y x 의 비트들을 y 칸만큼 왼쪽으로 이동
오른쪽 비트 이동
>>
x >> y x 의 비트들을 y 칸만큼 오른쪽으로 이동
조건문
조건문 학습 내용
•if, else 문
•중첩 if 문
•switch 문
•goto문
if-else 문
날씨가 좋은가?
거짓
참
테니스를 친다.
if( 조건식 )
문장1;
else
문장2;
공부를 한다.
조건식이 참이면 실행된다.
조건식이 거짓이면 실행된다.
복잡한 조건식도 가능
 학점 결정 코드
if( score >= 80 && score < 90 )
grade = 'B';
 공백 문자들의 개수를 세는 코드
if( ch == ‘ ‘ || ch == ‘\n’ || ch == ‘\t’ )
white_space++;
중첩 if
 if 문에 다시 if 문이 포함
if( 조건식1 )
if( 조건식2 )
문장;
switch 문
 여러가지 경우 중에서 하나를 선택하는데 사용
switch(조건식)
{
case c1:
문장1;
break;
case c2:
문장2;
break;
...
...
case cn:
문장n;
break;
default:
문장d;
break;
}
제어식의 값이 c1이면 실행
된다.
제어식의 값이 c2이면 실행
된다.
일치하는 값이 없으면 실행
된다.
Goto문
 조건없이 어떤 위치로 점프
 사용하지 않는 것이 좋음
문제 1
 사용자로부터 두개의 정수를 받아서 +, -, *, /, % 연산을 해서 화면에
출력해보자.
 예시
문제 1
문제 2
 조건 연산자만을 이용하여 사용자로부터 입력받은 세 개의 정수 중
에서 가장 큰 수를 출력하여 보라.
 예시
문제 2
문제 3
 사용자로부터 입력받은 두 수의 합과 차를 구하여 출력하여 보자. 두
수의 차는 큰수에서 작은 수를 뺀 것으로 한다.
 예시
문제 3
문제 4
 근로 소득세를 계산하는 프로그램을 작성하여 보자. 근로 소득세율
은 다음 표와 같다. (단, 조건문은 switch문을 사용)
 예시
과세표준
세 율
1000만원 미만
8%
1000만원 이상 4000만원 미만
17%
4000만원 이상 8000만원 미만
26%
8000만원 이상
35%
문제 4
문제 5
 사용자가 생일과 현재 날짜를 입력하면 만으로 몇 살인지를 계산해
주는 프로그램을 작성하여 보자.
 예시
문제 5