Presentation is loading. Please wait.

Presentation is loading. Please wait.

Numerical Analysis Programming using NRs

Similar presentations


Presentation on theme: "Numerical Analysis Programming using NRs"— Presentation transcript:

1 Numerical Analysis Programming using NRs
Eun Joo Rhee

2 Contents Pointer의 개념 Using Numerical Recipes Using Visual Studio

3 Pointer의 개념

4 Pointer 일반 변수와 다르게 메모리의 주소(address) 값만을 저장할 수 있는 특별한 변수
포인터 변수 없이 프로그래밍이 가능하나, 포인터 변수를 이용하면 프로그램이 간결하고 효율적 일반 변수와 구별되며, 변수 선언 방법도 일반 변수 선언과 다름

5 하나의 변수는 변수 이름, 변수에 저장된 저장 값, 저장공간의 주소 값을 가짐 변수 저장 값
Pointer의 개념 2/13 주소 하나의 변수는 변수 이름, 변수에 저장된 저장 값, 저장공간의 주소 값을 가짐 변수 변수이름 저장 값 12FF7C 일반변수 a int a = 5; 5 12FF78 pi int *pi = &a 포인터 변수 12FF7C

6 Pointer의 개념 3/13 a : 5 변수 이름 a 변수 값 5 변수 주소(&a) & 기호는 변수의 주소를 참조하는 포인터 연산자

7 Pointer의 개념 4/13 *p : p : 5 *p 5를 가리키는 포인터변수 p 5를 가지는 값의 주소 &p P를 가리키는 값의 주소

8 Pointer 선언 1) int *pi; 2) int* pi;
C언어는 프리포맷을 지원하므로 공백이 어디에 있는가는 중요하지 않다. C 스팩 문서는 모두 1) 형식으로 되어 있고 C++ 스팩 문서에는 두 형식이 혼재하되 2) 형식이 좀 더 우세하다. Visual C++의 라이브러리인 MFC는 모두 2) 의 형식으로 되어 있다. 1) int *pi; 2) int* pi;

9 Pointer 증감 일반 변수 포인터 변수 int i = 0; // i+1 = 1
int *pi = &i; // pi+1 = pi+(1*sizeof(int))

10 *ptr++ *와 ++는 동일한 연산순위를 가지면서 우측 우선의 결합순서를 가진다.
Pointer의 개념 7/13 *ptr++ *와 ++는 동일한 연산순위를 가지면서 우측 우선의 결합순서를 가진다. ptr++은 후위연산자이기 때문에 연산이 끝나고 ++ 수행된다. 따라서 *ptr이 먼저 수행되고 ptr++이 수행된다. *ptr과 ptr++로 분리할 수 있다.

11 Pointer to function Call by Value 변수의 값을 받아와서 새 변수를 생성

12 Pointer의 개념 9/13 Call by Reference 변수의 주소을 받아와서 그 변수를 이용

13 Pointer Array (1D) int ptr[]와 int *ptr는 같은 의미
* ptr == ptr[0] *(ptr + i) == ptr[i] *(ptr + 1)은 *ptr + 1과 다른 결과이므로 괄호를 주의! C에서 배열은 zero-origin/zero-offset (0부터 시작) float b[4]: b[0], b[1], b[2], b[3]

14 Pointer의 개념 11/13 Using nrutil.c Allocation Deallocation

15 Pointer의 개념 12/13 Pointer Array (2D) 2차원 배열 이름은 이중 포인터 **m

16 Pointer의 개념 13/13 Using nrutil.c Allocation Deallocation

17 Using Numerical Recipes

18 Using Numerical Recipes 1/4
Simple example – SVD

19 Using Numerical Recipes 2/4
svdcmp.c input output

20 Using Numerical Recipes 3/4
xsvdcmp.c

21 Using Numerical Recipes 4/4
xsvdcmp.c

22 Using Visual Studio

23 Using Visual Studio 1/10 At 2008

24 Using Visual Studio 2/10

25 Using Visual Studio 3/10

26 Using Visual Studio 4/10

27 Using Visual Studio 5/10 미리 프로젝트 폴더에 필요한 파일들을 옮겨 놓는다

28 Using Visual Studio 6/10

29 Using Visual Studio 7/10

30 Using Visual Studio 8/10

31 Using Visual Studio 9/10

32 Using Visual Studio 10/10

33 Other questions to heckism@mr.hanyang.ac.kr


Download ppt "Numerical Analysis Programming using NRs"

Similar presentations


Ads by Google