전체 페이지뷰

2014년 10월 4일 토요일

1. Hello C++

 블로그에 방문하신 모든분들께 감사의 말씀을 드립니다. 아주 수준높은 프로그래머는 아니지만 제가 가진 지식을 공유해서 서로 WINWIN 하고자 이렇게 블로그 포스팅을 하게 되었습니다. 프로그래밍언어를 공부하고자하는 분들에게 작은 도움이 되었으면 좋겠습니다.
(C언어를 반드시 미리 공부하고 오셔야합니다. 그래야 충분히 이해하실수 있습니다. 또한 C언어를 알고있다는 전제하에 강의를 진행하려합니다.)

Hello C++

다들 반갑습니다. C++ 1강입니다. ( 포스팅한게 갑자기 지워져서 날짜가 밀림)
이번 1강에서는

  • Hello World! 와 변수사용
  • 입출력함수
  • 헤더파일 선언
  • 조건문 반복문
에 대하여 가볍게 알아보는 시간을 가지도록 할게요.
무슨 언어든 프로그래밍을 배우려고 책을 펴면 항상 가장 첫 부분은 "Hello World"라는 문자를 출력하는것이 장식을합니다. 그리고 시키는대로 따라서 코딩을합니다. 이게 왜 "Hello World"라고 출력이되는지도 모른채 말이죠. 처음배울때는 코드가 동작하는 방식, 이유 등은 모르는게 당연합니다. 반복적으로 학습해서 몸에익히고 더 많이 배우게되면 하나씩 그 원리들을 알게되어 가게되니까 너무 조바심내지마시고 차근차근 공부해 나아가도록 합시다.

먼저 Hello World 출력 예제를 살펴보도록 할게요.




첫 줄부터 소스를 분석해보도록 할겠습니다. 헤더파일 선언 문을 한번 보도록할게요.
#include <iostream> 가 눈에 보입니다. C언어에서 표준입출력 함수의 사용을위해 <stido.h>를 포함했지만 C++에서는 <iostream> 형태를가진 헤더파일이 추가되어야합니다. 그런데 iostream 헤더에는 확장자(.h)가 안보이네요? 확장자를 써주지 않았을뿐이지 C언어 때와 동일하게 확장자는 .h 가 맞습니다. C++에서는 프로그래머가 정의한 헤더파일이 아니라 표준 헤더파일을 선언할때는 확장자를 생략한답니다.

이제 헤더선언은 이해가되었고 밑으로 내려가 보도록할게요.
main() 메소드가 나왔네요. 사용법이 C언어와 다를바가없습니다.. main()메소드 안쪽을 들여다 보도록하죠.
int a= 100, int b= 50, double c= 3.14  변수를 선언하고 초기화 하는방법은 C언어와 역시나 일치합니다. 늘 봐왔던 부분이라 정말 익숙하네요. 쪼금만 더 내려가보도록합시다.
당혹스럽군요.  cout?? endl?? 이라는 새로운 녀석이 등장했습니다. 하지만 자세히 보면 이 두 가지 함수를 이용해서 출력을 하는구나라고 생각할 수 있습니다. C언어에서 사용하던 printf는 이제 보이지가 않네요. 그럼 한번 cout, endl에 대해서 알아보도록 하겠습니다.

std::cout<<는 출력을 해주는 함수 입니다.
사용하는 방식은
std::cout<< 출력할 대상;
출력할 대상에는 정수, 실수, 문자열, 변수등 뭐든지 사용할 수 있습니다.  C언어에서 쓰던 printf 함수와는 달리 %d, %s같은 문자를 이용해서 출력포맷을 지정하지 않아도 데이터 타입에 상관없이 잘 출력이 된다는겁니다. 사용하기 참 편한 함수죠? 앞으로 C++ 에서는 꼭 이 함수를 사용해주도록 합시다.

<<std::endl;는 개행을 도와주는 함수입니다.
사용하는 방식은
<< 연산자 다음에 std::endl;
앞으로 배울 강의에 저 뒤편에서 알게 되겠지만 <<도 연산자랍니다. 일단은 << 다음에 std::endl; 을 사용하여 개행을 할 수 있다는 것만 알아 두도록 합시다.

C언어와는 다른 방식에 출력함수 사용을보고 혼란이 오셨을거라 생각합니다. 하지만 로마에 온이상 로마법을 따라야겠지요. 반복적으로 사용하여서 몸에 익히도록해요~
이렇게 출력함수를 가지고 데이터의 연속출력을 해보도록 합시다.

std::cout<< "안녕" << "하세" << "yo" <<std::endl; 
연속 출력방법은 아주 간단하네요. << 연산자를 이용하여
<< 출력대상 << 출력대상 << 출력대상; 방식으로 사용하면 된다는걸 알 수 있습니다.

출력함수가 있으면? 당연히 입력함수도 있습니다. C언어에서 열심히 사용했던 scanf를 대신해줄 무언가가 또 있겠지요?

키보드로부터 3가지의 숫자를 입력받아 출력하는 예제를 통해 알아보도록 하겠습니다.



std::cin 이 등장했습니다. 사용법을 먼저 알아보도록 할게요.

std::cin >> 입력받값을 저장할 변수;
이렇게 사용합니다. cout나 endl과는 다르게 (<<) 꺽쇠방향이 반대로 (>>) 되어있군요.
입력받아서 >> 이쪽방향에 변수에 넣어준다. 이렇게 편하게 생각하시면 됩니다. 자세한건 나중에 다 알게될거에요^^

위에 예제는 int형 변수 first, second, third 3개를 선언해주고 각각 std::cin 함수를 이용해서 값을 받아주고 출력을 해줍니다. 이제 쉽게 이해가 되시죠?

다음은 배열을 이용한 문자열출력을 알아보도록 하겠습니다.



char 배열이름[길이]; 이렇게 선언을 해주는건 역시나 C언어에서 사용하던 방식과 같습니다. subject와 professor 이름을가진 char형 배열에 각각 입력을 받아 출력을 해주고 있네요. 앞서 배웠던 예제와 별차이가 없습니다!! 쉽게 쉽게 따라오실거라 믿어요.

이제 여러분은 c++에서 어느정도 데이터를 입력받고 출력하는데 능숙해지셨습니다.
마지막으로 반복문과 조건문을 이용한 예제를 한번 살펴보도록 하겠습니다.


0보다 큰수를 5개 입력받아 배열에 저장후 그 중에 가장 큰 큰값을 찾아내는 예제입니다.



1. arr[5] 배열에 5개의 숫자를 차례로 입력을 받습니다.
while{ } 문과 if( )문이 등장했네요. C언어때와 사용 방법이 동일함을 알 수 있습니다. arr[count] 에서 count 값을 0 에서부터 1씩 증가시켜 각각 값을 입력받은후에 if( ) 문에서 count 값이 5가 되었을때 break 를 이용하여 while문을 빠져나오게 됩니다.

2. int형 변수 max를 0으로 초기화합니다. max와 배열 arr[0]을 비교해서 큰값을 max에 넣어주고 그 다음 max와 arr[1]을 비교해서 큰값을 max에 넣어주는 방식을 arr[4] 까지 반복하게되면 max에 최대값이 저장되게 됩니다. 간단하죠?

오늘은 이렇게 C++에 대하여 간단하게 알아보았습니다. C언어를 이미 알고 오신분들이기에 그닥 어려운 부분은 없을거라 생각합니다. C++의 정점을 향해 앞으로 힘냅시다.
다음 강의때 뵙겠습니다.





















댓글 없음:

댓글 쓰기