본문 바로가기

2010년 6월 11일 금요일

반응형

   

   

문제

   

1. 문자가 숫자인지 알려주는 isDigit 함수를 구현하세요. 문자 ch를 입력 받고, ch가 숫자인지 출력하세요. 맞다면 YES, 아니면 NO를 출력합니다.

출력) 문자 : P

결과 : NO

문자 : 2

결과 : YES

   

   

#include <iostream>

   

using namespace std;

   

int main()

   

{

  char a;

  cout<< "Enter a character :";

  cin>> a;

   

  if((65<=a&&a<= 90|| (97<=a&&a<=122)) //중간에 && 조건식해서 답이 안나왔다

  {

    cout << "결과 : NO";   

  }

   

  else if((48<a)&&(a<57))

   

  {

    cout << "결과 : YES";

  }

   

}

   

   

      

   

/*  switch(a)  //switch 에서 int형만 받을  있고 case 옆에는 

  {    //숫자만 쎠져야 한다.

  case 65<=a<=90:    //cse 1; << 이런식으로

    cout << "결과 : NO";       

    break;

   

  case 97<= a<= 122:

    cout << "결과 : NO";       

    break;

   

  case 48<=a<=57:

    cout << "결과 : YES";

    break;

   

  }

   

}

*/

   

2. 정수 N을 입력하면 2의 N승을 출력하는 프로그램을 작성하세요. 단, 비트 연산을 이용합니다.

그리고 -1을 입력할 경우 프로그램은 종료됩니다.

출력) 입력 : 6

출력 : 2^6= 64

   

입력 : 4

출력 : 2^4 = 16

   

입력 : -1

프로그램 종료

   

#include <iostream>

   

using namespace std;

   

int main()

{

  int a = 1;

  int b;

    

  cout<<"입력: ";

  cin>>b;

    

  a = a << b;

   

  cout<<"출력: 2^"<<b<<"="<< a;

   

}

   

   

   

3. 다음과 같은 형태로 문자열이 출력되는 프로그램을 작성하시오.

1)

A

A B

A B C

A B C D

A B C D E

   

   

#include <iostream>

   

using namespace std;

   

int main()

{

  char alpha[5= { 'A' , 'B' , 'C' , 'D' , 'E' };

   

   

  for (int i = 0; i < 5; ++i)

  {

    for (int j = 0; j <= i; ++j)

    {

      //cout <<"*";

      cout <<alpha[j]<<"\t";

    }

    

  cout <<"\n";

  }

  return 0

}

   

   

   

2)                     a

b a

            c b a

                 d c b a

              e d c b a

   

#include <iostream>

using namespace std;

int main()
{    
    
  char alpha[] = "edcba";
  for (int k = 4; k >= 0 ; k--)    //k값 순차적으로 감소.
    {        

      for(int l = 0; l <= 4 ;l++)  //l값 순차적으로 증가.  k와 관계 없음.    
      {
        if(l>=k)  //if문을 사용해서 k보다 커지는 l값을 하나씩 찍는다.
        {
          cout <<alpha[l]<<"\t";
          continue;  //continue를 사용하면 밑에 있는 tab을 생략하고
        }      //for문으로 돌아간다.
        cout <<"\t";    //배열을 출력하나 안 하나 tab을 출력하여 공간을
      }        //만든다.
      cout << "\n";      //l의 한 주기가 끝날 때 마다 칸을 내려서 정리한다
                 //칸을 안 내리면 옆으로 계속 찍어서 모양이 안나온다.
    }

  

}
     

   

   

   

   

   

   

   

   

   

   

   

<수업>

   

메크로

   

#include <iostream>

   

using namespace std;

   

#define SQUARE(x)  ((x)*(x))

   

int main(void)

   

{

   

  cout <<SQUARE(5)<<"\n";

   

  return 0;

   

}

   

   

   

   

컴파일되는 시점이 다름.

메크로 함수 - 전처리 과정을 거쳐서 컴파일 전에 라인안에 들어가서

인라인 됬다고 한다. 호출하는 과정이 없으므로 속도가 빠르다.

단 코드가 통째로 들어가서 파일크기는 커진다. 메크로 함수는 되도록 짧은 코드

를 사용한다. 일반함수와는 다르게 데이터 타입을 지정하지 않아도 된다.

   

함수와 함수간의 값 이동은 매개변수로 한다.

C++에서는 레퍼런스를 사용하면 편리하다.

   

   

<포인터 배열>

   

   

code영역은 대부분 Read-only 그러나 수정 되는 것도 있다.

stack은 Read and Write.

   

[stack]

단지 출력만 하려면 포인트함수를 사용

   

[code 영역]

char student[5][15]={"마이클 …

수정번젼

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  


gets() and fgets() return s on success

   

성공하면 s= (인자)를 반환한다.

char[15]라면 30이 들어가서 성공하면 s값을 출력하고

실패하면 null값을 반환한다. >>scanf와 같은 함수.

   

블럭킹 함수: 종료 될 때까지 프로그램의 진행을 막는 함수 scanf

넌블럭형 함수: printf

   

   

<main문의 종류>

   

void main()

int main()

   

void main (int . char &[ ])

int main (int . char &[ ])

   

   

#include <stdio.h>

   

int main(int A, char *p[])

{

  int iCnt;

    

  printf("%d\n" , A);

  //printf("%s\n" , p[0]);

  //printf("%s\n" , p[1]);

  //printf("%s\n" , p[2]);

   

  for(iCnt = 0; A > iCnt ; ++iCnt)

  {

    printf(" %d : %s\n" , iCnt , p[iCnt]);

  }

   

}

    

   

//인자 수와 인자출력.

   

   

   

화면 캡처: 2010-06-11, 오후 3:10

   

   

   

반응형

'About 프로그래밍!!! > [BSP]업무일지' 카테고리의 다른 글

struct  (0) 2010.06.11
typedef  (0) 2010.06.11
2010년 6월 10일 목요일  (0) 2010.06.10
[BSP]업무일지-2010/05/26  (0) 2010.05.26
[BSP]업무일지-201005025  (0) 2010.05.26
-->