피씨컴의 기울어진 공관

3장 예제

프로그래밍/공부 2013. 2. 18. 23:22

★  3장_1번예제

#include <iostream>
using namespace std;

int main ( )
{
 int a=123;          
 cout << "a> 100 의 결과" << (a>100) << endl; 
 return 0;
}

● 주석 & 과정

  1. a에 123으로 초기화
  2. a==123 이고 a가 100보다 크기 때문에 조건 성립 결과는 true 즉 1


 

● 결과 & 스크린샷

 

 

★  3장_2번예제

#include <iostream>
using namespace std;
int main()
{
 int a=100;          
 cout << "정수 입력:";
 cin>> a;          
 if (a>100)          
 cout << a << "는 100 보다 크다" << endl;
 return 0;
}

● 주석 & 과정

  1. a를 100으로 초기화
  2. a에 입력
  3. a가 100보다 크다면의 조건이 성립 하면 밑에 문장이 실행됨

 

● 결과 & 스크린샷

 

 

 

★  3장_3번예제

#include <iostream>
using namespace std;
int main()
{
 int a;
 cout << "정수 입력";
 cin >> a;            
 if (a>100)            
 {              
  cout << "a의 값" << a << endl;
  cout << a << "는 100 보다 크다" << endl;
 }              
 cout << "즐거운 C++ 프로그램을 증료합니다 !!"<<endl; 
 return 0;
}

 

● 주석 & 과정

  1. a에다가 입력받음
  2. a가 100보다 크다면의 조건이 맞는다면 아래 문장이 실행됨.
  3. 괄호를 넣음으로서 지역이 생겼다.
  4. if의 지역의 끝인셈
  5.  마지막 문구를 넣음으로 좀더 친절한 프로그램이 됨

● 결과 & 스크린샷

 

 

 

★  3장_4번예제

#include <iostream>
using namespace std;
int main ( )
{
 int a; 
 cout << "정수 입력:";
 cin>> a;      
 if (a>100)      
 cout << " 100 보다 크다" << endl;
 else       
 cout << "100 보다작다" << endl;
return 0;
}

● 주석 & 과정

  1. a에 입력 받는다.
  2. a가 100보다 크다면의 조건이 성립하면 아래문장이 실행
  3. 위의 if 조건에 해당되지 않는다면 이 아래의 문장이 실행

● 결과 & 스크린샷

 

 

★  3장_5번예제

#include <iostream>
using namespace std;
int main ()
{
 int a;
 cout << "정수 입력:";
 cin >> a;        
 if (a>100)        
  cout << "100 보다크다" << endl;
 else         
 {
  if (a<100)       
   cout << "100 보다 작다" << endl;
  else        
   cout << "100 이다" << endl;  
 }
 return 0;
}

● 주석 & 과정

  1. 입력받는다 a에
  2. a가 100보다 크다면 아래 문장 실행
  3. 위 조건이 해당사항 없음 아래 문장 실행
  4. a가 100보다 작다면 아래문장 실행
  5. 위조건이 해당사항 없으면 아래 문장 실행 하지만 위에 100보다 크지도 않고 100보다 작지도 않기 때문에 이 소스가 의도한것처럼 결국 나머지 경우에수는 100 밖에 없기 때문에 100이라 당당히 출력한다.

 

 

● 결과 & 스크린샷

 

 

★  3장_6번예제

#include <iostream>
using namespace std;
int main()
{
 int jumsu;
 cout << "점수 입력:";
 cin >> jumsu;            
 if (jumsu<=100 && jumsu>=90)        
 cout << "당신의 성적은 A입니다" << endl;
 else              
 {
  if (jumsu<=89 && jumsu>=80)        
   cout << "당신의 성적은 B입니다" << endl;
  else             
  {
   if (jumsu<=79 && jumsu>=70)       
    cout << " 당신의 성적은 C입니다" << endl;
   else            
   {
    if (jumsu<=69 && jumsu>=60)      
     cout << " 당신의 성적은 D입니다"<< endl; 
    else           
     cout << "당신의성적은 F입니다" << endl;
   }
  }
 }

                
 return 0;
}

● 주석 & 과정

  1. jumsu에 입력받음
  2. jumsu가 100보다 작거나 같지만 90보단 크거나 같다 즉 90~100 이라면 아래 문장 실행
  3. 그게 아니라면 아래 문장 실행 즉 90아래라는 소리
  4. jumsu가 89보다 작거나 같고 80보단 크거나 같을때 즉 80~89 이라면 아래 문장 실행
  5.  그게 아니라면 아래문장 실행 즉 80아래라는 소리
  6. jumsu가 79보다 작거나 같고 70보단 크거나 같다면 즉 70~79이라면 아래문장 실행
  7. 그게 아니라면 아래문장 실행 즉 70아래라는 소리
  8. jumsu가 69보다 작거나 같고 60보단 크거나 같을때 즉 60~69 이면 아래문장 실행
  9. 그게아님 아래 실행 즉 F 학점이란 소리
  10. 이것의 형태는 if 안에 if 를 쓴 형태임. 좀 복잡해질 수 있음


 

● 결과 & 스크린샷

 

 

 

★  3장_7번예제

#include <iostream>
using namespace std;
int main ()
{
 int jumsu;
 cout << " 접수 입력:";
 cin>> jumsu;
 if ( jumsu<=100 && jumsu>= 90)    
 cout <<" 당신의 성적은 A입니다 " << endl;
 else if (jumsu<=89 && jumsu>=80)   
 cout << " 당신의 성적은 B입니다 " << endl;
 else if (jumsu<=79 && jumsu>=70)   
 cout << " 당신의 성적은 C입니다 " << endl;
 else if (jumsu<=69 && jumsu>=60)   
 cout << " 당신의 성적은 D입니다 " << endl;
 else          
 cout << " 당신의 성적은 F입니다 " << endl;

            
return 0;
}

● 주석 & 과정

  1.  jumsu가 100보다 작거나 같지만 90보단 크거나 같다 즉 90~100 이라면 아래 문장 실행
  2. 위 조건이 아니고 jumsu가 89보다 작거나 같고 80보단 크거나 같을때 즉 80~89 이라면 아래 문장 실행
  3. 위 조건이 아니고 jumsu가 79보다 작거나 같고 70보단 크거나 같다면 즉 70~79이라면 아래문장 실행
  4. 위 조건이 아니고 jumsu가 69보다 작거나 같고 60보단 크거나 같을때 즉 60~69 이면 아래문장 실행
  5. 위에 모든 조건에 해당사항 없음 아래 문장 실행
  6. else if 를 사용한 형태 가독성이 한층더 좋아졌다.


 

● 결과 & 스크린샷

 

 

 

 

★  3장_8번예제

#include <iostream>
using namespace std;
int main ( )
{
 int jumsu;
 cout << "접수 입력:";

 cin>>jumsu;

 if(jumsu>100 || jumsu<0)     
 cout << "잘못된 점수 입력입니다" << endl;
 else if (jumsu>=90)       
 cout << "당신의 성적은 A입니다" << endl;
 else if (jumsu>=80)       
 cout << "당신의 성적은 B입니다" << endl;
 else if (jumsu>=70)       
 cout << " 당신의 성적은 C입니다" << endl;
 else if (jumsu>=60)       
 cout << " 당신의 성적은 D입니다" << endl;
 else          
 cout << " 당신의 성적은 F입니다" << endl;
 return 0;
}

● 주석 & 과정

  1. 점수가 100 이상이거나 0이하이면 아래문장을 실행
  2. 위에 조건이 아니고 점수가 90보다 크거나 같다면 아래 문장을 실행
  3. 위에 조건이 아니고 점수가 80보다 크거나 같다면 아래 문장을 실행
  4. 위에 조건이 아니고 점수가 70보다 크거나 같다면 아래 문장을 실행
  5. 위에 조건이 아니고 점수가 60보다 크거나 같다면 아래 문장을 실행
  6. 위에 모든 조건이 해당사항 없음 아래 문장 실행

● 결과 & 스크린샷

 

 

 

 

★  3장_9번예제

#include <iostream>
using namespace std;
int main ( )
{
 int num;
 cout << " 숫자 입력 : ";
 cin>> num;             
 switch(num)             
 {
 case 1:
  cout << " 1 의 값이 입력되었습니다" << endl;
  cout << "************************" << endl;    
 case 2:
  cout << "2 의 값이 입력되었습니다" << endl;
  cout << "************************ " << endl;
 default:
  cout <<"1 또는 2 가 아닌 값이 입력되었습니다" << endl;
  cout <<"************************ " << endl;
 }
 return 0;
}

● 주석 & 과정

  1. 입력받고
  2. 입력받은 값에 따라 맞는 case에 문장을 실행
  3. break; 가 없기때문에 case1부터 시작하면 case1부터 defaule 까지 쫘라락 실행된다

● 결과 & 스크린샷

 

 

 

 

★  3장_10번예제

#include <iostream>
using namespace std;
int main()
{
 int num;
 cout << "숫자입력: ";
 cin>> num;             
 switch(num)             
 {
 case 1:
  cout << "1 의 값이 입력되었습니다" << endl;
  cout <<"************************" << endl;
  break;             
 case 2:
  cout << "2 의 값이 입력되었습니다" << endl;
  cout <<"************************" << endl;
  break;
 default:
  cout <<"1 또는 2 가 아닌 값이 입력되었습니다" << endl;
  cout << "************************" << endl;
                
 }
 return 0;
}

● 주석 & 과정

  1. 입력받음
  2. 입력받은 값에 따라 맞는 case에 문장을 실행
  3. break가 있기 때문에 case1이 실행되어도 break문을 만나면 끝나버림.
  4. 어짜피 마지막이기 때문에 break문은 필요 없음

 

● 결과 & 스크린샷

 

 

 

 

★  3장_11번예제

#include <iostream>
using namespace std;
int main()
{
 int score;
 cout << "점수 입력: " ;
 cin >>score;           
 switch(score/10)          
 {              
 case 10:
 case 9:
 cout << " 당신의 성적은 A입니다 "<< endl;
 break;
 case 8:
 cout << " 당신의 성적은 B입니다 " << endl;
 break;
 case 7:
 cout << "당신의 성적은 C입니다" << endl ;
 break;
 case 6:
 cout << "당신의 성적은 D입니다" << endl;
 break;
 case 5:
 case 4:
 case 3:
 case 2:
 case 1:
 case 0:
 cout << " 당신의 성적은 F입니다 " << endl;
 break;
 default:
 cout << "접수를 잘못 입력했습니다" << endl;
 }
 return 0;
}

● 주석 & 과정

  1. 입력받고
  2. 입력받은 값을 10으로 나누면 2자리중 마지막 일의 자리가 뒤로 날라가고 십의자리만 남음
  3. 그걸 가지고 스위치로 성적을 매김.

● 결과 & 스크린샷

 

 

★  3장_12번예제

#include <iostream>
using namespace std;
int main()
{
 int i;
 for (i=1; i<=5; i++)        
 cout << "i=" << i << endl;
 cout << "반복문 for 이후 i 의 값" << i<< endl;
 return 0;
}

● 주석 & 과정

i를 1로 초기화하고 i가 5보다 작다면 밑애 문장을 실행하고 그뒤 i++하며 앞의 조건이 false가 될때까지 반복한다.

 

● 결과 & 스크린샷

 

 

 

 

★  3장_13번예제

#include <iostream>
using namespace std;
int main()
{
 int i;
 i=1;       
 for ( ;i <=5;)     
 {
 cout << "i=" << i << endl;
  i++;      
 }

 cout << "**** ****** " << endl;
 i=1;       
 for (;;)      
 {
  cout << "i=" << i << endl;
  i++;      
  if (i>5)     
   break;     
 }
 return 0;
}

● 주석 & 과정

  1. i를 1로 수정
  2. 조건이 true면 false일때 까지 반복 i가 5보다 작거나 같다면? 참 true이기에 반복에 들어감
  3. i를 1씩 증가시킴
  4. i를 1로 수정
  5. 무한반복
  6. i를 1씩 증가시킴
  7. i가 5보다 크다면 아래문장을 실행
  8. 반복문에서 나감

 

● 결과 & 스크린샷

 

 

 

 

★  3장_14번예제

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

 i=1;           
 while (i<=5)         
 {
  cout << "i=" << i << endl;
  i++;          
 }
 cout << " 반복문 while 이후 i의 값" << i<< endl;
 return 0;
}

● 주석 & 과정

  1. i를 1로 수정
  2. 조건이 참이면 반복 i가 5보다 작기 때문에 참임 반복
  3. i를 1씩 증가 후치이기 때문에 이 이후에 증가됨
  4. i가 6이 되어야 반복문의 조건이 참이 아니게 되므로 결과는 6 수의 차이는 증감연산자 후치형이기 때문

● 결과 & 스크린샷

 

 

 

 

 

★  3장_15번예제

#include <iostream>
using namespace std;
int main ()
{
 int score; 
 do{                
  cout << "접수 입력:";
  cin >> score;            
 }while(score>100 || score<0);         
 cout << "당신이 입력한 접수는 " << score << " 입니다" << endl;
 return 0;
}

● 주석 & 과정

  1. do while은 일단 한번은 실행하고 시작한다.
  2. 입력받고
  3. 만약 조건이 참이면 계속 반복이다 이경우0보다 작거나 100보다 큰수를 입력하면 다시 입력하게 한다.


 

● 결과 & 스크린샷

 

 

 

 

★  3장_16번예제

#include <iostream>
using namespace std;
int main ( )
{
 int score;
 char flag= 'Y';                 
 do {
  if (flag== 'n' )               
   cout << "접수의 범위가 잘못되었습니다. 다시 입력하세요! !!" << endl;
  cout << "점수 입력:";
  cin >> score;                
  flag='n' ;                 
 } while (score>100 || score<0);             
 cout << " 당신이 입력한 접수는 " << score << " 입니다 . " << endl;
}

● 주석 & 과정

  1. flag를 문자 y로 추기화
  2. flag가 문자n이면 아래 문장 실행 
  3. 입력
  4. flag를 문자 n으로 수정 만약 밑에 조건이 참이여서 반복하면 위에 if를 만나게됨
  5. 만약 조건이 참이면 계속 반복이다 이경우0보다 작거나 100보다 큰수를 입력하면 다시 입력하게 한다.


 

● 결과 & 스크린샷

 

 

 

 

★  3장_17번예제

#include <iostream>
using namespace std;
int main ( )
{
 int i;
 for (i=1; i<10; i++)    
 { 
  if (i%2 == 0)     
  continue;      
  cout << "i= " << i << endl;
 }
 return 0;
}

● 주석 & 과정

  1. i를 1로 수정하고 i가 10보다 작은 조건이 참일때 동안 밑에문장 실행 반복하며 i++한다.
  2. i의 값을 2로 나머지를 구해서 0이면 (짝수이면)
  3. 이걸 실행시켜라 그럼 밑에꺼  패스!

 


 

 

● 결과 & 스크린샷

 

 

 

★  3장_18번예제

#include <iostream>
using namespace std;
int main ()
{
 int i , j;   
 for (i=1; i <=2; i++)      
 {
  for (j=1; j<=3; j++)     
  {
   cout << "i=" << i <<" ";   
   cout << "j=" << j <<endl;
  }
  cout << "*******************" << endl;
 }
 return 0;
}

● 주석 & 과정

  1. i를 1로 수정 만약 i가 2보다 작거나 같다면 계속 반복하고 그담에 i++
  2. 반복문안에 반복문의 형태 j=1로 수정 만약 j 가 3보다 작거나 같다면 계속반복 그담에 j++

 

● 결과 & 스크린샷

 

 

 

 

★  3장_19번예제

#include <iostream>
using namespace std;

int main()
{
 int a , i;           
 int r=1;           
 char flag= 'y';          
 do {            

  if (flag== 'n' )        
   cout << "앙수를 입력하세요" << endl;

 cout <<"정수 입력: " ;    
 cin >>a;           
 flag= 'n';           

 } while (a<0);          
              

 for (i=1; i<=a; i++)        
  r=r*i;           
 cout << a << "!="<< r << endl;      
 return 0;
}

● 주석 & 과정

//정수형 변수 a와 i를 선언
//정수형변수 r선언하고 1로 초기화
//문자형 flag선언하고 'y'로 초기화
//반복전 1번은 실행함.

//floag가 'n'이면 아래 내용 실행

 

//입력
//flag를 'n'으로 수정

//a가 0보다 작으면 내용을 반복함 이는 정수형 이외의 값을 넣었을때
//경고를 출력하고 다시입력을 받기 위해 들어간 루틴

//i를 1로 수정  i가 a보다 작거나 같다면 계속 반복 그 후 i++
//1부터 입력한 수까지 차례대로 곱하여 누적
// 그리고 출력


 

● 결과 & 스크린샷

 

 

 

★  3장_20번예제

#include <iostream>
using namespace std;

void TEST();         

int main()
{
 cout << "main() 함수 시작입니다 " << endl;
 TEST();          
 cout << "main ( ) 함수 종료합니다 " << endl;
 return 0;
}
void TEST ()         
{
 cout << "TEST 함수입니다.!!!!" << endl;
}

● 주석 & 과정

  1. 함수를 선언
  2. 함수를 동작하는 부분
  3. 동작하는 부분 해당 함수의 몸통


 

● 결과 & 스크린샷

 

 

 

★  3장_21번예제

#include <iostream>
using namespace std;
int main ( )
{             
 int a=100;          
 cout << "main () 범위입니다. " << endl;   

 for (int i=1; i<3; i++)       
 {            
  cout << " 반복문 for 의 범위입니다" << endl;
  cout << "i= " << i << endl;
 }            
 cout << "프로그램을 종료합니다" << endl;
 return 0;          
}             

● 주석 & 과정

  1. main함수 내부의 영역의 시작
  2. a 선언하고 100으로 초기화
  3. int i를 선언 하고 1로 초기화 i가 3보다 작다면 반복후 i++
  4. 여기서부턴 for문의 영역
  5. 여기까지가 for문의 영역의 끝
  6. main함수 내부의 영역의 끝

 

● 결과 & 스크린샷

 

 

 

 

★  3장_22번예제

#include <iostream>
using namespace std;
int main ( )
{
 int a=100;           
 cout << "main() 범위입니다" << endl;

 for (int i=1; i<3; i++)        
 {             
  int a=200;          
  cout << " 반복문 for의 범위입니다" << endl;
  cout << "i= " << i << endl;      
  cout << "a=" << a << endl;      
 }             
  cout << "a=" << a << endl;      
  cout << "프로그램을 종료합니다"<< endl;
 return 0;
}

● 주석 & 과정

  1. main함수 영역의 int a를 선언하고 100을 초기화
  2. int i를 선언하고 1로초기화 i가 3보다 작으면 반복하고 i++
  3. for의 영역 시작
  4. for의 영역에서 int a를 선언하고 200을 초기화 main의 a와는 별개
  5. i를 출력
  6. 200을 출력 그 이유는 서로다른 영역에 같은 이름의 변수가 있다면 현제 영역의 변수에 우선순위가 있기 때문 그렇기 때문에 이 for 영역의 int a 가 우선순위로 표시됨
  7. 100을 출력 for안의 a 는 그 유통기간이 그 영역 안까지이며 이렇게 밖으로 나오면 현제 main영역의 a변수에 그 우선순위가 주어짐

 

 

● 결과 & 스크린샷

 

 

 

 

★  3장_23번예제

#include <iostream>
using namespace std;
namespace NS_1 {          
 int a=200;           
}
int main()
{
 int a=100;           
 cout << "main ( ) 범위입니다" << endl;
 for (int i=1; i<3; i++)        
 {    
 cout << "반복문 for 의 범위입니다" << endl;  
 cout << "i= " << i << endl;       
 cout << "namespace NS_1 의 a=" << NS_1::a << endl; 
 cout << "a=" << a << endl;       
 }
 cout << "namespace NS_1 의 a=" << NS_1::a << endl; 
 cout << "a=" << a << endl;       
 cout << "프로그램을 종료합니다" << endl;
 return 0;
}

● 주석 & 과정

  1. namespace NS_1는 영역 만들고 그곳엔 int a가 있고 200으로 초기화
  2. main영역에 int a를 선언하고 100으로 초기화
  3. int i를 선언하고 1을 초기화, i가 3보다 작으면 반복하고 i++ 함.
  4. i를 출력
  5. NS_1의 네임스페이스 영역의 a를 출력하기 때문에 200
  6. main영역의 a를 출력하기 때문에 100
  7. NS_1의 네임스페이스 영역의 a를 출력하기 때문에 200
  8. main영역의 a를 출력하기 때문에 100

 

 

● 결과 & 스크린샷

 

 

 

 

★  3장_24번예제

#include <iostream>
//using namespace std;          

namespace NS_1
{
 int a=200;
}
int main()
{
 int a=100;
 cout << "main ( ) 범위입니다" << endl;     
 for (int i=1; i<3; i++)
 {
  cout << "반복문 for의 범위입니다" << endl;   
  cout << "i= " << i << endl;
  cout << "namespace NS_1 의 a=" << NS_1::a << endl;
  cout << "a=" << a << endl;       
 }
 cout << "namespace NS_1 의 a=" << NS_1 ::a << endl;  
 cout << "a=" << a << endl;        
 cout << "프로그램을 종료합니다" << endl;    
 return 0;
}

● 주석 & 과정

  1. 이것을 지움
  2. 위에 using에서 std를 지웠기 때문에 cout이나endl을 찾을 수 없다. 사용하려면 네임스페이스를 지정해줘야한다.
  3. 위에 using에서 std를 지웠기 때문에 cout이나endl을 찾을 수 없다. 사용하려면 네임스페이스를 지정해줘야한다.
  4. 위에 using에서 std를 지웠기 때문에 cout이나endl을 찾을 수 없다. 사용하려면 네임스페이스를 지정해줘야한다.
  5. 위에 using에서 std를 지웠기 때문에 cout이나endl을 찾을 수 없다. 사용하려면 네임스페이스를 지정해줘야한다.
  6. NS_1 네임스페이스 명시하였고 그안의 맴버를 사용하였으므로 이건 NS_1안에 a를 정상 출력가능하지만 이것의 cout endl 역시 네임스페이스 지정이 안되어있어서 에러.


 

● 결과 & 스크린샷

결과이건 스샷이건 에러만 나옴

 

 

 

★  3장25_번예제

#include <iostream>
//using namespace std;
namespace NS_1
{
 int a=200;               
}                    
int main ()
{
 int a=100;
 std::cout << "main() 범위입니다. " << std::endl;     
 for (int i=1; i <3; i++)
 {
  std::cout << "반복문 for 의 범위입니다" << std::endl;   
  std::cout << "i= " << i << std::endl;       
  std::cout << "namespace NS_1 의 a= " << NS_1 ::a << std::endl; 
  std::cout << "a=" << a << std::endl;       
 } 
 std:: cout << "namespace NS_1 의 a=" << NS_1::a<< std::endl;  
 std::cout << "a=" << a << std::endl;        
 std:: cout << "프로그램을 종료합니다" << std::endl;     
 return 0;
}

● 주석 & 과정

  1. namespace NS_1는 영역 만들고 그곳엔 int a가 있고 200으로 초기화
  2. namespace를 직접 명시하기 때문에 cout 과 endl을 쓸수있다.
  3. namespace를 직접 명시하기 때문에 cout 과 endl을 쓸수있다.
  4. 이곳에 endl은 책의 소스상 직접 명시하지 않았으나 의도가 아닌듯하여 직접 지정함.
  5. namespace를 직접 명시하기 때문에 cout 과 endl을 쓸수있다.
  6. namespace를 직접 명시하기 때문에 cout 과 endl을 쓸수있다.
  7. namespace를 직접 명시하기 때문에 cout 과 endl을 쓸수있다.
  8. namespace를 직접 명시하기 때문에 cout 과 endl을 쓸수있다.
  9. namespace를 직접 명시하기 때문에 cout 과 endl을 쓸수있다.


 

● 결과 & 스크린샷

 

 

★  3장_26번예제

#include <iostream>
using namespace std;
namespace SAM_1
{
 int a=100;         
}            

namespace SAM_2
{   
 int b=200;         
}            
int main ( )
{
 cout << "SAM_1 의 a: " << SAM_1::a << endl; 
 cout << "SAM_2 의 b: " << SAM_2::b << endl; 

● 주석 & 과정

 

  1. namespace SAM_1는 영역 만들고 곳엔 int a가 있고 100으로 초기화
  2. namespace SAM_2는 영역 만들고 그곳엔 int a가 있고 200으로 초기화
  3. namespace sam_1을 직접 지정하여 그안에 a를 사용 100출력
  4. namespace sam_2을 직접 지정하여 그안에 a를 사용 200출력

● 결과 & 스크린샷

 

 

 

 

 

 

★  3장_27번예제

#include <iostream>
using namespace std;

namespace SAM_1
{
 int a=100;       
}          
namespace SAM_2
{
 int b=200;       
}          

int main ( )
{
 using namespace SAM_1;    
 using namespace SAM_2;    
 cout << "SAM_1 의 a: " << a << endl;
 cout << "SAM_2 의 b: " << b << endl;

● 주석 & 과정

  1.  namespace SAM_1는 영역 만들고 그곳엔 int a가 있고 100으로 초기화
  2. namespace SAM_2는 영역 만들고 그곳엔 int b가 있고 200으로 초기화
  3. main함수 내에서 사용된 변수나 함수중에 SAM_1의 맴버가 있다면 소속을 명시하지 아니하겠다는 의미
  4. main함수 내에서 사용된 변수나 함수중에 SAM_2의 맴버가 있다면 소속을 명시하지 아니하겠다는 의미
  5. 위에 명시했으므로 직접 네임스페이스를 지정할 필요가 없다. Sam_1의 맴버 a의 100 출력
  6. 위에 명시했으므로 직접 네임스페이스를 지정할 필요가 없다. Sam_2의 맴버 b의 200 출력

 

● 결과 & 스크린샷

 

 

 

★  3장_28번예제

#include <iostream>
using namespace std;

namespace SAM_1
{
 int a=100;       
}          
namespace SAM_2       
{          
 int a=200;       
}          
int main()
{
 using namespace SAM_1;    
 using namespace SAM_2;    
 cout << "SAM_1 의 a: " << a << endl;
 cout << "SAM_2 의 a: " << a << endl;
}

 

● 주석 & 과정

  1. namespace SAM_1는 영역 만들고 그곳엔 int a가 있고 100으로 초기화
  2. namespace SAM_2는 영역 만들고 그곳엔 int a가 있고 200으로 초기화
  3. main함수 내에서 사용된 변수나 함수중에 SAM_1의 맴버가 있다면 소속을 명시하지 아니하겠다는 의미
  4. main함수 내에서 사용된 변수나 함수중에 SAM_2의 맴버가 있다면 소속을 명시하지 아니하겠다는 의미
  5. SAM_1에도 SAM_2에도 같은 이름의 변수가 있다 그래서 어느건지 찾기 애매하여 애매하다는 에러가 난다. 해결하려면 직접 명시해줘야한다.
  6. SAM_1에도 SAM_2에도 같은 이름의 변수가 있다 그래서 어느건지 찾기 애매하여 애매하다는 에러가 난다. 해결하려면 직접 명시해줘야한다.
  7. 모범답안↓ 아래처럼 바꾸면 된다.

    std::cout << "SAM_1 의 a: " << SAM_l::a << std::endl;
    std::cout << "SAM_2 의 a: " << SAM_2::a << std::endl;


 

● 결과 & 스크린샷

'프로그래밍 > 공부' 카테고리의 다른 글

2장 _연습문제  (0) 2013.02.19
4장 예제  (0) 2013.02.19
2장 예제  (0) 2013.02.18
4장 정리  (0) 2013.02.17
제 3장 조건문, 반복문 네임스페이스  (0) 2013.02.14
Posted by 피씨컴