S/W 개발/ETC2007.12.06 11:06


60분법 : 일반적으로 각의 크기를 나타내는 방법

● 호도법 : 원의 크기와는 관계없이 호의 길이와 반지름의 길이의 비가 일정하다는 원리를 이용하여, 이 비로 각의 크기를 나타내는 방법

 


반지름의 길이가 r인 원에서 크기가 θ인 중심각에 대한 호의 길이를 l이라고 하면,
l과 r의 비 l/r은 원의 크기에 관계없이 항상 일정하므로, ∠AOB의 크기를

 

l/r 라디안(radian)

으로 나타낼 수 있다.

즉, 반지름의 길이와 호 길이가 같을 경우  중심각의 크기는 1 라디안이다

 

180°= πr /r 라디안 = π 라디안

 

atan2() 함수는 라디안 값을 반환한다.



 
 

 

#include

#include


void main()

{

        double dX = 10;

        double dY = -10;

 

        printf("%lf\n", atan2( dY, dX ) * 180 / 3.14159265);

}

'S/W 개발 > ETC' 카테고리의 다른 글

Manifest 적용하기..  (0) 2007.12.06
두 점 사이의 각도 구하기  (0) 2007.12.06
문자열 처리 함수  (0) 2007.12.06
윈도우 간단 메시지 보내기  (0) 2007.12.06
Posted by 가희나희아빠 희자매(가희나희)아빠
TAG 각도, 두점
S/W 개발/ETC2007.12.06 11:05
** 문자열 처리 함수 **

#include <string.h>


1) 문자열의 길이 측정(strlen)
    strlen(문자열)

2) 문자열 결합(strcat)
    char *ptr;
    ptr = strcat(문자열, 문자열2)

3) 문자열 비교(strcmp)

    int i;
    i = strcmp(문자열, 문자열2)
    i == 0 <--- 같다.
    i != 1 같지 않다.

4) 문자열 복사(strcpy)

    char *ptr;
    strcpy(문자열, 문자열2)|
    문자열2를 문자열로 복사

5) 문자열 변환(atoi, atol, atof)

    atoi -> 정수
    atol -> long
    atof -> 부동 소수점.    

    long b; float c;
    int a;
    a = atoi("1234");
    b = atol("-544334");
    c = atof("43.5456);

6) 문자열 교환 함수 (str_swap)

    void str_cpy(char *ptr1, char *ptr2)
    {
       while(*ptr2)
        *ptr1++ = *ptr2++;
        *ptr1 = NULL;
    }

    void str_swap(char *a, char *b)
    {
       char temp[255];
       str_cpy(temp, a);
       str_cpy(a, b);
       str_cpy(b, temp);
    }

7) 문자열 내에서 특정 문자의 개수를 카운트 하는 함수(char_cnt)

    int char_cnt(char *ptr, char ch)
    {
        int i = 0;
        while(*ptr)
         if(*ptr++ == ch)
            i++;
        return(i);
    } 

8) 문자열 내의 특정 문자를 다른 문자로 바꾸는 함수(str_chg)

    int str_chg(char *ptr, char ch1, char ch2)
    {
       while(*ptr)
       {
        if(*ptr == ch1)
           *ptr = ch2;
           ptr++;
       }
    }

9) 문자열 내의 특정 문자를 탐색(str_fine)

    char *str_find(char *ptr, char ch)
    {
       while(*ptr)
       {
        if(*ptr == ch)
           return(ptr);
        ptr++;
       }
       return((char *)(-1));
    }

10) 문자열 내의 소문자를 대문자로 바꾸는 함수(str_upp)

    void str_upp(char *ptr)
    {
       while(*ptr)
       {
        if(islower(*ptr))
           *ptr = toupper(*ptr);
        ptr++;
        }
    }

11) 문자열 내의 대문자를 소문자로 바꾸는 함수(str_low)

    void str_low(char *ptr)
    {
       while(*ptr)
       {
        if(isupper(*ptr))
           *ptr = tolower(*ptr);
        ptr++;
       }
    }

12) 대문자와 소문자 상호 교환 함수(str_case)

    void str_case(char *ptr)
    {
       while(*ptr)
       {
        if(isupper(*ptr))
           *ptr = tolower(*ptr);
        else if(islower(*ptr)
           *ptr = toupper(*ptr);
        ptr++;
       }
    }

13) 각 문장의 첫 문자만 대문자로 교환하는 함수(str_fst)

    void str_fst(char *ptr)
    {
        if(islower(*ptr))
        *ptr = toupper(*ptr);
        while(*ptr)
        {
           if(*ptr == '.')
          {
           ptr++;
           while(*ptr == ' ')
            ptr++;
           if(islower(*ptr))
            *ptr = toupper(*ptr);
          }
        }
        ptr++;
    }

14) 문자열 내의 지정한 위치에 다른 문자열을 삽입하는 함수(str_ins)

    char *str_ins(char ptr1[], char ptr2[],int t)
    {
       char temp[255];
       int i, j, k;
       if(t>=str_len(ptr1) return (-1);  
       for(k=0; i=0; i<t; i++; k++)
        temp[k] = ptr1[i];  

       for(j=0; ptr2[j] !=NULL; j++, k++)  
        temp[k] = ptr2[j];

       while(ptrl1[i])
        temp[k++] = ptr1[i++];

       temp[k] = NULL;
    }

15) 문자열 앞에 지정한 개수 만큼의 공백을 추가하는 함수(str_blk)

    void str_blk(char ptr[], int t)
    {
       static char temp[255];
       int i;
       for(i = 0; i<t; i++)
        temp[i] = BLANK;
       temp[i] = NULL;
       str_cat(temp ptr);
       str_cpy(ptr, temp);
    }

16) 문자열 내의 모든 공백을 삭제하는 함수(rmv_blk)

    void rmv_blk(char ptrp[])
    {
       char temp[255];
       int i, k;

       for(i=0, k=0; ptr[i] != NULL; i++)
        if(ptr[i] != BLANK)
           temp[k++] = ptr[i];
       temp[k] = NULL;
       str_cpy(ptr, temp);
    }

17) 문자열 내에서 원하는 개수 만큼 문자를 삭제하는 함수(str_rmv)

    void str_rmv(char *ptr, int loc, int count)
    {
       int len, i, j;
       len = str_len(ptr);
       if(loc >= len)
        return (-1);

       if(loc + count <= len)
       {
        j = loc + count;
        for(i=loc; ptr[j] != 0; i++)
        {
           ptr[i] = ptr[j];
           j++;
        }
            ptr[i] = NULL;
       }
       else
        ptr[loc] = NULL;
    }

18) 특정한 문자열이 기억된 위치를 계산하는 함수(str_loc)

    int str_loc(char ptr1[], char ptr2[])
    {
       int i, j, k;
       for(i=0; ptr1[i] != NULL; i++)
        for(j=i, k=0; ptr2[k] == ptr1[j]; k++, j++)
           return (i);
       return (-1);
    }


19) 특정한 문자열이 나온 개수를 카운트 하는 함수(str_cnt)

    int str_cnt(char ptr1[], char ptr2[])
    {
       int i, j, k;
       int count = 0;
       for(i=0; ptr1[i] != NULL; i++)
        for(j=i, k=0; ptr2[k] == ptr1[j]; k++, j++)
           if(ptr2[k+1] == NULL)
           {
            count++;
            break;
           }
        return ((count == 0) ? -1 : count);
    }

'S/W 개발 > ETC' 카테고리의 다른 글

두 점 사이의 각도 구하기  (0) 2007.12.06
문자열 처리 함수  (0) 2007.12.06
윈도우 간단 메시지 보내기  (0) 2007.12.06
문자 추출 및 형변환시 사용하는 함수들..  (0) 2007.12.06
Posted by 가희나희아빠 희자매(가희나희)아빠
TAG 문자열
S/W 개발/ETC2007.12.06 11:04
net send 192.168.0.1 하이

'S/W 개발 > ETC' 카테고리의 다른 글

두 점 사이의 각도 구하기  (0) 2007.12.06
문자열 처리 함수  (0) 2007.12.06
윈도우 간단 메시지 보내기  (0) 2007.12.06
문자 추출 및 형변환시 사용하는 함수들..  (0) 2007.12.06
Posted by 가희나희아빠 희자매(가희나희)아빠
TAG 메시지
S/W 개발/ETC2007.12.06 11:02

인터넷에서 찾아서 참고 하고 수정한 함수들...

/********************************************************************************************
한 비트값을 얻고자할때  index는 8bit 중 그 위치
GetBits (변수 ,  순서);  
7 6 5 | 4 3 2 1 0
GetBit(word,5); 5번째 값을 가져옴.. ^^
********************************************************************************************/
int GetBit (unsigned char data, int index) 
{
    unsigned char mask = 0x01;
    mask = mask << index;
    int i = data & mask;
    i = i >> index;
    return i;
}

/********************************************************************************************
2bit이상의 값을 추출할때 index(7-0)는 마지막 위치 ,  size는 가져오는 비트수
GetBits (변수 ,  5 , 3);  7 - 5까지 값을 가져옴.. ^^
7 6 5 | 4 3 2 1 0
********************************************************************************************/
int GetBits (unsigned char data, int index, int size) 
{
   unsigned char mask = 0xFF;
   mask = mask << (8-size);
   mask = mask >> (8-size);
   mask = mask << index;
   int i = data & mask;
   i = i >> index;
   return i;
}

// 형변환 모음
// CString형을 double형으로 변환
double CString2double(CString str)
{
   char *Temp = (LPSTR)(LPCSTR)str;
   return atof(Temp);
}

// double형을 CString형으로 변환
CString double2CString(double num)
{
   CString Temp;
  Temp.Format("%f", num);
  return Temp;
}

// CString형을 char* 형으로 바꾸는 함수
char *CString2char(CString str)
{
   char *charTemp = (LPSTR)(LPCSTR)str;
   return charTemp;
}


// 그외 형변환 참조 기존 자료들..
// int -> char *
Visual C++ 에는 다음과 같은 함수가 있습니다.
int , __int64 , unsigned __int64 등의 데이터형을 char* 형으로 바꾸어주는 함수들입니다.
인자에 대해 설명하자면 int value 는 입력값, char *string 은 출력값, int radix 는 출력될 진법을 표시합니다.
예를 들어 radix를 16으로 설정하면 16진수로 출력한다는 말이죠. radix 값은 2~36 사이의 값만 가능합니다.

char *_itoa( int value, char *string, int radix );
char *_i64toa( __int64 value, char *string, int radix );
char * _ui64toa( unsigned __int64 value, char *string, int radix );
wchar_t * _itow( int value, wchar_t *string, int radix );
wchar_t * _i64tow( __int64 value, wchar_t *string, int radix );
wchar_t * _ui64tow( unsigned __int64 value, wchar_t *string, int radix );

// char* 형을 double 형으로 바꾸는 함수
double atof( const char *string );

// char* 형을 int 형으로 바꾸는 함수
int atoi( const char *string );

// char* 형을 __int64 형으로 바꾸는 함수
__int64 _atoi64( const char *string );

// char* 형을 long 형으로 바꾸는 함수
long atol( const char *string );

'S/W 개발 > ETC' 카테고리의 다른 글

두 점 사이의 각도 구하기  (0) 2007.12.06
문자열 처리 함수  (0) 2007.12.06
윈도우 간단 메시지 보내기  (0) 2007.12.06
문자 추출 및 형변환시 사용하는 함수들..  (0) 2007.12.06
Posted by 가희나희아빠 희자매(가희나희)아빠
TAG 형변환

티스토리 툴바