2013/03

    왜 유니코드를 사용하는 것이 좋은가?

    어플리케이션 개발 시 반드시 유니코드를 사용하기를 권장한다. 그 이유로는 1. 유니코드를 사용하면 다른 나라의 언어로 애플리케이션을 지역화하기가 쉽다. 2. 유니코드는 사용하면 단일의 바이너리(.exe나 DLL) 파일로 모든 언어를 지원할 수 있다. 3. 유니코드를 사용하면 코드가 더 빠르게 수행되며 더 작은 메모리를 사용하기 때문에 애플리케이션의 효율성이 증대된다. 윈도우는 내부적으로 유니코드로 구성된 문자와 문자열을 사용하기 때문에 ANSI 문자나 문자열을 전달할 경우 내부적으로 새로운 메모리를 할당하고 ANSI 문자와 문자열을 유니코드로 변경해야 한다. 4. 유니코드를 사용하면 윈도우가 제공하는 모든 함수를 쉽게 사용할 수 있다. 몇몇 윈도우 함수는 유니코드 문자나 문자열만을 받아들일 수 있도록 작..

    에러 핸들링

    윈도우 함수가 에러를 어떻게 처리하는지에 대해 이해해 봅시다. 윈도우 함수를 호출하면 호출된 함수는 먼저 전달된 인자의 유효성을 확인하고 함수의 기능을 수행하려 합니다. 만일 전달된 인자가 유효하지 않거나 다른 이유로 인해 해당 기능을 수행할 수 없으면 함수는 실패를 반환합니다. 윈도우 함수의 대표적인 반환 자료형 입니다. 자료형 실패했을 때의 값 VOID 이 함수는 절대 실패하지 않습니다. 아주 적은 윈도우 함수만이 void 형의 반환 자료형을 가집니다. BOOL 함수가 실패하면 0을 반환합니다. 성공 시에는 0이 아닌 값을 반환합니다. 반환 값을 TRUE와 비교해서는 안됩니다. HANDLE 함수가 실패하면 반환 값은 대개 NULL 입니다. 성공 시에는 유효한 오브젝트 핸들을 반환합니다. 몇몇 함수들은..

    [dovelet] profit

    프로그램 명: profit 제한시간: 1 초 물건의 원가가 a 이고 , 원가에 b % 이윤을 붙여서 정가를 정했으나 물건이 잘 팔리지 않아 정가의 c% 를 할인해서 팔았다. 이 물건을 팔았을때의 이윤을 구하여라. 입력a,b,c 가 입력으로 주어진다. (모두 자연수이고 a < 100000 , b,c < 100) 출력이윤을 소수 첫째 자리에서 반올림하여 출력한다. 손해를 볼 경우에는 loss 를 출력한다. 입출력 예입력 100 10 10 출력 loss 입력 100 10 8 출력 1 #include int main() { double a,b,c; double d=0,e=0,f=0; scanf("%lf %lf %lf",&a,&b,&c); e=b/100; f=c/100; d= ((a+(a*e))-((a+(a*e)..

    [dovelet] rlpn

    2차원 격자공간에 두 개의 꼭짓점 좌표로 표현되는 직사각형이 있다. 직사각형은 아래와 같이 왼쪽 아래 꼭짓점 좌표 (x,y) 와 오른쪽 위 꼭짓점 좌표 (p,q) 로 주어진다. 이 문제에서 모든 직사각형은 두 꼭짓점의 좌표를 나타내는 4개의 정수 x,y,p,q 로 표현된다. 단 항상 x < p , y < q 이다. 예를 들어 위 그림에 제시된 직사각형이라면 아래와 같이 표현된다. 3 2 9 8 두 개의 직사각형은 그 겹치는 부분의 특성에 따라 다음 4가지 경우로 분류될 수 있다. 먼저 두 직사각형의 겹치는 부분이 직사각형인 경우이다. 아래 그림(a)는 공통부분이 직사각형인 경우의 3가지 예를 보여준다, 또는 겹치는 부분이 아래 그림 (b)와 같이 선분이 될 수도 있고, 그림 (c)와 같이 점도 될 수 있..

    구조체

    구조체도 배열처럼 여러 개의 데이터를 그룹으로 묶어서 하나의 자료형으로 정의하고 사용하는 자료형입니다. 배열은 같은 자료형만을 그룹으로 묶을 수 있지만 , 구조체는 서로 다른 자료형을 그룹으로묶을 수 있으므로 복잡한 자료 형태를 정의하는 데 유용하게 사용합니다. 구조체 변수의 선언 방법 ① ② ③ struct employee{ char name[10]; int year; int pay; }; struct employee Mafa; struct employee{ char name[10]; int year; int pay; } Mafa; struct { char name[10]; int year; int pay; } Lee; ①은 구조체 선언 을 한 후에 변수를 선언하는 방법이고, ②는 구조체와 구조체 변수..

    [dovelet] complete_graph

    꼭지점(vertex)의 수 n 이 주어질 때 임의의 점에서 다른 점으로 바로 가는 길이 존재할 때 선의 수(edge) 을 구하는 것이 문제입니다. #include int arrResult[1002] = {0,}; int main() { int n = 0; for(int i=2;i

    [dovelet] fuse

    본체 모니터 프린터 라우터가소비하는 전류를 측정하는 문제입니다. #include int main() { double computer,prin; double roug; double sum=0; double sum1=0; double sum2=0; int sum3=0; int sum4=0; scanf("%lf %lf %lf",&computer,&prin,&roug); sum = computer * 2.5; sum1 = prin * 2.0; sum2 = roug * 0.5; sum3 = (sum+sum1+sum2)*2; sum4 = sum3%10; if(sum4!=0) sum4=10; sum3 = sum3-(sum3%10); sum3 = sum3+sum4; printf("%d", sum3); return 0;..

    다차원 배열

    배열은 배열 요소들을 2차원 , 3차원으로 만들어서 2차원 배열 , 3차원 배열을 나타낼 수 있습니다. 즉 2차원 배열은 배열의 배열이고 , 3차원 배열은 배열의 배열의 배열입니다. 2차원 이상의 배열을 다차원 배열이라고 합니다. 다차원 배열의 선언 2차원 배열은 배열의 배열이므로 선언 방법이 1차원 배열과 같은 형식이면서 늘어난 만큼 []를 더 추가하고 그 안에 배열의 크기를 넣어줍니다. 자료형 배열 이름 [배열 크기][배열 크기] 2차원 배열은 차수가 2므로 2개의 배열 크기가 필요합니다. 배열의 구조를 논리적으로 표현 할 때 첫번째 배열의 크기는 행의 개수가 되고 두번째 배열 크기는 열의 개수가 됩니다. 따라서 첫번째 배열 크기에 대한 인덱스는 행번호가 되고 두번째 배열크기에 대한 인덱스는 열의 크..