computational_ast_chap11

Download Report

Transcript computational_ast_chap11

Computational Astronomy
제 11 장 프로그래밍 기초 1/3
전산천문학 2
2007. 가을
Mission
Computational Astronomy
• 함수와 프로시저의 차이점에 대해서 정확히
이해하고, 이를 이용하여 간단한 프로그래밍
을 실습한다.
• 간단한 예제를 학생들 스스로 만든 함수와 프
로시저를 사용하여 프로그래밍을 실습한다.
• 모든 프로그래밍을 배열 연산의 기반으로 생
각한다
• 연도를
Computational Astronomy
Vector operation Pls!!
• IDL에서 다음 코드를 실험해 보세요.
 IDL> file=filepath(‘people.dat’, subdir=[‘examples’, ‘data’])
IDL> people=read_binary(file, data_dims=[192, 192, 2])
IDL> tvscl, people[*, *, 0]
IDL> tvscl, people[*, *, 1]
IDL> fusion=total(people, 3) / 2
IDL> tvscl, fusion
(
+
)/2=
Computational Astronomy
기본 문법
• Procedure와 Function이 있음
 IDL> print, 5.5
 IDL> a=sin(!pi)
;print 프로시저
;Sin 함수
• 콤마(,)로 문법요소를 구분함
• 문자열을 제외하고는 대소문자 구분 없음
• 키워드가 발달한 언어
 IDL> print, 5.5, format=‘(F7.5)’
5.50000
 IDL> plot, x, y, title=‘Test’, xtitle=‘time’, color=255,….
 IDL> result=mean(x, /nan)
• 키워드 사용에 관하여
 키워드는 순서 무관.
 키워드는 다른 키워드와 구별되는 길이까지 줄여 쓸 수 있음
• device, decom=0
& print, 5.5, form=‘(F7.5)’
 /키워드는 키워드=1 과 문법적으로 완전히 동일함
• result=mean(x, NAN=1)
&
result=mean(x, /NAN)
프로시저, 함수의 정의
Computational Astronomy
• 공통점 :
 확장자 (.pro) / 자동으로 콤파일 실행
• 차이점
 프로시저(.pro 생략), 인수1,인수2…, 키워드=0
• 서브루틴
 출력값 = 함수(입력값1,입력값2…키워드=)
• 둘 모두 외형상으로는 .pro의 확장자를 가진다.
• Function과 Procedure를 다른 프로그램에서 명령어의
형태로 부르고자 할 때는 프로그램 이름과 안에서 선
언한 프로그램의 이름이 같아야 한다.이 때, 기본적
으로 내장되어 있는 프로그램이름과 중복되지 않도
록 한다.
나의 procedure를 등록하기
Computational Astronomy
• IDL에는 과학자들에게 유용한 Procedure와 Function
이 내장(plot,round,fix, 등…)
 이들을 이용하여 Interactive하게 작업을 할 수 있습니다.
 기본 제공되는 Procedure와 Function을 조합하여 필요한
Procedure와 Function을 만들어 쓸 수 있음.
 내가 만든 Procedure와 Function도 IDL에서 기본 제공하는
Procedure와 Function처럼 실행.
 선배/동료들이 만든 Procedure와 Function을 가져다 쓸 수
있습니다.
 이들 사용자 Procedure/Function을 어떻게 하면 IDL에서 기
본 제공하는 Procedure/Function인 것처럼 설정할 수 있을
까?
How to make a Procedure
pro twotimes, value
value = 2.0 * value
print, 'It was multiplied by 2.0!!!‘
print, value
end
Computational Astronomy
How to make a function
Computational Astronomy
function hap, x, y
sum=x+y
return, sum
end
IDL> print, hap(3, 5)
Compiled module: HAP.
8
IDL> .edit hap
또는 Open hap.pro
Examples
Computational Astronomy
• 세 개의 숫자를 입력했을 때, 평균값(mean)과
최대값 그리고, 최소값을 출력하는 함수와 프
로시저를 만들어보시오.
• 프로시져는 실행, 함수는 결과 값임에 유의하
시오. (10분)
procedure
pro minmaxavg,value1,value2,value3
a=[value1,value2,value3]
print,'The maximum is',max(a)
print,'The minimum is',min(a)
print,'The mean is', mean(a)
end
Computational Astronomy
Function
Computational Astronomy
function minmaxmean, value1,value2,value3
a=[value1,value2,value3]
results=[min(a),max(a),mean(a)]
return, results
end