4장 연산자
수업내용 4장 연산자 01. 산술 연산자 02. 증감 연산자 03. 대입 연산자 04. 관계 연산자 05. 논리 연산자 07. 조건 연산자 09. Sizeof 연산자 10. Cast 연산자
2장 변수의 정리 정수(숫자) : int (%d) 실수(숫자) : float(%f) 문자 : char (%c) 문자열 : char 배열(%s)
대입 연산자(Assignment) = 프로그램에서 가장 중요한 연산자 변수명 = 수식; 좌측(lvalue)에는 값을 전달받을 수 있는 개체, 변수 나 포인터 우측(rvalue)에는 주로 수식이 옴 예 ch = ‘A’; a = b = 10; k = a + 10; b = (a * b) + 10;
1. 산술 연산자(p.80) 일반적으로 수학에서 사용하는 기호 int 타입(정수)간의 연산은 int 결과 산출 + , - , * , / , % 예) %(나머지) : 5 % 2 = 2…1, 10 % 4 = 2…2 int 타입(정수)간의 연산은 int 결과 산출 예) 5 / 2 = 2 실수끼리의 연산은 실수 결과 산출 예) 5.0 / 2.0 = 2.5 정수와 실수끼리의 연산결과는?
산술 연산자 종류 연산자 의미 예 - 음수(부호) -X + 덧셈 X+Y 뺄셈 X-Y * 곱셈 X*Y / 나눗셈 X/Y % 나머지 X%Y
(실습) 산술연산자 (p.81) 예제-1)간단한 사칙연산 프로그램 예제-3)실수연산 프로그램 맨 아래줄의 printf(“%d %% %d = %d\n”, a, b, rem); a % b rem 예제-3)실수연산 프로그램 printf 문 내의 %6.2f 자리수를 OOOOOO.OO 로 지정 %6.2f 대신 %.2f 를 많이 사용함
02. 증감 연산자(p.83) 1증가, 감소에 사용되는 연산자 산술연산자보다 연산속도가 빠름 위치에 따라 연산순서가 바뀜(주의) 전위연산자 : 모든 연산에 선행하여 실행 후위연산자 : 모든 연산에서 마지막에 실행 연산자 의미 예 ++ 1증가 a++, ++a -- 1감소 a-- , --a
02. 증감 연산자(p.83) 증감 연산자(++, --) a++ a = a + 1, ++a a = a + 1 변수에 대입시 주의!! 예) a = 10, b = 10; c = a++; a 값 대입 후 증가 c = 10 d = ++b; b 값 증가 후 대입 d = 11
실습 예제-1 예제-2 맨 아래 두줄에서 a = 12; printf(“a = %d \n”, a++); a = ? 증감 연산자에 따라서 값이 어떻게 변하는지 반드시 확인할 것
03. 대입 연산자(p.86) 줄여서 씀 a += b a = a + b, a += 1 a = a + 1 a /= b a = a / b, a /= c a = a / c a %= b a = a % b, a %= 10 a = a % 10
(실습) 대입 연산자 (p.87) p.87(예제-1) 대입연산자 프로그램 예제-2 a = b =c =10; 의 의미는?
04. 관계 연산자(p.89) 보통 조건을 따지는 if, while, for 문등에서 사용 연산결과가 참이면 1, 거짓이면 0 의미 예 > 크다 a > b >= 크거나 같다(이상) a >= b < 작다 a < b <= 작거나 같다(이하) a <= b == 같다(주의 : 대입연산자) a == b != 같지 않다 a != b
실습 (실습) 예제-1. 관계연산자 연산하기
05. 논리 연산자(p.90) 0은 거짓, 1은 참(연산할 때 0 이외는 모두 참) &&(And, 논리곱) 연산자 : 모두 참일 때 참 예) 1 && 2 = 1, 0 && 1 = 0 ||(Or, 논리합) 연산자 : 하나라도 참일 때 참 예) 0 || 2 = 1, 0 || 0 = 0 !(Not, 부정) 연산자 : 참은 거짓, 거짓은 참 예) !0 = 1, !2 = 0
연산 결과표 X Y X&&Y X||Y !X F T
(실습) 논리 연산자(p.91) 예제-1) 논리연산자 사용하기 j = (a>=b) && (c==d); 0 0 0 0 K = (a<b) || (c>d); 1 0 정답화면의 맨 아래 두줄 오타!! i = 0 j = 0 j = 1 k = 1
06. 비트 연산자(Bit Operator) 비트 단위의 연산 기호 의미 예 & AND a & 3 | OR a | b ^ XOR a ^ 7 ~ 1의 보수 ~a << 왼쪽으로 쉬프트 a << 2 >> 오른쪽으로 쉬프트 a >> 3
& 연산은 Mask bit로 특별한 bit 지울 때 | 연산은 특정 bit를 추가할 때 사용 ^(택)는 비교할 때 자주 사용 1 X 10 Y 7 1 1 2 X & Y 1 15 X | Y 1 13 X ^ Y 1 ~X -11 1 40 X << 2 1 5 X >> 1
실습 P93 예제-1 비트 연산의 결과 확인 예제-2 쉬프트 연산의 결과 확인
07. 조건 연산자(p.94) 조건식 ? 문장(참) : 문장(거짓) 조건식이 참일 경우 조건식이 거짓일 경우 예) 조건식이 참일 경우 조건식이 거짓일 경우 예) i = 20 > 10 ? 10 : 5 i = ? j = 5 == 1 ? 1 : 0 j = ?
실습 (실습)예제-1. 조건연산자를 이용한 큰 값 구하기 (실습)예제-2. 조건연산자를 이용하여 같은 값 구하기
08. 콤마 연산자 나열 연산자라고 함 변수에 어떤 식이나 값을 대입할때 나열식으로 구성 예 c = (a=2, b=10, a+b); c 의 값은 ? a = 10, b = 12, c = 14;
09. sizeof 연산자(p.97) sizeof 변수, sizeof(type) 예제-1 을 통해서 각 자료형의 크기 알아보기 예) int k; printf(“%d, %d”, sizeof k, sizeof(int) ); 출력결과 : 4, 4 예제-1 을 통해서 각 자료형의 크기 알아보기
10. Cast 연산자(p.98) 실수를 정수형으로 변경 : 실수 앞에 (int)를 붙임 예) float num = 10.8f; int i; i = (int)num; i = 10 // 소수 이하는 버림 정수를 실수형으로 변경 : 정수 앞에 (float)을 붙임 예) int num = 10; float j; j = (float)num; j = 10.000000
(실습) Cast 연산자(p.98) 예제-1) 실수를 정수형으로 형변환 예제-2) 정수를 실수형으로 형변환 실수와 정수끼리 연산할경우 실수로 변환됨 예) 1.0000 + 10 = 11.0000
11. 연산자 우선순위 순위 연산자 결합규칙 1 ( ) [ ] -> . 2 ( ) [ ] -> . 2 ! ~ ++ -- (형변환) * & sizeof 3 * / % 4 + - 5 << >> 6 < <= > >= 7 == != 8 & 9 | 10 ^ 11 && 12 || 13 ? : 14 = += -= *= /= %= …… 15 ,
실습문제 1 두 숫자를 이용해 더하기,빼기,나누기,나머지를 모두 출력하시오 int 형 숫자 변수 세 개 + 네개 더 선언 소수를 입력받으려면? 실습문제 1 두 숫자를 이용해 더하기,빼기,나누기,나머지를 모두 출력하시오 int 형 숫자 변수 세 개 + 네개 더 선언 scanf()를 이용하여 숫자 두 개 입력 받기 더하기, 빼기, 나누기, 나머지를 각각 계산하기 printf()를 이용하여 더하기, 빼기, 나누기, 나머지 결과를 각각 출력
실습문제 2 프로그램 실행 후 학과, 학번, 이름을 입력받아 아래와 같이 출력하시오. (출력결과) 학과 : 정보보안과 학번 : 20050001 이름 : 홍길동 <알고리즘> 문자열 변수 세 개 선언 scanf를 이용해 값 입력 printf를 이용해 값 출력
레포트(내용 정리/요약 및 예문) 변수란? 출력 함수(printf) 정리 입력 함수(scanf) 정리 표지 : 제목,제출날짜, 학과,학번,이름 등 용지 : A4 용지 방식 : 자필로 정리 (예외경우는 양해 필요) 날짜 : 다음주까지(10/14) 내용 : 정리/요약, 예문 각 1개(총 4개) 변수란? 정수형 변수 실수형 변수 문자형 변수 출력 함수(printf) 정리 입력 함수(scanf) 정리 연산자 정리(산술, 증감, 대입, 관계)