Chapter 06 연산자 기본.

Slides:



Advertisements
Similar presentations
인간의 영원한 애교덩 어리, 고양이 고양이의 진정한 매력 파 해쳐 보자. 6 학년 3 반 박 동 섭.
Advertisements

3-4 주빈, 신예린 목차 탐구 동기와 탐구 일시 및 장소, 참고 자료 갯벌이란 ? 갯벌 탐사에 사용되는 도구 (1,2) 유명한 갯벌 ( 우리나라 ), 여러 갯벌 축제 갯벌이 만들어지는 조건 람사르 협약이란 ? 람사르 협약에 가입된 우리나라 생태지 밀물과 썰물 갯벌에.
산업시스템분석 임성수 차수길 장연식 주혜림 7조7조.
비즈쿨 - 정 성 욱 - - 금오공고 비즈쿨 - 정 성 욱 1. 나는 각 단원들의 활동들에 성실하게 참여 하겠습니다. 우리의 다짐 2. 나는 나와 전체의 발전을 위해 각 멘토들의 지도에 순종하겠습니다. 3. 나는 각 단원들을 숙지함으로써 비즈니스 마인드를 함양하고 자신의.
구 분현존 무창계사 사육장 (1,000 평기준 ) 신개념 가금류사육장 (1,000 평기준 특허보유유럽에서 약 50 여년전 개발 2008 년 특허개발 ( 송백영농조합 ) 계사구조 별도 독립된 단층계사 500 평ⅹ 2 동 건축 많은 사육장면적 확보시 계사를 추가로 신축 500.
응 급 처 치 법응 급 처 치 법 응 급 처 치 법응 급 처 치 법. 응급처치법 1) 현장조사, 의식확인, 연락 현장은 안전한가 조사한다. 119 나 응급의료기관에 연락한다. 발바닥을 간지럽히거나 가볍게 꼬집어 본다. 0 ~ 4 분 4 ~ 6 분 6 ~ 10 분 10.
트렁크 안에서 천정을 보았을 때 무늬와 같은 형태의 홈이 있습니다. 트렁크 실내등 트렁크 스프링 앞으로 볼링핀 모양 이라 부르겠 습니다.
한울농원.  1. 암 수 다른 나무이다.  2. 병충해가 없다.  3. 수명이 길다.  4. 체질이 강건하여 잘 자란다.  5. 가시가 길고 크다.  6. 가을에 붉은 열매를 수확한다.  7. 나무가 단단하고 잘 부러지지 않는 다.
도덕적 성찰 준거의 의미와 필요성을 이해할 수 있다. 학습 목표 올바른 도덕적 성찰의 준거를 설명할 수 있다.
과채류 ( 수 박 ) 발표자 : 농어업조사과 장 천 숙. 목 차 1 월별 작업 흐름 2 재배 방법 3 병충해 방지 4 수박의 효능.
여러가지 멸종위기 동물과 세계5대 희귀동물에대한 조사 5학년 1반 13번 이채원
경주 수학여행 6학년 5반 15번 유송연.
효과적인 금연법 산재의료관리원 동해병원 건강관리센타.
우리나라 전통의 무술, 태권도 5학년 8반 김유승.
용주사 보고서 6-5 / 16번 / 장경서.
2014년 7월 유라시아 셰익스피어 극단 연극햄릿 레어티스역활
자살 사례 분석 경영학과 백승용 경영학부 하수정 경영학부 이은옥
若者文化 김현주 이규혁 박현빈 전인성 임준형.
瑞山 가는 길 지난 10월 31일 07:00 ~ 11월 01 21:00 서해안 여행을 했습니다
류현진 만든이:서주원.
상처와 출혈 응급처치 한국산업안전공단.
Ⅴ. 건설 기술과 환경.
생 각 하 기 1. 내가 생각하는 어린이란? 2. 내가 생각하는 어른이란? 3. 어른이 된다는 것 은?
북한의 음식 북한음식…..
스타 보고서 서울 신화 초등학교 5학년 4반 김 지혜.
대포나 미사일이 없던 옛날에는 먼 거리에 있는 적의 성을 어떻게 공격했을까?
돼지가격 대표 기준 ‘탕박’변경 관련 설명자료
학습 주제 p 용해도 차이로 물질 분리하기.
취업/자기계발동아리 참가자 오리엔테이션 전남대학교 사회과학대학.
각주구검(刻舟求劍) - 刻 새길 각 舟배 주 求구할 구 劍칼 검 판단력이 둔하여 세상일에 어둡고 어리석다는 뜻
이리신광교회 건축관련보고 문준태 익산시노인종합복지관장.
종이헬리콥터 하귀일초등학교 5-1 양현석.
4주차: Data Types and Functions
제주북초등학교 6학년 심화반 김학선 지도교사 : 고동림 선생님
유독물 및 취급제한∙금지물질 관리자 교육 취급시설별 관리기준 2014 한강유역환경청 화학물질관리과.
학습 주제 p 탄성력에 의한 위치 에너지.
Chapter 4 수식과 연산자.
칼빈의 생애와 개혁자로의 변모 사학과 김종식.
프로그래밍 원리 Chapter 04 자료 처리와 연산자 신한대학교 IT융합공학부 박 호 균.
국제의료관광 관련 법, 제도.
혜원 신윤복 [申潤福, 1758~. ] 조선 후기의 풍속화가
피부의 구조와 기능 피부로 읽는다. 피부의 감각점 피부 감각점의 분포와 자극의 민감도.
자전거 기어의 원리 한림초등학교 6학년수학영재 임지혁.
김은영 수줍은 자기소개서☞☜.
연산자Operators C언어의 기본 구조 도서출판 한산 C언어의 기본 구조 1: #include <stdio.h>
멸종위기동물 5-1 이채원.
조복(朝服) 조선시대 문무백관들이 조하(朝賀)나 의식 때 입던 관복
Part 06 세상을 변화시키는 연산자 안산1대학 디지털정보통신과 임 성 국.
P 탄성력과 마찰력 생각열기 – 높이뛰기 세계 신기록은 약 240cm 인데, 장대높이뛰기 세계 신기록은 약 620cm 이다. 이렇게 차이가 나는 까닭은? ( 높이뛰기는 다리의 근육의 힘으로 뛰는 반면 장대높이 뛰기는 장대의 탄성력을 이용하기 때문이다.)
CHAPTER 9-1 한국의 사회복지정책 - 사회보험제도 -
제 8강. 영유아 발달과 보육프로그램.
외부비계(강관비계) 설치 조립도.
3조:김다영,나민지, 서빛나,송영호, 장연정,연희 발표자:서빛나
기본 테이블 스타일링 학교 : 대경대학 푸드과 학번 : 이름 : 김예림 과목 : 양식 테이블 세팅
악취저감 / 친환경 축산(농장)을 위한 시험보고서
1월 교회학교 진급예배 및 성탄절 음악예배 찬 양 기 도 교 회 소 식 특 순 성 경 봉 독 말 씀 찬 양 축 도 인 도 자
4분의 기적, 심폐소생술 1.
제3주 식이요법과 체중관리 건강생활.
뜨거운 햇살을 받으며 양 손에 도시락 두 개를 들고, 콧 노래를 부르며, 시골 길을 걷고 있는 한 아이가 있었어요
장신구 4학년 5반 김도형.
상차림과 식사 예절.
제주북초등학교 영재학급 기초반 김지원 지도 교사 : 김대진 선생님
1 끼임 1 크레인 취급 작업 2 화재/폭발·파열 3 물체에 맞음 4 떨어짐 5 부딪힘 2 지게차 취급 작업
고기압과 저기압이 이동하는 위치 예상하기 수업활동.
근골격계 질환 예방교육.
6.3-4 탄성력에 의한 위치 에너지 이 단원을 배우면 탄성력에 의한 위치 에너지를 설명할 수 있다.
Ⅱ. 생활 속의 과학 탐구 7. 생활 주변에서 탐구 가능한 질문 찾아 수행하기 과학탐구실험 고등학교 탐구 목표 단원 열기
경찰학 세미나 제 5 강 경찰관직무집행법 2조 5호의 의미 신라대학교 법경찰학부 김순석.
2강. 경학의 개념과 기혈 대체의학 강사 박지혜
Presentation transcript:

Chapter 06 연산자 기본

연산자와 피연산자 연산자 피연산자 연산자의 기능별 분류 연산자(operator)는 산술연산자 +, -, * 기호와 같이, 이미 정의된 연산을 수행하는 기호나 키워드를 의미 피연산자 연산(operation)에 참여하는 변수나 값을 피연산자(operand) 연산자의 기능별 분류 기능이나 특징으로 분류 피연산자 피연산자 연산자 분류 연산자 산술 연산자 관계 연산자 증감 연산자 논리 연산자 조건 연산자 비트 논리 연산자 비트 이동 연산자 sizeof 연산자 대입 연산자 + - * / % > < == != >= <= ++ -- && || ! ?: & | ^ ~ << >> sizeof(형) =

항 수에 따른 구분 연산에 참여하는 피연산자의 수에 따라 단항 연산자 이항 연산자 삼항 연산자 단(일)항, 이항, 삼항 연산자로 구분 단항 연산자 연산에 참여하는 피연산자가 하나인 경우는 일항 연산자 이항 연산자 연산에 참여하는 피연산자가 두 개인 경우는 이항 연산자 삼항 연산자 연산에 참여하는 피연산자의 수가 세 개인 것은 조건 연산자 하나뿐 산술연산의 + 기호는 기호 양쪽의 값을 더하는 연산을 의미하므로 이항 연산자이다. 부호를 의미하는 연산자인 - 기호는 기호 오른쪽 값의 부호를 의미하는 단항 연산자이다. 조건 연산자는 연산자 기호 가 ? : 이며 세 부분에 피연산자가 위치하는 삼항 연산자이다. 분류 연산자 단항 연산자 이항 연산자 삼항 연산자 ++ -- ! & * + - sizeof(형) + - * / % = == != > < <= >= && || & | ^ ?:

수식 연산식 수식의 평가 컴퓨터는 수식(expression)을 이용하여 여러 가지 연산 처리 프로그램 언어에서 수식은 연산자(operator)와 피연산자(operand)의 조합으로 구성 피연산자는 변수나 상수, 또는 다른 수식으로 표현 가장 간단한 수식은 7, -5와 같은 단일 항목으로 구성되는 상수 값 이러한 수식이 연산자와 연결되어 새로운 수식을 구성 여기서 ‘+’는 연산자이고, ‘7’과 ‘5’는 피연산자에 해당 수식은 항상 그 평가에 의한 결과 값을 갖음 즉 위의 수식은 12라는 결과 값 수식의 평가 연산식의 평가(evaluation)는 그 연산식의 계산 ‘7 + 5’를 평가하면 ‘12’, 이 때 평가된 ‘12’를 ‘식의 평가값’ 연산자는 우선순위(operator priority)를 갖는데, 산술연산자에서의 우선순위는 *, /, %를 먼저하고 +, -를 나중에 계산

대입 연산자 = =의 결과 값 변수의 저장 값을 대입하는 = 기호가 대입(할당) 연산자(assignment operator) 대입 연산자는 연산자의 가장 기본이 되는 연산자이며, 그 기능을 가장 늦게 수행 다음과 같은 연산식에서는 3 + 4 * 5를 수행한 결과 값을 변수 a에 대입하는 기능을 가장 늦게 수행 =의 결과 값 대입 연산자도 연산자이므로 연산을 수행한 후의 결과값이 존재 위에서 대입 연산의 결과 값은 왼쪽 변수에 저장된 값인 23 대입 연산자의 왼쪽 부분에는 반드시 변수만이 가능 그러므로 다음과 같은 연산식은 잘못된 것

문장과 대입문 문장 대입문 문법에 맞는 수식에 세미콜론 ;을 마지막에 놓으면 문장(statement)이 됨 즉 3+2;도 하나의 문장 그러나 이러한 문장은 프로그램에는 아무 영향을 미칠 수 없음 대입문 대입 연산자가 있는 연산식에 세미콜론 ;을 붙이면, 대입문(assign statement) 이러한 대입문은 변수의 값을 변화시키므로 매우 중요한 문장

예제 소스 Assign.c 다음 프로그램으로 연산식과 문장을 이해하고, 대입 연산자의 결과 값을 출력

산술연산자 +, -, *, / 산술 연산자는 더하기, 빼기, 곱하기, 나누기를 하는 사칙 연산자와 나머지를 구하는 연산자로 구성 나머지 연산자 % 첫 번째 피연산자를 두 번째 피연산자로 나눌 때 그 나머지를 평가값으로 반환 예를 들어 7%5의 값은 2, 즉 7을 5로 나누면, 몫은 1이고, 나머지는 2 또한 나누기 연산자에서 7/5의 결과는 1 정수 7과 정수 5로 나누기를 연산하면 결과는 소수 부분은 나올 수 없으므로 평가값은 1 연산자 기호 의미 더하기 빼기 곱하기 나누기 나머지 op1 + op2 op1 – op2 op1 * op2 op1 / op2 op1 % op2 두 피연산자를 더한다. 첫 번째 피연산자(op1)에서 두 번째 피연산자(op2)를 뺀다. 두 피연산자를 곱한다. 첫 번째 피연산자(op1)를 두 번째 피연산자(op2)로 나누어 몫을 준다. 첫 번째 피연산자(op1)를 두 번째 피연산자(op2)로 나누어 나머지를 준다.

실습 예제 Calcarithmetic.c 사용자 입력 정수를 표준입력으로 각각 변수 x와 y 두 개의 변수에 저장 위 변수의 값을 이용하여 더하기, 빼기, 곱하기, 나누기와 나머지를 적당한 연산자를 이용하여 출력

실습 예제 Calcsquarearea.c 사용자 입력 정수를 표준입력으로 입력 받아 변수 width에 저장 이 변수의 값을 이용하여 정사각형의 넓이를 구하여 결과를 다음과 같이 적절히 출력

관계연산자 관계 연산자는 2개의 피연산자 크기를 비교하기 위한 연산자 예를 들어 “x가 10보다 더 큰가?” 또는 “y가 0과 같은가?”와 같이 두 항의 값을 비교하는데 사용 두 개의 문자로 구성되는 관계연산자 기호 사이에는 공백문자가 없이 연결되어야 함 관계 연산자 “!=”, “>=”, “<=”는 연산 기호의 순서가 명확해야 함 관계 연산자 ==과 할당 연산자 =를 혼동하지 않도록 주의 문자 순서가 바뀐 =>은 연산자로 사용할 수 없다. 연산자 기호 의미 보다 크다 보다 작다 같다 같지 않다 크거나 같다 작거나 같다 op1 > op2 op1 < op2 op1 == op2 op1 != op2 op1 >= op2 op1 <= op2 피연산자 op1이 피연산자 op2보다 크면 참 피연산자 op1이 피연산자 op2보다 작으면 참 피연산자 op1이 피연산자 op2와 같으면 참 피연산자 op1이 피연산자 op2와 다르면 참 피연산자 op1이 피연산자 op2보다 크거나 같으면 참 피연산자 op1이 피연산자 op2보다 작거나 같으면 참

관계 연산 평가 관계 연산 평가 값 관계 연산자가 포함된 수식의 결과는 1(참을 의미)이 아니면 0(거짓을 의미) 아래 표는 간단한 관계연산의 평가 결과 조건 평가 값 3 > 2 3 == 2 3 != 2 (3 + 2) == (3 * 2) 3은 2보다 큰가? 3은 2와 같은가? 3은 2와 같지 않은가? (3 + 2)는 (3 * 2)와 같은가? 1

예제 소스 Isplusdigit.c 사용자 입력 정수를 표준입력으로 하나의 변수 x에 저장 이 프로그램은 입력한 정수가 양수이면 1을 출력하고, 0이거나 음수이면 0을 출력하는 프로그램

증감 연산 증감 연산자 기호 ++, --를 이용 피연산자는 연산자의 앞이나 뒤에 위치 증가 연산자는 ++a, a++와 같이 사용 이 연산자는 다른 연산자와 같이 연산의 결과(평가) 값을 갖음 증감연산자는 다른 연산자와 다르게 평가에 의한 결과 값만 있는 것이 아니라 연산에 참여하는 피연산자의 값 자체가 1 증가하거나 1 감소 증감연산자는 연산자의 위치에 따라 ++a, a++, --a, a-- 형태로 쓰이며, 피연산자를 1만큼 줄이거나 늘리는 데에 사용 즉 연산 a+1은 a 값에는 변화를 주지 않으나, a++는 변수 a의 값을 하나 증가시키는 효과 수식a++와 ++a는 평가 값이 서로 다름

연산자 위치가 중요 a++, ++a a--, --a 연산자 위치 그러나 변수 자체는 두 연산 모두 1 증가 결국 증가연산자 ++a와 a++는 모두 a=a+1의 효과 a--, --a 감소 연산자가 변수 앞에 위치(--a)하면 수식의 평가값은 1 감소한 값이나, 변수 뒤에 위치(a--)하면 수식의 평가값은 1이 감소하기 이전 원래의 값 변수 자체는 두 연산 모두 1 감소한다. 감소연산자 --a와 a--는 모두 a=a-1의 효과 연산자 위치 모두 연산의 평가 결과는 연산자의 위치에 따라 다르다는 것에 주의 증감연산자의 위치가 피연산자보다 앞에 위치하는 형태의 표현 ++a, --a을 전위 방식(prefix) 마찬가지로 증감연산자의 위치가 피연산자보다 뒤에 위치하는 형태의 표현 a++, a--을 후위 방식(postfix)

증가 연산과 산술 연산 증가연산자 ++와 일반 산술 연산자와의 차이를 이해 일반 연산 증가 연산

증감 연산자 정리 예 예제 1 예제 2 연산자 기호 의미 증가 ++ 기호 이용 ++a(prefix 표현) a++(postfix 표현) 피연산자 변수의 값을 1 증가시킨다. 평가값은 1 증가한 값이다. 평가값은 1 증가하기 이전 값이다. 감소 -- 기호를 이용 --a(prefix 표현) a--(postfix 표현) 피연산자 변수의 값을 1 감소시킨다. 평가값은 1 감소한 값이다. 평가값은 1 감소하기 이전 값이다. 예제소스 출력 값 변수 x 값 int x = 10; x = x + 1; x = x – 1; printf(“%d\n”, x+1); printf(“%d\n”, x); printf(“%d\n”, x-1); 11 10 9 예제소스 출력 값 변수 x 값 int x = 10; x++; x--; printf(“%d\n”, x++); printf(“%d\n”, ++x); printf(“%d\n”, x--); printf(“%d\n”, --x); 10 12 11

장점과 주의점 증감연산 사용 이유 주의점 증감연산자를 이용하면 프로그램 형태가 간결 기계어 코드와 일대일 대응되므로 실행속도가 개선 주의점 연산자의 위치에 따라 평가 값 다르므로 주의 요구 증감연산자는 ++, --자체가 연산자 기호이므로 중간에 공백이 들어가면 안되고, 산술연산이나 관계, 논리연산보다 그 평가를 먼저 한다. 증감연산자는 피연산자로 변수를 사용할 수 있지만, 상수나 일반 수식을 피연산자로 사용 불가능 다음과 같은 수식은 잘못된 수식 int a = 10; ++300; /* 상수에는 증가 연산자를 사용할 수 없다 */ (a+1)--; /* 일반 수식에는 증가 연산자를 사용할 수 없다 */

예제 소스 Basicincrement.c 증감연산자의 예제를 작성하여 결과를 비교 증감연산자의 평가 값과 변수의 값을 증감시키는 효과를 이해

예제 소스 Increment.c 증감연산자가 다른 산술연산자와 함께 이용되는 예를 살펴보자. 증감연산자는 산술연산자보다 연산을 먼저 처리한다는 것에 주의

논리 연산자 &&(and), ||(or), !(not) 논리 연산자는 두 개 또는 하나의 논리값을 0이나 1의 논리값으로 평가하기 위한 연산자 C 언어에서는 논리 값이라는 유형은 없고, 다만 0은 거짓을 의미하며, 0이 아닌 것은 참을 의미하는 것으로 논리값을 대신 연산자 &&는 수학에서의 and를 의미 연산자 ||은 or를 의미 연산자 &, |가 and와 or로 사용하나 정확히 말하자면 연산자 &와 |는 비트 연산자 연산자 의미 연산 기호 의미 AND OR NOT op1 && op2 op1 || op2 !op1 연산자의 왼쪽 값(op1)과 오른쪽 값(op2)의 AND 연산 수행 연산자의 왼쪽 값(op1)과 오른쪽 값(op2)의 OR 연산 수행 단일 연산자로서 연산자 오른쪽 값(op1)의 NOT 연산 수행

논리 연산자 논리 연산자의 연산 방법 연산에 참여하는 자료 값은 0은 거짓을 의미하며, 1(0이 아닌 값)은 참을 의미 C 언어는 참과 거짓이라는 상수는 없으며, 단순히 0을 거짓으로, 0이 아닌 값을 참으로 간주 정수 만을 이용하는 것은 아니고 실수나 다른 유형의 자료 값도 이용이 가능 다만 평가의 결과는 반드시 0이거나 1 x y And 연산자 결과 Or 연산자 결과 Not 연산자 결과 x && y x || y !x 1 (0 이아닌 값) 수식 평가 결과 x && y x || y !x x와 y가 모두 1일 때만 1, 그렇지 않으면 0 x와 y가 모두 0일 때만 0, 그렇지 않으면 1 x가 0이면 1, x가 1이면 0, 즉 x의 반대 값

논리 연산 예 5 > 2 && 3 == 2

논리 연산 이용 논리 연산자는 수식에 포함된 그들의 피연산자의 0이 아닌 값(참을 의미)과 0인 값(거짓)에 따라 1이나 0으로 평가 결과가 도출 수식 평가 결과 이유 (5 > 2) && (3 == 2) (5 > 2) || (3 == 2) !(3 == 2) 1 오른쪽 (3 == 2)의 결과가 0이기 때문에 왼쪽 (5 > 2)의 결과가 1이기 때문에 연산식 (3 == 2)이 0이므로 수식 평가 결과 이유 3 && 4 0.0 && 4 1 && 1 (3 > 4) || !(4==1) 0.3 || 0.2 0 || 0 1 3과 4 모두 0이 아니므로 참인 의미의 1임 소수 0.0도 거짓을 의미하는 0임 !(4==1)이 1임 0이 아닌 것은 모두 참인 의미의 1임

예제 소스 Logic.c 위에서 살펴 본 논리연산자의 예제를 프로그래밍하여 결과를 비교 논리연산자의 평가 값은 0과 1, 두 값 중의 하나

단축 연산 논리 연산 &&, || Short circuit logic 비트 연산자 &와 |는 논리연산자로도 이용 가능 Short circuit logic 논리 연산자 &&와 ||는 피연산자 두 개 중에서, 앞에 나오는 피연산자 만으로 결과가 결정되면 뒤에 나오는 피연산자는 평가하지 않고 결과를 반환 이러한 방법으로 연산의 효율을 높일 수 있기 때문 (x && y) 수식에서 x의 값이 거짓이라면, 굳이 y의 값을 평가하지 않더라도 수식 (x && y)는 거짓 (x || y) 수식에서 x의 값이 참이라면, 굳이 y의 값을 평가하지 않더라도 수식 (x || y)는 참

&&의 평가 효율적 평가 변수 a, b, c가 각각 10, 20, 3인 경우 다음 논리 연산식을 포함한 대입문이 실행된 후의 변수 값은 각각 무엇으로 변했을까? c = (a++ == 11) && (b++ == 20); 여기서 주의할 점은 만일 (a++ == 11)이 0이면 더 이상 (b++ == 20)을 평가 하지 않는다는 것이다. 또한 만일 (b++ == 20)을 평가하지 않으면 변수 b는 1이 증가하지 않을 것이다. 위 문장이 실행된 이후에 다음 문장을 실행하면, 변수 a, b, c는 어떠한 값이 저장 되었을까?

예제 소스 Shortcircuit.c 단축 연산이 프로그램에 미치는 영향

프로그램 연습 프로그램 목적 킬로그램(kg) 단위의 몸무게를 파운드(pound)로, 센티미터(cm) 단위의 키를 피트(feet)로 바꾸는 프로그램 1피트(feet)는 30.48센티미터(cm)로 하고 1파운드(pound)는 0.453592킬로그램(kg)으로 구현 표준입력으로 킬로그램(kg) 단위의 몸무게, 센티미터(cm) 단위의 키를 입력 입력 받은 자료를 각각 파운드(pound)와 피트(feet)로 변환하여 몸무게와 키를 출력