본문 바로가기
반응형

C/C++27

스텍이란? 2010. 2. 9.
연산자 오버로딩 1.연산자 오버로딩의 의미와 방법 (1)연산자오버로딩의 의미 -기본자료형 - int, 대입연산,사칙연산가능 -사용자정의형(구조체) - 대입연산,사칙연산 불가능 사용자정의형으로도 기본자료형처럼 쓸 수도록 하기 위해서 등장한 것이 연산자오버로딩이다. cf)C++에 대한 전문가의 평가 : 문법을 너무 남용하는 측면이 있는 문법요소 :friend, 연산자오버로딩 (2)오버로딩의 방법 멤버함수에 의한 오버로딩 class Point { private: int x,y; public: Point(int _x = 0,int _y= 0):x(_x),y(_y){} void ShowPosition() { cout 2009. 10. 9.
질점 [質點, material point] 역학적으로는 질량을 갖고 있으면서 부피가 없는 물체를 말한다. 그러나 실제로는 어떤 물체나 부피가 있으므로 질점은 이상적으로만 존재한다. 서로 작용하는 물체 사이의 거리에 비해 물체의 크기가 문제되지 않을 만큼 작고 자전(自轉)을 생각하지 않아도 될 경우, 두 물질을 질점이라 간주할 수 있다. 모든 질점은 스스로 운동상태에 들어갈 수 없으며, 외부에서 힘이 작용하는 상황에서만 운동을 할 수 있다. 외부 힘이 작용해서 질점이 운동하려고 할 때 그 질점이 가진 질량은 외부의 힘에 대해 저항하는데, 이를 관성저항이라 한다. 질점과 관련하여 질점역학은 질점 사이에 작용하는 힘과 질점의 운동관계를 연구한다. 또 부피가 있는 물체라도 그것을 많은 질점들의 집합으로 보고 각각의 질점에 질점역학을 적용시킨 것은 질점계.. 2009. 10. 8.
행렬 [ matrix, 行列 ] 행렬이란 수를 네모꼴로 배열한 것이다. 예를 들어 는 행렬이다. 행렬을 표시하기 위한 괄호는 위에서와 같이 주로 대괄호 []나 소괄호 ()를 사용하며, 행렬을 나타내는 기호는 특별히 수와 구별하기 위해 굵은 글씨체를 자주 사용한다. 행렬에서는 가로줄을 행이라고 하고, 세로줄을 열이라고 한다. 또한 행 또는 열들을 분리하여 각각 하나의 행렬로 쓴 것을 행벡터(row vector) 또는 열벡터(column vector)라 한다. 예를 들어 위의 행렬에서는 , 가 행벡터, , , 가 열벡터가 된다. 위의 예에선 행렬이 두 개의 행과 세 개의 열로 이루어져 있음을 볼 수 있는데 행과 열의 수를 특별히 강조하여 나타낼 때는 2×3 행렬이라고 부른다. 일반적으로, 어떤 행렬이 m개의 행과 n개의 열로 구성되어 있으.. 2009. 10. 8.
벡터의 내적과 외적 벡터의 내적은 두 벡터 a,b의 크기(절대값) |a|,|b|의 곱에 a,b 사이 각의 코사인을 곱해서 얻어지는 스칼라량 |a|·|b| cosθ를 a,b의 내적 또는 스칼라곱이라 하고 a·b 또는 (a,b)로 나타낸다. 기하학적으로는 |a|와 b의 a에의 사영 |b| cosθ와의 곱, 또는 |b|와 b 위에의 a의 사영 |a| cosθ와의 곱을 뜻하는 것이다. 또 a와 b의 성분을 각각 ax·ay·az, bx·by·bz라 하면 (a,b)=ax·bx+ay·by+az·bz 와 같이 두 벡터의 내적은 같은 성분끼리의 곱을 합한 것과 같다. 더욱 (a,b)=(b,a), 즉 벡터의 내적에 대해서는 교환법칙이 성립한다. 벡터의 외적은 두 벡터 a,b 사이의 각을 θ라 하면 |a|·|b| sin θ라는 크기, 즉 a,.. 2009. 10. 8.
유클리드공간 [Euclidean space] 유클리드의 평행선의 공리와 피타고라스의 정리가 성립하는 n차원 공간.. 순서를 가지는 n개의 실수의 쌍(x1,x2,…,xń)을 점(點)이라 하며, 두 점 (x1,x2,…,xń), (y1,y2,…,yń) 간의 거리를 으로 정의한 공간을 n차원 유클리드공간이라 한다. 직선은 1차원 유클리드공간, 평면은 2차원 유클리드공간, 공간은 3차원 유클리드공간이다 2009. 10. 8.
피타고라스의 정리 [Pythagorean theorem] 직각삼각형의 직각을 포함하는 두 변 위의 정사각형의 넓이의 합은 빗변 위의 정사각형의 넓이와 같다고 하는 정리이다. 그리스의 피타고라스가 처음 증명하여 이 이름이 붙었다 직각삼각형의 3개의 변을 a,b,c라 하고 c에 대한 각이 직각일 때 a2+b2=c2로 됨을 뜻하는 것으로서, 고대 그리스의 피타고라스가 처음으로 증명했다고 하여 피타고라스의 정리라고 한다. 경우에 따라서는 이것을 삼평방의 정리라고도 한다. 이것의 특별한 경우로서 3변이 3:4:5의 비율인 삼각형이 직각삼각형으로 된다는 것은 고대 이집트·바빌로니아·인도·중국 등에서도 알려져 있었다. 또 바빌로니아 등지에서는 일반적인 경우의 정리는 증명되지 못했으나 그 사실 자체는 알고 있었다고 한다. 이 정리는 많은 사람들의 흥미를 끌었고 옛날부터 각국.. 2009. 10. 7.
좌표계 3차원 공간에서 물체의 위치는 주어진 좌표계(coordinate system)를 기준으로 표시된다. - 원기둥 좌표계(cylindrical coordinate system) - 원구 좌표계(spherical coordinate system) - 직교 좌표계(cartesian coordinate system) : 원점의 위치, 축 방향, 축 눈금의 길이 등에 의해 정의 모델링 편의에 따라 여러가지 좌표계를 사용할 수 있으나 가장 많이 사용되는 것은 직교 좌표계이다. 3차원 직교 좌표계는 그림처럼 서로 직각으로 교차하는 3개의 좌표축 벡터(Coordinate Axis Vectors)로 이루어진다. x, y, z 축의 방향은 일반적으로 오른손 법칙을 따른다. 오른손 법칙에 따르면 그림과 같이 +x 축에서 +y.. 2009. 10. 7.
어파인 공간(Affine Space) 벡터는 그것이 어디에 있든지 크기와 방향이 같다면 모두 동일한 벡터로 취급된다. 벡터의 이러한 성질로 인해 공간상의 위치를 중시하는 기하학에서 벡터만으로 위치를 표시하기 어렵다. 벡터만으로 위치를 표시할 수 없기 때문에 점을 벡터 공간에 추가하면 방향뿐만 아니라 위치도 표시 가능 - 점(point) : 위치만 있고 크기나 방향은 없음. 동일한 벡터들 점과 벡터 사이의 연산 V = Q – P 점 Q에서 점 P를 빼면 P에서 Q로 향하는 벡터 V가 된다. Q = V + P 위의 식에서 Q를 우변으로 놓게 되면 다음과 같은 식이 성립하고, 등식의 우변은 벡터와 점 사이의 덧셈이 된다. 어파인 공간(同族, 親密, Affine Space) - 점과 벡터를 동족처럼 취급함으로써 벡터공간을 확장 - 어파인 공간에서는.. 2009. 10. 7.
벡터(vector) 크기와 방향을 동시에 지닌 것 예) 바람(풍력과 풍향), 물의 흐름, 물리학의 힘, 속도(velocity) 등 벡터의 덧셈에 관한 법칙 - 모든 벡터에는 역 벡터(inverse vector)가 존재한다. 제로 벡터(아무런 크기와 방향이 없는 벡터)를 항등원으로 놓으면 덧셈에 대한 벡터 V의 역원은 역벡터(벡터와 크기가 같고, 방향이 반대)이다. - 스칼라를 벡터에 곱할 수 있다. 벡터에 스칼라 2를 곱하게 되면, 방향은 동일하고 크기가 2배인 벡터가 정의된다. - 벡터의 합은 벡터이다. 수직으로 A 양만큼 이동하는 벡터와 수평으로 B 양만큼 이동하는 벡터의 합을 구하게 되면 벡터 V = A + B로 표현될 수 있고, 이는 두 벡터에 의해 만들어지는 평행사변형의 대각선 벡터와 동일하다. - 벡터 공간(ve.. 2009. 10. 7.
스칼라(scalar) 크기(magnitude)만 있고 방향(orientation)이 없는 양 예) 온도, 사람의 나이, 실수(real number), 속력(speed) 등 스칼라 A, B의 곱셈에서는 다음과 같은 법칙이 성립한다. - 교환 법칙(commutative law) A * B = B * A - 결합 법칙(associative law) A * B * C = (A * B) * C = A * (B * C) - 역원 법칙(inverse law) 항등원(identity)이 성립하고(곱셈 : 1, 덧셈 : 0), 역원도 성립한다. 2009. 10. 7.
벡터의 덧셈 2009. 10. 7.
API TransparentBlt()함수 필요한 lib파일. Msimg32.lib #pragma comment(lib,"Msimg32") TransparentBlt 함수는 BOOL TransparentBlt( HDC hdcDest, // handle to destination DC int nXOriginDest, // x-coord of destination upper-left corner int nYOriginDest, // y-coord of destination upper-left corner int nWidthDest, // width of destination rectangle int hHeightDest, // height of destination rectangle HDC hdcSrc, // handle to source DC in.. 2009. 8. 5.
2009.07.27 API TIMER /*********************************************************************************************************** LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM IParam) { HDC hdc; PAINTSTRUCT ps; SYSTEMTIME st; static TCHAR sTime[128]; switch(iMessage) { case WM_CREATE: //윈도우를 처음 생성하면 만들어지는 이벤트 (초기화) SetTimer(hWnd,1,1000,NULL); SendMessage(hWnd,WM_TIMER,1,0); return 0; case .. 2009. 7. 27.
2007.07.27 API Mouse입력 Mouse ------------------------------------------------------------------------- 버튼 누름 놓음 더블클릭 ------------------------------------------------------------------------- 좌측 WM_LBUTTONDOWN WM_LBUTTONUP WM_LBUTTONDBLCLK 우측 WM_RBUTTONDOWN WM_RBUTTONUP WM_RBUTTONDBLCLK 중앙 WM_MBUTTONDOWN WM_MBUTTONUP WM_MBUTTONDBLCLK ------------------------------------------------------------------------- 마우스 입력에 관한 메.. 2009. 7. 27.
2009.07.27 API KEY입력 WM_KEYDOWN ------------------------------------------------------------------------------------------------------ 가상키코드 값 키 ------------------------------------------------------------------------------------------------------- VK_LBUTTON 01 VK_RBUTTON 02 VK_CANCEL 03 Ctrl+Break VK_MBUTTON 04 VK_BACK 08 Backspace VK_TAB 09 Tab VK_CLEAR 0C NumLock이 꺼져 있을때의 5 VK_RETURN 0D Enter VK_SHIFT 10 Shift V.. 2009. 7. 27.
2009.07.27 API도형그리기 LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM IParam) { HDC hdc; PAINTSTRUCT ps; switch(iMessage) { /*윈도우 종료메세지(종료메세지가 없을시 메모리에 상주되어 있어 애러발생)*/ case WM_DESTROY: PostQuitMessage(0); //윈도우 종료메세지 return 0; /********************************************************************************************************** COLORREF SetPixel(HDC hdc, int X, int Y, COLORREF crColor); // .. 2009. 7. 27.
API기본 함수 //DC 얻는 방법 HDC GetDC(HWND hWnd); // 생성 int ReleaseDC(HWND hWnd,HDC hDC); //해제 // 윈도우 생성 HWND CreateWindow(lpszClassName, lpszWindowName, dwStyle, x, y, nWidth, nHeight, hwndParent, hmenu, hinst, lpvParam) // 윈도우 생성 BOOL ShowWindow(hWnd, nShowCmd) // 윈도우 화면에 출력 ------------------------------------------------------------------------ SW_HIDE 윈도우를 숨긴다. SW_MINIMIZE 윈도우를 최소화하고 활성화 시키지 않는다. SW_RESTORE.. 2009. 7. 27.
2009.07.24 API 수업 #include LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); //함수원형(파라미터에 인자 안적어둬도 됨) HINSTANCE g_hInst; LPCTSTR lpszClass=TEXT("First"); //타이틀바 이름 바꾸기 int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpszCmdParam,int nCmdShow) { HWND hWnd; MSG Message; WNDCLASS WndClass; /*파란색으로 표시되는것들은 자료형이다.*/ g_hInst=hInstance; WndClass.cbClsExtra=0; WndClass.cbWndExtra=0; WndClass.hbrBa.. 2009. 7. 24.
[C] printf와 fprintf를 사용한 예제!!! printf와 fprintf를 사용한 예제!!!! 예제가 두개니 따로따로 사용할것.. /***************************************************** 사각형 넓이 계산 프로그램 fprintf,fscanf 사용 *****************************************************/ #include int main(void) { int width, height; //width(가로값받는 변수) height(세로값 받는 변수) int area; //area(두수를 곱하는 변수) fprintf(stdout, "사각형의 넓이 계산\n"); //화면에 사각형의 넓이 계산이라는 문자열을 보여준다. fprintf(stdout, "가로 길이: "); //화면에.. 2009. 7. 23.
[C] 기본적인 파일 입출력 /********************************************* asd.txt에 미리 저장되어 있는 두수를 읽어와서 다시 result.txt파일에 두수곱한 값을 저장하는 기본적인 파일 입출력 프로그램 asd.txt에는 10 과 20 이라는 숫자가 입력이되어 저장이 되어 있음.. 10과 20말고 다른 수를 넣어도 무방.. 단 두수가 입력이되어서 저장이 되어 있어야 함. fopen과 fclose는 구조체로써 fopen으로 열면 fclose로 닫아 주어야된다. **********************************************/ #include void main() { FILE *fin, *fout; //*fin(미리저장되어있는 파일의 포인터) *fout(곱값을 저장할 파일.. 2009. 7. 23.
2009.07.23 API 수업 #include LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); HINSTANCE g_hInst; LPCTSTR lpszClass=TEXT("First"); int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpszCmdParam,int nCmdShow) { HWND hWnd; MSG Message; WNDCLASS WndClass; g_hInst=hInstance; WndClass.cbClsExtra=0; WndClass.cbWndExtra=0; WndClass.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH); //배경색 (흰색,회색,검정색) .. 2009. 7. 23.
WINAPI #include LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); HINSTANCE g_hInst; LPCTSTR lpszClass=TEXT("First"); int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpszCmdParam,int nCmdShow) { HWND hWnd; MSG Message; WNDCLASS WndClass; g_hInst=hInstance; WndClass.cbClsExtra=0; WndClass.cbWndExtra=0; WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); WndClass.hCursor=L.. 2009. 7. 22.
[C언어] 비트단위연산자 1. & 연산자 ( 비트단위 AND ) &연산은 두 개의 비트가 모두 1일때 1을 반환하는 연산이다. 0 & 0 → 0을 반환 0 & 1 → 0을 반환 1 & 0 → 0을 반환 1 & 1 → 1을 반환 예제코드) int main() { int a = 15; int b = 20; int c = a&b; printf( "AND연산 결과 : %d", c ); // 출력결과 4 } 00000000 00000000 00000000 00001111 // 15 & 00000000 00000000 00000000 00010100 // 20 ------------------------------------- 00000000 00000000 00000000 00000100 // 4 비트 연산 결과 2. | 연산자 ( 비트.. 2009. 7. 21.
C소스 2009. 6. 16.
C프로그램 2009. 6. 15.
For문에 대한 이해 for문에 대한 이해 1 이제 프로그램을 작성하기위해서 printf, scanf함수 이외에 만나게된 첫번째 친구인 for문을 알아보도록 하자. for문은 반복회수가 미리정해져 있는 경우에 사용하는 프로그램 제어구조이다. 10번만 "yes "를 출력하자. 100번만 "happy "를 출력하자. 1000번만 "laugh "를 출력하자. 위의 경우에 사용하는 제어구조가 for문인 것이다. for(i=0;i 2009. 6. 15.
반응형