'C:'에 해당되는 글 345건

  1. 2007/09/15 stream 관련글
  2. 2007/09/15 API 디자인 발표영상
  3. 2007/09/12 예제 모음
  4. 2007/09/11 VideoShop
  5. 2007/09/11 sprintf 와 wsprintf 이야기 (2)
  6. 2007/09/11 삼각법 - 삼각함수 공식(Trigonometry)
  7. 2007/09/11 암호화 관련 스레드
  8. 2007/08/23 알까기와 물리학
  9. 2007/08/16 boost 설치
  10. 2007/08/13 8.11(토) C# - 기초문법4

stream 관련글

from Study/C++ 2007/09/15 15:57 view 26209
스트림 관련글 링크

한-스트림을-다른-스트림으로
-연결하기
Tag | ,

API 디자인 발표영상

from Study/API 2007/09/15 15:00 view 20714
http://www.infoq.com/presentations/effective-api-design

-_-...아 R/C
Tag |

예제 모음

from Study/API 2007/09/12 11:10 view 21901
http://www.winapi.co.kr/pds/exam/exam.htm 
Tag |

VideoShop

from -_-.. 2007/09/11 20:26 view 20799


// Videoshop
// 조건
// 1. boost의 shared_ptr<> 사용.
// 2. 자료구조가 필요하면 STL 사용.
// 3. 최대한 객체지향화.
// 4. 메뉴판 Composite pattern 사용

설명

more..



2007/08/13 - [Study/C++] - 8.10(금) C++ 디자인패턴 - Composite 을 활용한 메뉴생성5(최종)

Tag | ,

sprintf 와 wsprintf 이야기

from Study/API 2007/09/11 20:23 view 72217
귓동냥으로 wsprintf()의 w가 windows라는것을 알았기 때문에, 윈도우즈에서 프로그래밍할때에는 막연히 wsprintf()를 썼었는데, 오늘 관련 자료를 찾아보면서 보다 정확히 알게 되었다.

간략하게 정리하면
sprintf()는 CRT 라이브러리를 사용하는 함수
wsprintf()는 플랫폼 SDK에서 제공하는 함수, 단 실수(float)형의 사용은 안된다.
/////////////////////////////////////////////////////////////////////////////////////////////
sprintf 를 사용하려면  #include <stdio.h> 가 필요합니다.

이는 보통
#include <vcl.h>
#include <stdio.h>
#pragma hdrstop 식으로 쓰이게 되죠.

그런데 왜 vcl에서는 sprintf 를 포함하지 않았는지 궁금했었는데... wsprintf 가 있기 때문이었습니다.

wsprintf 는
#include <stdio.h>
없이 사용가능한 WIN32 API 로,  일반 ANSI코드과 유니코드 사용 프로그램에
공히 사용할수 있는 문자열 합성 함수입니다.

유니코드를 사용하지 않는 프로그램이면 그냥 wsprintf 를 sprintf 대신 사용하면 됩니다.
유니코드를 사용하는 프로그램이면 역시 wsprintf 를 그냥 사용하면 됩니다.

유니코드를 사용할 경우는 문자열은 L"문자열"; 식으로 유니코드로 표현되어야 하며
char * 대신 wchat_t *  형이 사용되어야 합니다.

그래서 표준적으로 유니코드 사용프로그램과 일반 프로그램에 공히 하나의 코드로 처리하기 위해
컴파일러는 TCHAR 형과 TEXT 매크로를 제공합니다.

가령 OnCreate 이벤트에 다음과 같은 코딩이 가능합니다.
{
TCHAR  buf[100];
wsprintf(buf, TEXT("캡션 메시지: %s"), TEXT("안녕하세요. C++빌더입니다."));
Caption = buf;
}
이 코드는 ANSI형이나 유니코드형 프로그램 양쪽에서 안전하게 동작합니다.
TEXT 매크로 와 __TEXT 매크로는 동일합니다.

Project Option->Directorys...->Conditional defines ; 에 UNICODE 또는 _UNICODE 를 넣어주면
유니코드모드로 컴파일하게 되는데, 이 경우 안전하게 유니코드모드로 컴파일되게 합니다.

프로그래밍할때 아예 습관을 char 대신 TCHAR 으로 하고
"문자열" 대신 TEXT("문자열") 을 쓰는 것도 좋을 것입니다.
Tag | ,

Calculus Concepts and Contexts 2/E - Stewart 에 있는 삼각법
Tag |

암호화 관련 스레드

from Study/Security 2007/09/11 10:32 view 21273
http://kldp.org/node/49780 중 여성과학자, 미국 암호체계 뚫었다 | KLDP
Tag |

알까기와 물리학

from Study/Physics 2007/08/23 17:46 view 23645
과거 모 방송사 코미디 프로그램에서 유행했던 추억의 알까기가 부활돼 인기다. 어린 시절 누구나 한번은 해봤던 단순하고 재미있는 놀이. 요즘은 노인들의 치매 예방에 큰 도움이 된다고 하여 노인정에서도 유행하고 있다. 알까기는 장난스러운 게임이지만 그 속을 들여다보면 물체의 충돌 현상을 이용하는 것으로 물리의 영역에 속한다. 서울대 물리학과 유인석 교수가 최근 ‘물리학과 첨단기술’(한국물리학회 발간)에 알까기에 담겨 있는 물리 법칙과 알까기 비법을 소개했다.

유교수는 알이 정면으로 부딪치는 ‘정면 알까기’와 옆에서 부딪치는 ‘빗겨 알까기’의 2가지로 나눠 실험을 실시했다. 실험에서는 바둑알 대신 동전을, 손 대신 볼펜 스프링을 이용해 퉁겼다. 그림과 같이 두 동전을 일정한 거리만큼 떨어뜨린 후 모눈종이 위에 놓고 한 동전을 퉁겨 정면으로 충돌하게 한다. 알까기에서 승부의 요체는 자신의 알은 그대로 유지한 채 상대방의 알을 얼마나 잘 맞춰 멀리 내보내느냐는 것이다. 그러므로 자신의 알이 움직인 거리(x2)에 대한 남의 알이 움직인 거리(x1)가 클수록 좋다.

알까기는 초기 속도가 가장 빠르고 점점 속도가 줄어드는 가속도운동이다. 또 퉁긴 알이 자신의 운동에너지를 퉁겨진 알에 전달하는 에너지 전달이 일어난다. 운동량 보존의 법칙에 의하면 충돌 직후 퉁긴 알은 바로 멈추고 충돌된 알이 같은 속도로 움직여야 하지만 실제로는 그렇지 않다. 이는 충돌할 때 소리 등으로 알의 운동에너지가 소모되기 때문이다. 실험에서 충돌 전후의 운동에너지 비율을 계산한 결과 두 알의 비율은 0.78이었다. 이는 충돌하는 알의 운동에너지 중 22%가 소리 등 다른 에너지로 전환된다는 의미다. 그러므로 물리법칙에 따르면 정면으로 알을 깔 때 상대방의 알보다 22%정도 가벼운 알을 택하면 유리하다. 바둑알일 경우 최대한 가벼운 알을 고르고 장기알은 가벼운 알로 약간 무거운 알을 공격하는 게 효과적인 셈이다.

다음으로 알을 비스듬히 빗겨서 퉁기는 경우를 생각해보자. 빗겨 알까기에서는 충돌한 후 알이 직진하지 않고 운동방향이 틀어진다. 두 알이 중심에서 빗긴 거리를 ‘충돌맺음변수’라고 하며 운동방향이 틀어지는 정도를 ‘쏠림각’이라고 한다. 이상적인 경우 쏠림각은 90도가 되어야 하지만 실제 충돌실험을 하면 대략 74도쯤 벌어진다. 이 역시 충돌시 ‘딱’하는 충돌음 등으로 에너지가 손실되기 때문이다. 벌어지는 각도가 일정한 이유는 운동량 보존법칙을 사용하는 2차원 충돌이론으로 설명된다. 알이 퉁겨지는 각도가 커지게 하려면 충격맺음변수를 크게, 즉 상대 알의 가장자리를 겨냥하면 된다. 유교수는 “실제 알까기에서는 알이 볼록하고 판과의 마찰력도 있으며 손에 힘이 실리는 정도에 따라 달라지기 때문에 이론치와는 차이가 난다”며 “물리공식들을 이해하면 알이 움직이는 정도를 예측할 수 있을 것”이라고 말했다.

알까기 실험은 2001년 서울대에서 주최한 수학·과학 경시대회에 출제된 바 있다. 기고 내용은 한국물리학회 홈페이지(www.kps.or.kr)에서 자세히 볼 수 있다.
Tag | ,

boost 설치

from Study/C++ 2007/08/16 14:10 view 36299

BOOST 라이브러리 사이트 : http://www.boost.org
 
1. 설치 방법 1

more..



2. 설치방법2

more..


Tag |

8.11(토) C# - 기초문법4

from Study/C# 2007/08/13 17:18 view 19852

using System;

 

// 1.언제 수집되는가 ? Context스위칭시간 10ms정도를 가비지시스템이 작동한다.

// 메모리를 일단 쓰게 한후에 어느정도 찼을 메모리를 비워준다.
// (
메모리의 이동을 줄인다. )

// 2.세대 개념 0, 1, 2세대(관리 ) 차례대로 진행된다.

// 3.소멸자 호출

 

// C# Java 소멸자를 만들지 않는다.

// 대신 IDisposable 인터페이스를 구현해라.

// WINDOW API 가져다 HANDLE 같은것을 해제 시켜 줄 때만 소멸자의 역할을 만든다.

 

 

class Point

{

    public int x;

 

    public Point()

    {

        Console.WriteLine("Point.Point()");

    }

 

    public void Dispose()

    {

        Console.WriteLine("여기서 소멸자의 역할을 하게 해라.");

    }

 

    // c# 소멸자를 만들 있다.( finalize라고 부른다. )

    // 하지만 정확히 언제 호출 될지를 없다.

    //~Point()

    //{

    //    Console.WriteLine("Point.~Point()");

    //}

}

 

class Test

{

    public static void Main()

    {

        {

            Point p1 = new Point();

 

            p1.Dispose();   // 소멸 작업이 필요한 경우..호출

        }

        //GC.Collect(0);   // 강제로 가비지 Collection 한다.

        //GC.Collect(0);

        //Console.WriteLine("{0}", GC.CollectionCount(0));

 

        Console.WriteLine("AAA");

    }

}

Tag |