1 / 34

C++ 프로그래밍 03

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

clara
Download Presentation

C++ 프로그래밍 03

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. C++ 프로그래밍 03 2009년 2학기 전자정보공학대학 컴퓨터공학부

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

  3. 변수(Variable) • 프로그래밍에서의 변수 • 어떤 값을 저장할 수 있는 장소 • 숫자, 문자, ... • 프로그램의 수행중에 컴퓨터의 주메모리에 존재하는 기억장소

  4. 변수의 정의(Definition of the Variable) • 변수의 정의 • 사용하려는 변수는 프로그램의 앞부분에 정의해주어야 한다. 변수의 타입변수의 이름; 변수의 타입변수1의 이름, 변수2의 이름; Example) int a; int a,b;

  5. 변수의 타입(Type of the Variable) • 변수의 타입 • 변수가 저장할 값의 성격을 나타낸다. • 정수(int), 실수(float), 문자(char), ... • int a, b, c; • 정수를 저장할 수 있는 변수 3개 a, b, c를 정의한다. • float fa, fb, fc; • 실수를 저장할 수 있는 변수 3개 fa, fb, fc를 정의한다.

  6. 변수의 이름(Name of the Variable) • 변수의 이름은 영어 알파벳, 숫자, underscore(_)로 구성할 수 있다. • 제한 • 중복된 이름의 변수를 사용할 수 없다 • 숫자로 시작되면 안 된다. • 대소문자는 구분된다. • Score라는 변수와 score라는 변수는 서로 다른 변수이다. • 길이는 제한없다 • underscore(_)로 시작하는 이름은 쓰지 않는 것이 좋다. • C 언어에서 사용되는 명령어(keyword)와 같은 이름을 가질 수 없다. • main, cout, int, float,...

  7. 변수가 사용된 프로그램의 예 #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개의 변수의 정의와 값 할당

  8. 변수 값의 할당(Assignments) • 변수는 자신의 타입에 적당한 값을 가질 수 있다. • 할당연산자(assignment operator, =)를 사용해서 변수에 값을 할당할 수 있다. 변수의 이름 = 값 ;변수의 이름1 = 변수의 이름2; 정보의 흐름방향 Example) a = 100; b = a;

  9. 변수 값의 다양한 정의, 할당법 inta; a = 100; int a=100; int a=100, b=200; int a, b=200;

  10. 여러가지 변수형 – float/double floatf; double d; f = 0.00123f; d = 1.23; f = 1.23E-3f; d = 1.23E0; 변수의 정의 일반적인 실수 표현 방식 float는 끝에 f를 붙임 과학적인 실수 표현 방식 지수를 사용 1.23E-3f = 1.23*10 1.23E0 = 1.23*10 -3 0

  11. 여러가지 변수형 • bool 타입 • bool : 1 Bit = true(1) / false(0) boola; bool b; a = true; b = false; a = 1;

  12. 수식(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;

  13. 형변환 • 문제가 발생하는 형변환 • 큰 변수 형식  작은 변수 형식 • Example) • int  short int • float  int • double  float • 가능하면 비슷한 값으로 근사 • int a = 3.2f;  int a= 3; 같다 • 데이터의 범위가 넘어가면 문제 발생 • int a = 655361; • short int b = a; ????

  14. 형변환 • 명시적 형변환 int a = 3; float b; b = (float) a; 형변환 발생 b=3.0f int a; float b = 3.1f; a = (int) b; 형변환 발생 a=3

  15. Practice • 다양한 형변환 연습 Page 93

  16. 변수가 사용된 프로그램의 예 #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)/3 cout<<a<<b<<c<<avg; } a,b,c 3개의 변수의 정의와 값 할당

  17. 변수의 타입과 수식의 타입 • avg = (a + b + c) / 3 • 이 수식에 나타난 모든 변수들의 타입은 int이다. • 실제 계산값은 (a + b + c) / 3 = (87 + 93 + 100) / 3 = 93.333...이 된다. • 그런데 변수avg는 정수변수이고 따라서 avg에는 93이라는 값이 들어간다.

  18. 실수변수가 들어간 프로그램 #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....이라는 값을 가질 수 있다.

  19. 관계연산자 • 관계에 대한 결과를 주는 연산자 (결과는 boolean – true/false) • < • > • >= • <= • == (equal) • != (not equal) bool b,b1; b = 3 < 5; //b=true b = 3 > 5; //b=false b1 = b==true;

  20. 관계연산자 - 연습 #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; }

  21. 관계연산자 - 연습 #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; }

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

  23. 논리연산자 - 연습 #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; }

  24. 논리연산자 - 연습 #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; }

  25. 관계연산자 + 논리연산자 • 관계연산자와 논리연산자가 같이 있으면관계연산자를 우선한다! bool b,b1; b = 5>4 && 3>5; // true && false b = 5>4 || 3>5; // true || false b = ((5>4) && (4>3)) || (4<8); b1 = 5>4 && b==true;

  26. 복습: 출력방법 cout << “Hello, World!\n” ; cout : console out (출력장치) << : 오른쪽에서 왼쪽으로 보내라 “ ” : 문자들 (명령어 아님) \n : 줄넘김 ; : 명령어를 끝맺음 (마침표) cout에게 “Hello, World”를 보내라. 26

  27. 입력받기 cout >>a>>b; cin : console in (입력장치) >> : 왼쪽에서 오른쪽으로 보내라 a,b : 변수들 (int, float, char…) ; : 명령어를 끝맺음 (마침표) cin으로부터 a, b를 받아들여라 27

  28. #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; } 입력받기

  29. score score >= 90 yes no Grade: A Grade: B 분기 • 입력받은 점수에 따라서 다른 값을 출력하고 싶을 때

  30. 분기프로그램의 예 #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; }

  31. if-else 문 • if-else 구문( ~이면 ~하고, 아니면 ~하라) if(수식) statement; else statement; <- 생략가능 if (3<4) cout<<”3 is smaller than 4 ”; else cout<<”3 is larger than 4”;

  32. if-else 문 (복합문과 함께) 복합문: 중괄호{}로 묶여진 문장들의 집합 하나처럼 인식 내부에선 순차적으로 실행 • if-else 구문 if(수식) { statement1; statement2; …. } else { statement3; …. }

  33. if-else 문 if (3<4) { cout<<”3 is smaller ”; cout<<“than 4 ”; } else { cout<<”3 is larger ”; cout<<“than 4 ”; } • if-else 구문 if(수식) { statement1; statement2; …. } else { statement3; …. }

  34. 연습 • 나이를 입력받고, • 미성년자인지 아닌지 판단하고, • 미성년자이면 “미성년자입니다”아니면 “성인입니다” 를 출력

More Related