3장. Hello World 01_ Hello World 프로그램 훑어보기.

Slides:



Advertisements
Similar presentations
Ⅰ. 연산자 Ⅱ. 제어 구조. 연산자 : 할당 연산자 - 사용자가 정의한 변수에 임의의 값을 저장하는 기능 strvar = strVar1+ “ Hello ”
Advertisements

파이썬 (Python). 1 일 : 파이썬 프로그래밍 기초 2 일 : 객체, 문자열 3 일 : 문자인코딩, 정규표현식, 옛한글 4 일 : 파일 입출력 5 일 : 함수와 모듈 6 일 : 원시 말뭉치 다루기 실습 7 일 : 주석 말뭉치 다루기 실습 8 일 : 웹 데이터로.
Python Ch.06 RaspberryPi Sejin Oh. Raspberry Pi Python  IDLE(Integrated Development Environment)  라즈베리 파이 배포본들은 일반적으로 파이썬과 파이썬 3 의 IDLE 파 이썬 개발 도구를.
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
1 Part 03 상수, 변수, 자료형 안산 1 대학 디지털정보통신과 임 성 국. 2 이 장의 내용 자료형이란 무엇인가 ? 상수와 변수 정수형 부동소수형 문자형.
C++ 프로그래밍 C++ 프로그래밍 TA. 소개 이름 : 장미영 연구실 : 7 호관 401 호 데이터베이스 연구실  TA 에서 실습한 내용은 수업시간에 메일로 제출 – 파일명 )
연산자와 표현식 C H A P T E R 3. 소개 C 에는 많은 내장 연산자가 있다 프로그램에서 연산자는 데이터와 변수 조작에 사용 C 연산자의 분류 1. 산술 연산자 2. 관계 연산자 3. 논리 연산자 4. 대입 연산자 5. 증가 감소 연산자 6. 조건 연산자 7.
Part 03 상수, 변수, 자료형 ©우균, 창병모 © 우균, 창병모.
C++ 프로그래밍 C++ 프로그래밍 TA 장성재 1.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
제 9 장 구조체와 공용체.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
Chapter 04 C 연산자의 이해.
5장. 참조 타입.
제 3장. C보다 나은 C++ II.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Part 05 순수한 연산자 ©우균, 창병모 © 우균, 창병모.
2주차: 변수, 수식, Control Flow.
6장. printf와 scanf 함수에 대한 고찰
14장. 포인터와 함수에 대한 이해.
14. 예외처리.
11장. 1차원 배열.
C#.
13. 연산자 오버로딩.
JA A V W. 03.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
어서와 C언어는 처음이지 제14장.
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
Lesson 4. 수식과 연산자.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
타입, 연산자 Chapter 5, 6 Kum Deuk Kyu , Ph. D. Spring 2015
상수와 기본 자료형.
C 3장. 변수와 데이터형 #include <stdio.h> int main(void) { int num;
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Lesson 2. 기본 데이터형.
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
연산자 (Operator).
01_ C++ 스타일의 입출력 02_ C 스타일의 입출력
에어 조건문.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
컴퓨터 프로그래밍 기초 - 5th : 조건문(if, else if, else, switch-case) -
컴퓨터 프로그래밍 기초 - 3rd : 상수,변수 생성규칙 및 자료형 -
Chapter 02. 자바 기본 문법.
8주차: Strings, Arrays and Pointers
Chapter 08. 함수.
Choi Seong Yun 컴퓨터 프로그래밍 기초 #03 : 변수와 자료형 Choi Seong Yun
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express Slide 1 (of 31)
객체기반 SW설계 팀활동지 4.
연산자(2) Chapter 6 Kum Deuk Kyu , Ph. D. Spring 2015
제3장 함수와 배열수식 전진환
에어 PHP 입문.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
Lecture 02 프로그램 구조 및 문법 Kwang-Man Ko
Chapter 10 데이터 검색1.
함수, 모듈.
8장 선택 논리 II 1. 논리연산자 1.1 논리연산자 : AND (&&) 1.2 논리연산자 : OR (||)
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
어서와 C언어는 처음이지 제21장.
13. 포인터와 배열! 함께 이해하기.
Visual Basic .NET 기초문법.
Pointers summary.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

3장. Hello World 01_ Hello World 프로그램 훑어보기

Hello, World 프로그램 Hello, World 프로그램의 소스 코드 실행 결과 #include <iostream> using namespace std; int main() { cout << “Hello, World\n”; return 0; }

Hello, World 프로그램의 분석 cout 객체에 문자열을 보내면 화면에 출력된다. 프로그램에게 시킬 일은 main() 함수 안에 적는다. 세미콜론이 마침표의 역할을 한다. cout << “Hello, World\n”; #include <iostream> using namespace std; int main() { ... return 0; }

01_ C++에서 정보를 다루는 법 02_ 변수를 사용하는 규칙 4장. 변수 01_ C++에서 정보를 다루는 법 02_ 변수를 사용하는 규칙

정보와 변수 C++에 있어서 모든 정보는 근본적으로 숫자다. 그림을 숫자로 표현한 예 변수는 정보를 보관할 수 있는 공간이다.

변수의 정의 변수 3개를 정의하고 초기화 하는 방법 1 변수 3개를 정의하고 초기화 하는 방법 2 변수의 정의와 관련된 규칙 정의하지 않은 변수는 사용할 수 없다. 변수를 사용하기 전에 변수를 미리 정의해야 한다. int a; int b; int c; a = 100; b = 200; c = 300; int a = 100, b = 200, c = 300;

변수에 보관된 값 출력하기 cout 객체에 변수를 보내면 보관된 값이 출력된다. 실행 결과 #include <iostream> using namespace std; int main() { int a = 100, b = 200, c = 300; cout << a << “, “ << b << “, “ << c << “\n”; return 0; }

변수의 대입 변수를 다른 변수에 대입하면 보관된 값이 복사된다. int d = 1000, e = 2000; d = e; // d 의 값은 2000이 된다.

변수의 이름을 짓는 규칙 다음의 조건에 부합되는 이름만 사용할 수 있다. 중복된 이름의 변수를 사용할 수 없다. 변수 이름에는 알파벳, 숫자, 언더스코어(_)만 포함할 수 있다. 단, 숫자는 변수 이름의 첫번째 글자로 사용할 수 없다. 변수 이름의 길이에는 제한이 없다. 변수 이름에 포함하는 알파벳은 대소문자를 구분한다. 키워드는 변수의 이름으로 사용할 수 없다. * C++의 키워드는 p.58에서 확인할 수 있다.

변수의 이름을 잘 짓는 법 다음의 권장사항을 따르면 효율적인 이름을 지을 수 있다. 변수의 용도를 예상할 수 있게 이름을 짓자. 단어와 단어를 구분할 수 있게 짓자. 필요 없이 긴 이름은 피하자. StudentNumber (O) n, num, number, students (X) StudentNumber, student_number (O) studentnumber (X)

5장. 타입 1 01_ C++에서 제공하는 타입 02_ 형변환

타입의 종류 C++에서 제공하는 기본 타입들

정수 타입 (Integers) 정수 타입별로 보관할 수 있는 값의 범위 10 진수, 8 진수, 16 진수의 표현 타입 최소값 최대값 크기(bytes) signed short -32768 32767 2 unsigned short 65535 signed int -2147483648 2147483647 4 unsigned int 4294967295 signed long unsigned long * 32비트 윈도우즈 시스템을 기준으로 한 값 int decimal = 41; // 10 진수 int octal = 041; // 8 진수 int hexadecimal = 0x41; // 16 진수

비트(Bits)와 바이트(Bytes) 비트는 0 혹은 1을 나타낼 수 있는 전기장치로 생각할 수 있다. 1 바이트는 8비트다. unsigned short 타입의 변수의 범위 계산하기 unsigned short 타입의 크기는 2 바이트 2 바이트는 16비트 총 216 (= 65536) 개의 상태를 가질 수 있다. 그러므로 0 ~ 65535 의 값을 보관할 수 있다.

signed와 Unsigned의 의미 동일한 내용의 정보라도 방식에 따라서 다른 값으로 해석될 수 있다.

실수 타입(Floating points) 실수 타입별로 보관할 수 있는 값의 범위 float 타입 상수의 표현 타입 최소값 최대값 크기(bytes) float 1.17549E-38 3.40282E+38 4 double 2.22507E-308 1.79769E+308 8 long double * 32비트 윈도우즈 시스템을 기준으로 한 값 float f = 0.00123f; // 실수 뒤에 f를 붙인다. double d = 1.23; long double ld = 123.0;

부동 소수점 방식의 이해 부동 소수점 방식은 실수를 가수와 지수부분으로 나누어 보관. 부동 소수점 방식을 사용하면 보다 넓은 범위의 숫자를 보관할 수 있지만 정밀도를 잃어버리는 단점도 있다.

문자 타입 (Characters) 문자 타입별로 보관할 수 있는 값의 범위 문자 타입도 결국은 숫자를 보관한다. 타입 최소값 최대값 크기(bytes) signed char -128 127 1 unsigned char 255 wchar_t 65539 2 * 32비트 윈도우즈 시스템을 기준으로 한 값

이스케이프 문자열 (Escape Sequences) 타입 아스키 코드 상에서의 표현 C++에서의 표현 개행 문자 NL(LF) \n 수평탭 HT \t 수직탭 VT \v 백스페이스 BS \b 캐리지 리턴 CR \r 폼피드 FF \f 벨소리 BEL \a 역슬래쉬 \ \\ 작은 따옴표 ‘ \’ 큰따옴표 “ \” 8진수 ooo \ooo 16진수 hhh \xhhh

부울 타입 (Boolean) 부울 타입은 true 혹은 false의 값을 갖는다. 실행 결과 bool b1; bool b2; b1 = true; b2 = false; cout << “b1 = “ << b1 << “\n”; cout << “b2 = “ << b2 << “\n”;

암시적 형변환 (Implicit Type Conversion) 암시적 형변환은 변수를 대입하는 과정에서 자동적으로 발생하는 형변환이다. 이 때 값이 변할 수 있는데, 다음의 경우는 그 결과를 예상할 수 있는 경우이다. 실수 타입에서 정수 타입으로 형변환 발생 시 소수점 이하 부분이 잘린다. (반올림 아님) 모든 타입에서 부울 타입으로 형변환 발생시, 0이 아닌 모든 값은 true로, 0은 false로 바뀐다. 다음의 경우는 그 결과를 예상할 수 없는 경우이다. 큰 범위를 갖는 타입에서 작은 범위를 갖는 타입으로 형변환 발생시 예) int -> unsigned short double -> float float -> short int -> float

명시적 형변환 (Explicit Type Conversion) 명시적 형변환은 개발자가 직접 명령하는 형변환이다. 명시적 형변환을 사용해서 개발자의 의도를 명확히 할 수 있다. 컴파일러의 경고(Warning) 메시지를 막을 수 있다. 다른 개발자들에게 본인의 의도를 알릴 수 있다. 뒤에서 함수와 클래스를 배운 후에는 다음의 용도로 사용할 수 있다. 함수 호출 시에 인자를 명시적으로 형변환해서 넘겨준다. 부모 클래스의 포인터를 자식 클래스의 포인터로 다운캐스팅한다. float f = 66.89f; int i = (int)f; // i는 66 이 된다.

01_ 기본적인 연산자 02_ 비트 단위 연산 03_ 연산자 더 잘 알기 6장. 연산자 01_ 기본적인 연산자 02_ 비트 단위 연산 03_ 연산자 더 잘 알기

사칙 연산 사칙 연산 및 나머지 연산의 예 실행 결과 int a = 8; int b = 4; int c = a + b; int d = a – b; int e = a * b; int f = a / b; int g = a % b; cout << “8 + 4 = “ << c << “\n”; cout << “8 - 4 = “ << d << “\n”; cout << “8 * 4 = “ << e << “\n”; cout << “8 / 4 = “ << f << “\n”; cout << “8 % 4 = “ << g << “\n”;

연산자 사용의 규칙 연산자는 정해진 개수(1, 2, 3)의 피연산자를 받아서 하나의 값을 반환한다. 위의 규칙은 연쇄적으로 적용된다. 연산의 결과값은 다른 연산의 피연산자로 사용될 수 있다.

대입 연산자 (Assignment Operators) 우측 피연산자의 값을 좌측에 대입한다. 대입 연산자도 연쇄적으로 사용할 수 있다.

관계 연산자 (Relational Operators) 피연산자의 대소관계를 비교한다. 실행결과 int a = 3; int b = 5; bool b1 = a > b; // a가 b보다 크다 bool b2 = a >= b; // a가 b보다 크거나 같다 bool b3 = a < b; // a가 b보다 작다 bool b4 = a <= b; // a가 b보다 작거나 같다 bool b5 = a == b; // a와 b가 같다 bool b6 = a != b; // a와 b가 같지 않다 cout << boolalpha; // bool 타입의 값을 문자로 출력하게 만든다. cout << a << " > " << b << " --> " << b1 << "\n"; cout << a << " >= " << b << " --> " << b2 << "\n"; cout << a << " < " << b << " --> " << b3 << "\n"; cout << a << " <= " << b << " --> " << b4 << "\n"; cout << a << " == " << b << " --> " << b5 << "\n"; cout << a << " != " << b << " --> " << b6 << "\n";

논리 연산자 (Logical Operators) 논리 연산을 수행한다. 피연산자를 사용해서 부울 연산을 수행한다. bool b1 = true; bool b2 = false; bool and = b1 && b2; bool or = b1 || b2; bool not = ! b1; 피연산자1 피연산자2 AND(&&) OR(||) NOT(!) false true * NOT 연산자는 피연산자1 만 받는다.

관계연산자와 논리연산자 일반적으로 논리연산자는 관계연산자와 함께 사용한다. 관계연산자의 우선순위가 높으므로 먼저 수행된다. int age = 20; // 나이 bool male = true; // 성별 // 20세 이상이면서 남성인지 여부를 알아봄 bool ok = age >= 20 && male == true

비트단위 연산자 (Bitwise Operators) 비트단위 논리 연산자(Logical Bitwise Operators)는 각각의 비트를 대상으로 논리 연산을 수행한다.

비트단위 논리 연산자의 종류 각 비트를 대상으로 다음과 같이 연산한다. 피연산자1의 i 번째 비트 피연산자2의 i번째 비트 AND(&) OR(|) XOR(^) NOT(~) 1 * NOT 연산자는 피연산자1 만 받는다.

비트단위 논리 연산자의 예 178과 113을 사용해서 4가지 비트단위 논리 연산을 수행해보자. unsigned char a, b; a = 178; b = 113; unsigned char c1, c2, c3, c4; c1 = a & b; // AND c2 = a | b; // OR c3 = a ^ b; // XOR c4 = ~a; // NOT

쉬프트 연산자 (Shift Operators) 쉬프트 연산자는 비트를 몇 칸씩 옆으로 이동시킨다. unsigned short green_temp = 544; // green_temp의 비트들을 오른쪽으로 5칸씩 이동시킨다. unsigned short green = green_temp >> 5; // green == 17

부호있는 값의 쉬프트 부호있는 값을 우측으로 쉬프트 시키는 경우에는 부호(+/-)에 따라서 다르게 연산한다. // unsigned와 signed 변수에 같은 값을 넣는다. unsigned short us = 0xff00; short s = (short)0xff00; // 동일한 쉬프트를 수행한다. unsigned short us_shift = us >> 4; short s_shift = s >> 4; // 결과 출력 cout << " us = " << bitset<16>(us) << "(" << us << ")\n"; cout << " s = " << bitset<16>(s) << "(" << s << ")\n"; cout << "us >> 4 = " << bitset<16>(us_shift)<< "(" << us_shift << ")\n"; cout << " s >> 4 = " << bitset<16>(s_shift) << "(" << s_shift << ")\n";

연산자의 축약형 연산자의 축약형을 사용해서 번거로운 코딩을 줄일 수 있다. 축약형 같은 의미의 수식 a += b; a = a + b; a -= b; a = a – b; a *= b; a = a * b; a /= b; a = a / b; a %= b; a = a % b; a &= b; a = a & b; a |= b; a = a | b; a ^= b; a = a ^ b; a <<= b; a = a << b; a >>= b; a = a >> b;

연산중에 발생하는 형변환 두 피연산자의 타입이 다르다면, 두 피연산자 중에서 보다 큰 타입 쪽으로 형변환이 발생한다. int 보다 작은 타입들은 int 혹은 unsigned int 타입으로 변환된다.