목록전체 글 (20)
물에 사는 벌레
5번 식이 일반적으로 알려진 방법이지만 4번처럼 각 축의 이동거리를 구한 후 루트를 씌워주어도 값은 컴퓨터에서 거어어어어어의 일치한다. 각 축의 이동거리를 구할 때 주의할 점은 루트가 없기에 양수 또는 음수가 나올수 있다는 것인데, 이를 예방하기 위하여 절댓값을 씌워서 연산한다. 2번 식에서는 어차피 (x = t) 이기에 이를 미분한 1을 아무리 적분해봐야 값은 양수기에 절댓값을 씌우지 않았다.
DWORD FormatMessage( DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, LPTSTR lpBuffer, DWORD nSize, va_list *Arguments ); { LPVOID lpMsgBuf; FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, WSAGetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, 0, NULL); // lpMsgBuf에 담긴 오류 내용을 지지고 볶기... LocalFree(lpMsgBuf); } FORMA..
라디안 단위를 사용함으로써 삼각함수의 인자로 사용 가능함. 1. 일반각을 라디안으로 변환: a(º) * pi / 180(º) = r(rad) 2. 라디안을 일반각으로 변환: r(rad) * 180(º) / pi = a(º) pi와 180(º)는 둘 다 같은 각을 나타내기에 pi / 180(º)를 곱하는 행위는 수치적으로는 변화를 주나 * 1을 하는 것과 같다. 1. a 각도의 º 기호와 180 각도의 º 기호가 약분되며 라디안 단위로 변환된다. 2. b 라디안에 곱해진 파이를 약분함과 동시에 º 기호를 곱해줌으로써 일반각 단위로 변환된다. 프로그래밍 시 1, 2번을 미리 매크로 또는 상수로 정의해놓고 사용하는 것이 좋다. const float DegToRad = pi / 180; const float R..
분수끼리의 곱에선 분자 또는 분모끼리 위치를 바꾸어도 값은 같으므로 분모의 위치를 바꾸어 식을 변형한다. 마지막 식에서 (B - A = 1)이라면 왼쪽의 값은 1이 되어 분모가 분리된 식만 남게 된다. 위처럼 부분 분수를 이용하여 N칸 차이 꼴로 만들어 시그마를 풀 수 있다. 위는 두칸 차이 꼴을 푸는 예시이다. 이를 이용하여 급수에 적용한다. Summation(n)에서 n을 무한대까지 근접시킬 때의 수렴값은 1번째 항부터 무한대 번째의 항까지의 수렴값과 같으므로 이를 사용하여 급수를 풀 수 있다. 예를 들면 'A(n) = (1/2)^n' 수열의 극한은 0이며, 'A(2n) = (1/2)^2n = {(1/2)^2}^n = (1/4)^n' 이기에 결국엔 0으로 수렴한다. + 급수는 수열의 극한이 0일때만 ..
#define _CRT_SECURE_NO_WARNINGS #include "Stack.h" #include #include #define EXPMAX 256 int getPriorty(char op) { switch (op) { default: // (, ), ... return 0; case '+': case '-': return 1; case '*': case '/': return 2; } } int main() { int pos = 0; char postExp[EXPMAX]; char preExp[EXPMAX] = { 0, }; printf("중위 표기식: "); scanf("%s", preExp); ArrayStack* opStack = NULL; AS_CreateStack(&opStack, EX..
뒤의 두 개의 항을 곱해 다음 항의 값을 구할 수 있는 수열을 재귀함수로 대응 뒤의 두 개의 항을 곱해 다음 항의 값을 구할 수 있는 피보나치 수열을 재귀함수로 대응 대응 순서는 1. 점화식을 구한다. 2. 좌변이 An 항이 되도록 n의 값을 대입한다. 3. 좌변이 An인 점화식은 f(n)으로 대응한다. 4. 점화식 축차대입을 위한 초기 항들을 대응한다. 5. 2번에 구한 식을 완성한다.
이곳 저곳 들쑤시고 다닌 결과물입니다. [C 서버] #define _WINSOCK_DEPRECATED_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS #include #include #pragma comment(lib, "ws2_32") #define PORT 4567 void err_exit(const char* msg) { LPVOID lpMsgBuf; FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER, 0, WSAGetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPSTR)&lpMsgBuf, 0, 0); MessageBox(NUL..
정적 라이브러리 컴파일 과정중 하나인 링킹 과정에서 링커가 라이브러리를 실행 파일에 링크합니다. 실행 파일에 라이브러리의 코드가 복사되어 포함되기 때문에 실행 파일의 크기가 커지며 컴파일 시간이 길어질 수 있습니다. 컴파일이 끝난 후에는 lib 파일이 없더라도 프로그램 실행이 가능합니다. 동적 라이브러리(공유 라이브러리) 정적 라이브러리와는 다르게 런타임에서 필요에 따라 로더가 로드하여 사용합니다. 실행 파일에는 호출할 함수의 정보만 포함되기 때문에 실행 파일의 크기가 작아지며 컴파일 시간이 크게 증가하지 않습니다. 하지만 컴파일이 끝난 후에도 dll 파일이 존재해야만 프로그램 실행이 가능합니다. 동적 라이브러리는 프로세스 시작 단계에서 코드를 로드하는 암시적 링크, 프로세스 실행 중에 필요한 코드만 로..