34
C++ 프프프프프 03 2009 프 2 프프 프프프프프프프프 프프프프프프

C++ 프로그래밍 03

  • Upload
    clara

  • View
    64

  • Download
    4

Embed Size (px)

DESCRIPTION

C++ 프로그래밍 03. 2009 년 2 학기 전자정보공학대학 컴퓨터공학부. Outline. 변수 변수의 타입 연산자 관계 , 논리연산자 입력 받기 분기. 변수 (Variable). 프로그래밍에서의 변수 어떤 값을 저장할 수 있는 장소 숫자 , 문자 , ... 프로그램의 수행중에 컴퓨터의 주메모리에 존재하는 기억장소. 변수의 정의 (Definition of the Variable). 변수의 정의 사용하려는 변수는 프로그램의 앞부분에 정의해주어야 한다. 변수의 타입 변수의 이름 ; - PowerPoint PPT Presentation

Citation preview

Page 1: C++  프로그래밍  03

C++ 프로그래밍 03

2009 년 2 학기전자정보공학대학

컴퓨터공학부

Page 2: C++  프로그래밍  03

Outline

• 변수• 변수의 타입• 연산자• 관계 , 논리연산자• 입력 받기• 분기

Page 3: C++  프로그래밍  03

변수 (Variable)

• 프로그래밍에서의 변수– 어떤 값을 저장할 수 있는 장소

• 숫자 , 문자 , ...

– 프로그램의 수행중에 컴퓨터의 주메모리에 존재하는 기억장소

Page 4: C++  프로그래밍  03

변수의 정의 (Definition of the Variable)

• 변수의 정의– 사용하려는 변수는 프로그램의 앞부분에

정의해주어야 한다 .

변수의 타입 변수의 이름 ;

변수의 타입 변수 1 의 이름 , 변수 2 의 이름 ;

Example)int a;int a,b;

Example)int a;int a,b;

Page 5: C++  프로그래밍  03

변수의 타입 (Type of the Variable)

• 변수의 타입– 변수가 저장할 값의 성격을 나타낸다 .– 정수 (int), 실수 (float), 문자 (char), ...

• int a, b, c;– 정수를 저장할 수 있는 변수 3 개 a, b, c 를 정의한

다 .

• float fa, fb, fc;– 실수를 저장할 수 있는 변수 3 개 fa, fb, fc 를

정의한다 .

Page 6: C++  프로그래밍  03

변수의 이름 (Name of the Variable)

• 변수의 이름은 영어 알파벳 , 숫자 , underscore(_) 로 구성할 수 있다 .

• 제한– 중복된 이름의 변수를 사용할 수 없다– 숫자로 시작되면 안 된다 .– 대소문자는 구분된다 .

• Score 라는 변수와 score 라는 변수는 서로 다른 변수이다 .

– 길이는 제한없다– underscore(_) 로 시작하는 이름은 쓰지 않는 것이 좋다 .– C 언어에서 사용되는 명령어 (keyword) 와 같은 이름을 가질 수

없다 .• main, cout, int, float,...

Page 7: C++  프로그래밍  03

변수가 사용된 프로그램의 예

#include <iostream>using namespace std;int main(void){

int a;int b;int c;

a = 87;b = 93;c = 100;

cout<<a<<b<<c;}

a,b,c 3 개의 변수의 정의와 값 할당

Page 8: C++  프로그래밍  03

변수 값의 할당 (Assignments)

• 변수는 자신의 타입에 적당한 값을 가질 수 있다 .• 할당연산자 (assignment operator, =) 를

사용해서 변수에 값을 할당할 수 있다 .

변수의 이름 = 값 ;변수의 이름 1 = 변수의 이름 2 ;

Example)a = 100;b = a;

Example)a = 100;b = a;

정보의 흐름방향

Page 9: C++  프로그래밍  03

변수 값의 다양한 정의 , 할당법

int a;a = 100;int a;a = 100;

int a=100;int a=100;

int a=100, b=200;int a=100, b=200;

int a, b=200;int a, b=200;

Page 10: C++  프로그래밍  03

여러가지 변수형 – float/double

float f;double d;

f = 0.00123f;d = 1.23;

f = 1.23E-3f;d = 1.23E0;

float f;double d;

f = 0.00123f;d = 1.23;

f = 1.23E-3f;d = 1.23E0;

변수의 정의

일반적인 실수 표현 방식float 는 끝에 f 를 붙임

과학적인 실수 표현 방식 지수를 사용

1.23E-3f = 1.23*101.23E0 = 1.23*10

-30

Page 11: C++  프로그래밍  03

여러가지 변수형

• bool 타입– bool : 1 Bit = true(1) / false(0)

bool a;bool b;

a = true;b = false;

a = 1;

bool a;bool b;

a = true;b = false;

a = 1;

Page 12: C++  프로그래밍  03

수식 (Expressions)

• C 프로그램에서는 일반적인 수학적 수식을 사용할 수 있다 . ( +, - , *, / )

• a + b - c• (a + b + c) / 3;• 100 - a * 3;

• 할당수식– 할당연산자가 쓰인 수식

• a = 89 ;• d = (a+b+c)/3• a = a + 3;• a = b = c = 100;

Page 13: C++  프로그래밍  03

형변환

• 문제가 발생하는 형변환 – 큰 변수 형식 작은 변수 형식– Example)

• int short int• float int• double float

– 가능하면 비슷한 값으로 근사• int a = 3.2f; int a= 3; 같다

– 데이터의 범위가 넘어가면 문제 발생• int a = 655361;• short int b = a; ????

Page 14: C++  프로그래밍  03

형변환

• 명시적 형변환

int a = 3;float b;

b = (float) a;

int a = 3;float b;

b = (float) a; 형변환 발생 b=3.0f

int a;float b = 3.1f;

a = (int) b;

int a;float b = 3.1f;

a = (int) b; 형변환 발생 a=3

Page 15: C++  프로그래밍  03

Practice

• 다양한 형변환 연습 Page 93

Page 16: C++  프로그래밍  03

변수가 사용된 프로그램의 예

#include <iostream>using namespace std;int main(void){

int a;int b;int c;a = 87;b = 93;c = 100;int avg;avg = (a+b+c)/3cout<<a<<b<<c<<avg;

}

a,b,c 3 개의 변수의 정의와 값 할당

Page 17: C++  프로그래밍  03

변수의 타입과 수식의 타입

• avg = (a + b + c) / 3– 이 수식에 나타난 모든 변수들의 타입은 int 이다 .

– 실제 계산값은 (a + b + c) / 3 = (87 + 93 + 100) / 3 = 93.333... 이 된다 .

– 그런데 변수 avg 는 정수변수이고 따라서 avg 에는 93이라는 값이 들어간다 .

Page 18: C++  프로그래밍  03

실수변수가 들어간 프로그램#include<iostream>

using namespace std;

int main(void)

{

float fa, fb, fc;

float favg;

fa = 87.0f; fb = 93.0f; fc = 100.0f;

favg = (fa + fb + fc) / 3.0f;

cout<<“Average: ”<<favg;

return 0;

}

-이 프로그램에서 favg 는 실수변수이고 따라서 93.333....이라는 값을 가질 수 있다 .

Page 19: C++  프로그래밍  03

관계연산자

관계에 대한 결과를 주는 연산자 ( 결과는 boolean – true/false)• <• >• >=• <=• == (equal)• != (not equal)

bool b,b1;b = 3 < 5; //b=trueb = 3 > 5; //b=falseb1 = b==true;

bool b,b1;b = 3 < 5; //b=trueb = 3 > 5; //b=falseb1 = b==true;

Page 20: C++  프로그래밍  03

#include <iostream>using namespace std;int main(){

int a = 3, b = 5;bool b1, b2, b3, b4;b1 = a>b;b2 = a>=b;b3 = a<b;b4 = a==b;cout<<“a> b --> ”<<b1<<“\n”;cout<<“a>=b --> ”<<b2<<“\n”;cout<<“a< b --> ”<<b3<<“\n”;cout<<“a==b --> ”<<b4<<“\n”;return 0;

}

#include <iostream>using namespace std;int main(){

int a = 3, b = 5;bool b1, b2, b3, b4;b1 = a>b;b2 = a>=b;b3 = a<b;b4 = a==b;cout<<“a> b --> ”<<b1<<“\n”;cout<<“a>=b --> ”<<b2<<“\n”;cout<<“a< b --> ”<<b3<<“\n”;cout<<“a==b --> ”<<b4<<“\n”;return 0;

}

관계연산자 - 연습

Page 21: C++  프로그래밍  03

#include <iostream>using namespace std;int main(){

int a = 3, b = 5;bool b1, b2, b3, b4;b1 = a>b;b2 = a>=b;b3 = a<b;b4 = a==b;cout<<boolalpha;cout<<“a> b --> ”<<b1<<“\n”;cout<<“a>=b --> ”<<b2<<“\n”;cout<<“a< b --> ”<<b3<<“\n”;cout<<“a==b --> ”<<b4<<“\n”;return 0;

}

#include <iostream>using namespace std;int main(){

int a = 3, b = 5;bool b1, b2, b3, b4;b1 = a>b;b2 = a>=b;b3 = a<b;b4 = a==b;cout<<boolalpha;cout<<“a> b --> ”<<b1<<“\n”;cout<<“a>=b --> ”<<b2<<“\n”;cout<<“a< b --> ”<<b3<<“\n”;cout<<“a==b --> ”<<b4<<“\n”;return 0;

}

관계연산자 - 연습

Page 22: C++  프로그래밍  03

논리연산자

• 논리연산자입력은 boolean 값결과도 boolean – true(1)/false(0))• ! (negation – NOT: !A )• && (AND: A&&B)• || (OR: A||B )

bool b;b = !false; //b=trueb = true&&false;b = true||false;

bool b;b = !false; //b=trueb = true&&false;b = true||false;

Page 23: C++  프로그래밍  03

#include <iostream>using namespace std;int main(){

bool b1, b2, b3, b4;b1 = false && false;b2 = true && false;b3 = false && true;b4 = true && true;cout<<boolalpha;cout<<“F AND F -->”<<b1<<“\n”;cout<<“T AND F -->”<<b2<<“\n”;cout<<“F AND T -->”<<b3<<“\n”;cout<<“T AND T -->”<<b4<<“\n”;return 0;

}

#include <iostream>using namespace std;int main(){

bool b1, b2, b3, b4;b1 = false && false;b2 = true && false;b3 = false && true;b4 = true && true;cout<<boolalpha;cout<<“F AND F -->”<<b1<<“\n”;cout<<“T AND F -->”<<b2<<“\n”;cout<<“F AND T -->”<<b3<<“\n”;cout<<“T AND T -->”<<b4<<“\n”;return 0;

}

논리연산자 - 연습

Page 24: C++  프로그래밍  03

#include <iostream>using namespace std;int main(){

bool b1, b2, b3, b4;b1 = false || false;b2 = true || false;b3 = false || true;b4 = true || true;cout<<boolalpha;cout<<“F OR F -->”<<b1<<“\n”;cout<<“T OR F -->”<<b2<<“\n”;cout<<“F OR T -->”<<b3<<“\n”;cout<<“T OR T -->”<<b4<<“\n”;return 0;

}

#include <iostream>using namespace std;int main(){

bool b1, b2, b3, b4;b1 = false || false;b2 = true || false;b3 = false || true;b4 = true || true;cout<<boolalpha;cout<<“F OR F -->”<<b1<<“\n”;cout<<“T OR F -->”<<b2<<“\n”;cout<<“F OR T -->”<<b3<<“\n”;cout<<“T OR T -->”<<b4<<“\n”;return 0;

}

논리연산자 - 연습

Page 25: C++  프로그래밍  03

관계연산자 + 논리연산자

• 관계연산자와 논리연산자가 같이 있으면관계연산자를 우선한다 !

bool b,b1;b = 5>4 && 3>5; // true && falseb = 5>4 || 3>5; // true || false

b = ((5>4) && (4>3)) || (4<8);b1 = 5>4 && b==true;

bool b,b1;b = 5>4 && 3>5; // true && falseb = 5>4 || 3>5; // true || false

b = ((5>4) && (4>3)) || (4<8);b1 = 5>4 && b==true;

Page 26: C++  프로그래밍  03

복습 : 출력방법

26

cout << “Hello, World!\n” ;cout << “Hello, World!\n” ;

cout : console out ( 출력장치 )

<< : 오른쪽에서 왼쪽으로 보내라“ ” : 문자들 ( 명령어 아님 )

\n : 줄넘김; : 명령어를 끝맺음 ( 마침표 )

cout 에게 “ Hello, World” 를 보내라 .

Page 27: C++  프로그래밍  03

입력받기

27

cout >>a>>b;cout >>a>>b;

cin : console in ( 입력장치 )

>> : 왼쪽에서 오른쪽으로 보내라a,b : 변수들 (int, float, char…)

; : 명령어를 끝맺음 ( 마침표 )

cin 으로부터 a, b 를 받아들여라

Page 28: C++  프로그래밍  03

#include <iostream>using namespace std;int main( ){

int a; float b;cout<<“Input a,b: ”;cin>>a>>b;

cout<<“a: ”<<a<<“\n”;cout<<“b: ”<<b<<“\n”;return 0;

}

#include <iostream>using namespace std;int main( ){

int a; float b;cout<<“Input a,b: ”;cin>>a>>b;

cout<<“a: ”<<a<<“\n”;cout<<“b: ”<<b<<“\n”;return 0;

}

입력받기

Page 29: C++  프로그래밍  03

분기

• 입력받은 점수에 따라서 다른 값을 출력하고 싶을 때

score

score >= 90

Grade: A Grade: B

yes

no

Page 30: C++  프로그래밍  03

#include <iostream>

using namespace std;

int main(void)

{

int score;

char grade;

cin>>score;

if(score >= 90)

grade = ‘A’;

else grade = ‘B’;

cout<<“Grade:”<<grade<<“\n”;

return 0;

}

#include <iostream>

using namespace std;

int main(void)

{

int score;

char grade;

cin>>score;

if(score >= 90)

grade = ‘A’;

else grade = ‘B’;

cout<<“Grade:”<<grade<<“\n”;

return 0;

}

분기프로그램의 예

Page 31: C++  프로그래밍  03

if-else 문

• if-else 구문 ( ~ 이면 ~ 하고 , 아니면 ~하라 )if( 수식 )

statement;else statement; <- 생략가능if (3<4)

cout<<”3 is smaller than 4 ”;else

cout<<”3 is larger than 4”;

if (3<4) cout<<”3 is smaller than 4 ”;

elsecout<<”3 is larger than 4”;

Page 32: C++  프로그래밍  03

if-else 문 ( 복합문과 함께 )

• if-else 구문if( 수식 ){

statement1; statement2; ….}else

{ statement3; ….}

복합문 :중괄호 {} 로 묶여진 문장들의집합

하나처럼 인식 내부에선 순차적으로 실행

복합문 :중괄호 {} 로 묶여진 문장들의집합

하나처럼 인식 내부에선 순차적으로 실행

Page 33: C++  프로그래밍  03

if-else 문• if-else 구문

if( 수식 ){

statement1; statement2; ….}else

{ statement3; ….}

if (3<4){

cout<<”3 is smaller ”; cout<<“than 4 ”;}else{

cout<<”3 is larger ”; cout<<“than 4 ”;}

if (3<4){

cout<<”3 is smaller ”; cout<<“than 4 ”;}else{

cout<<”3 is larger ”; cout<<“than 4 ”;}

Page 34: C++  프로그래밍  03

연습

• 나이를 입력받고 ,

• 미성년자인지 아닌지 판단하고 ,

• 미성년자이면 “ 미성년자입니다”아니면 “ 성인입니다” 를 출력