'CPP Language'에 해당되는 글 5건

  1. 2010.07.13 예제
  2. 2010.07.13 2장 변수명에 대한 간단한 이야기
posted by nsakura 2010. 7. 13. 13:49


일단 입출력을 해보자~ 라는 생각에 간단한 예제로 놀아보자.

#include <iostream>
#include <iomanip> //setw()함수를 사용하기 위해.

using namespace std; //네임스페이스 std
//네임스페이스를 빼면 std::cout형식으로 써야 한다 너무 귀찮다.

void main(){

int conver=26;
cout<<setw(1)<<dec<<conver; //10진수
//sew()출력 자리수 지정
cout<<setw(10)<<oct<<conver; //8진수
cout<<setw(20)<<hex<<conver<<endl;
cout<<setw(12)<<setiosflags(ios::showbase)<<oct<<conver;
cout<<setw(20)<<setiosflags(ios::showbase)<<hex<<conver<<endl;
//setiosflags(ios::showbase) 서식 플래그를 지정하는 함수.

}



하지만 이러면~! 너무 재미가 없다.

입력 받은 수를 각 진수로 바꾸게 바꾸자.

그렇게 어렵지 않다. 원래 프로그래밍 공부는 이런식으로 해야한다고 나는 생각한다 주어진 예제만 쳐봤자 손가락 운동 밖에 더 되겠는가?

일단 본인은 입력과 출력을 함수로 나누었다.

#include <iostream>
#include <iomanip> //setw()함수를 사용하기 위해.

int input(int);
void output(int);

using namespace std; //네임스페이스 std
//네임스페이스를 빼면 std::cout형식으로 써야 한다 너무 귀찮다.

int input(int conver){

cout<<"___________________________________________"<<endl;
cout<<"변환하고자 하는 수를 입력해주세요."<<endl;
cout<<"입력 : ";
cin>>conver;  //입력
cout<<"___________________________________________"<<endl<<endl;
return conver;

}

void output(int conver){

cout<<setw(1)<<dec<<conver;
//10진수//sew()출력 자리수 지정
cout<<setw(10)<<oct<<conver; //8진수
cout<<setw(20)<<hex<<conver<<endl;
cout<<setw(12)<<setiosflags(ios::showbase)<<oct<<conver;
cout<<setw(20)<<setiosflags(ios::showbase)<<hex<<conver<<endl; 
cout<<"_____________________________________________"<<endl;
 //setiosflags(ios::showbase) 서식 플래그를 지정하는 함수.
}

 

void main(){

int conver=0;
conver=input(conver);
output(conver);

}



자 입력을 받으면 이제 변환이 되는데 이런생각 안해봤는가... 여러번 바꾸고싶을 수 있다. 그럼 입력을 여러번 받아야한다.

그럼 브레이크를 걸 숫자를 생각해야하는데. 개인적으로 0이라고 생각한다.

0을 진수 변환할리가 없지 않은가.

그래서 0을 입력받으면 프로그램이 끝나게 하자.

void main(){

int conver=1; //0이 아닌수로 초기화 해준다.
while(conver!=0){

conver=input(conver);

if(conver!=0){

output(conver);

}

}

cout<<"프로그램을 종료 합니다."<<endl<<endl;
return;

}





C++은 나도 배우는 입장이다.

그렇기 때문에 틀린 부분이 있다고 하더라도 이해 부탁한다.


posted by nsakura 2010. 7. 13. 11:10

뭐 int가 뭐고 이런건 버리도록 하죠. c++을 하고 int char등등은 알고 있을 것이고 기본적으로 어떻게 메모리에 할당되는지 까지는

알 것이니.. 그런데 왜 갑자기 변수에 대한 이야기를 하냐고?

솔직히 2학년때 자료 구조 시간이었어....

변수가 뭐죠? 라는 교수님의 질문. '아니 지금 그걸 왜 물어봐?'

라고 생각했다. 1학년때 다 배운것 들 아닌가?

하지만 의외로 답하는 사람은 없었다..

귀찮아서인지.. 아니면 몰라서인지는 모르지만....

솔직히 입문자들은 변수명을 지정할때 아주 가벼운 마음으로 한다.

ex-> int a;

이런식으로 말이다. 난 상당히 이부분을 싫어한다.. 한 3~4줄 짜리라면 모를까

보통 3~4줄짜리는 한번 테스트하고 지울 코드인경우가 많기 때문에 상관은 없다.

하지만 저것이 버릇이 된다는 점이 문제다.

만일 5000줄 짜리 코딩을 혼자서 한다고 치자.

int a,b등등등;

만들었다. 하지만 프로그래밍 완성하고 테스트도중에 버그가 발생하였다.

당연히 고치러 가야지. 그런데 이런 말을 할껄?

어? a가... 뭐지? b는 뭐고..

이러면 곤란하다 디버그도 매우 힘들 뿐더러 ...

그리고

'님아 주석 쓰센'

라는 분도 계실거다.

아니 주석을 쓸 빠에는 애초 변수명을 어느정도 예상가능하게 쓰면 되잖아. 라고 반박할것이고 이게 보통 정설일 것 이다.

그럼 이야기를 좀 돌려서 말해보자 그럼 변수명이라는게 뭘까?

여기서 간단하게 포인터이야기로 나가는데....

그냥 포인터가 뭐지 이런 생각은 버리도록 하자. 그냥 그런게 있나보다 라고만 생각하자.

학교에 친구들이 있어요.

40명이에요.

별로 크지도 않고 울타리도 정해져있죠.

어느날 nsakrua가 moonwind보고 bindk집에 놀러가자! 라고 했습닏.

여기서 변수명은 뭘까요?

bindk가 되겠죠.

그런데 bindk의 집은 [주안 4동 1xx 2xx호] 라고 합시다. 이건 주소값이죠.

존내 길어요.

친구내 놀러가는데

야 주안4동 1xx 2xx호에 놀러가자! 라고 하는 사람이 있나요? 친구 끼리..

없죠. 주소라는건 길고 외우기도 힘들어요. 그걸 대채 하기위에 변수명이라는걸 쓰는겁니다.

즉 bindk집에 놀러가자 하면 아 bindk집에 가는구나~ 주소는 몰라도 알잖아요?

반 친구들 이름이 의미 없게 a, b, c등등 되어있다고 보세요.

헛갈리지 않을까요? 그래서 변수명을 알아볼수있게 어느정도 의미를 부여한다는거죠.. 그래서 이 이야기를 한겁니다.

갑자기 생각난것도 있고....




그럼 주소같은경우 언제 쓰냐구요?

짜장면 배달을 시킨다고 치죠. 아 bindk집에 짜장면 1그릇이요.

이러면 어떨까요? 모르겠죠 bindk집이 어디야? 라고 하지 않겠습니까. 또한 bindk를 안다고 쳐도 그 bindk가 우리가 원하는 bindk

인지 어떻게 장담을 할까요? 또한가지 동명이인이면? 그럴때는 주소를 사용하겠죠?

프로그램도 마찬가지 입니다.



뭐 한번쯤 생각을 해봐야하지 않겠나? 해서 글을 적어본겁니다.

'Computer > C++' 카테고리의 다른 글

이거이거 하다보니 너무 똑같더라.  (0) 2010.07.13
단항 스코프 식별 연산자  (0) 2010.07.13
예제1 입출력을 했으면 이게 나와야죵?! 계산기!  (0) 2010.07.13
예제  (0) 2010.07.13
1장 헤더  (0) 2010.07.13